summaryrefslogtreecommitdiffstats
path: root/package/lcd4linux/patches/patch-drv_generic_parport_c
diff options
context:
space:
mode:
authorwbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-03-20 03:37:44 +0000
committerwbx <wbx@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-03-20 03:37:44 +0000
commit730e1e976fcaea99aecf7e75ef966e8fa223d897 (patch)
treeb50ed1558898f2be8aaed56e6e4afdc72200b8d5 /package/lcd4linux/patches/patch-drv_generic_parport_c
parent0c59f6437a955c21c2c9fc9ec7818564b06406ac (diff)
add lcd4version. compiles now, but i have no clue if it will work with some lcd displays
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@402 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/lcd4linux/patches/patch-drv_generic_parport_c')
-rw-r--r--package/lcd4linux/patches/patch-drv_generic_parport_c109
1 files changed, 109 insertions, 0 deletions
diff --git a/package/lcd4linux/patches/patch-drv_generic_parport_c b/package/lcd4linux/patches/patch-drv_generic_parport_c
new file mode 100644
index 000000000..f029ffb17
--- /dev/null
+++ b/package/lcd4linux/patches/patch-drv_generic_parport_c
@@ -0,0 +1,109 @@
+--- lcd4linux-0.10.0-RC1/drv_generic_parport.c 2005-01-06 17:54:54.000000000 +0100
++++ lcd/drv_generic_parport.c 2005-03-20 01:20:48.052255953 +0100
+@@ -359,13 +359,12 @@
+ #ifdef WITH_PPDEV
+ if (PPdev) {
+ ioctl (PPfd, PPDATADIR, &direction);
+- } else
++ }
++#else
++ /* code stolen from linux/parport_pc.h */
++ ctr = (ctr & ~0x20) ^ (direction?0x20:0x00);
++ outb (ctr, Port+2);
+ #endif
+- {
+- /* code stolen from linux/parport_pc.h */
+- ctr = (ctr & ~0x20) ^ (direction?0x20:0x00);
+- outb (ctr, Port+2);
+- }
+ }
+
+
+@@ -383,11 +382,10 @@
+ #ifdef WITH_PPDEV
+ if (PPdev) {
+ ioctl (PPfd, PPRSTATUS, &data);
+- } else
++ }
++#else
++ data = inb (Port+1);
+ #endif
+- {
+- data = inb (Port+1);
+- }
+
+ /* clear unused bits */
+ data &= mask;
+@@ -413,13 +411,12 @@
+ frob.mask=mask;
+ frob.val=val;
+ ioctl (PPfd, PPFCONTROL, &frob);
+- } else
++ }
++#else
++ /* code stolen from linux/parport_pc.h */
++ ctr = (ctr & ~mask) ^ val;
++ outb (ctr, Port+2);
+ #endif
+- {
+- /* code stolen from linux/parport_pc.h */
+- ctr = (ctr & ~mask) ^ val;
+- outb (ctr, Port+2);
+- }
+ }
+
+
+@@ -456,9 +453,9 @@
+ frob.val = value2;
+ ioctl (PPfd, PPFCONTROL, &frob);
+
+- } else
+-#endif
+- {
++ }
++#else
++
+ /* rise */
+ ctr = (ctr & ~bits) ^ value1;
+ outb (ctr, Port+2);
+@@ -469,7 +466,8 @@
+ /* lower */
+ ctr = (ctr & ~bits) ^ value2;
+ outb (ctr, Port+2);
+- }
++
++#endif
+ }
+
+
+@@ -478,11 +476,11 @@
+ #ifdef WITH_PPDEV
+ if (PPdev) {
+ ioctl(PPfd, PPWDATA, &data);
+- } else
++ }
++#else
++ outb (data, Port);
+ #endif
+- {
+- outb (data, Port);
+- }
++
+ }
+
+ unsigned char drv_generic_parport_read (void)
+@@ -492,11 +490,10 @@
+ #ifdef WITH_PPDEV
+ if (PPdev) {
+ ioctl (PPfd, PPRDATA, &data);
+- } else
++ }
++#else
++ data=inb (Port);
+ #endif
+- {
+- data=inb (Port);
+- }
+ return data;
+ }
+