Author: hawk                         Date: Wed Jan 30 17:54:33 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- patch for building with kernel 2.6.24, taken from gentoo and ported
  for lirc 0.8.2

---- Files affected:
SOURCES:
   lirc-2.6.24.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/lirc-2.6.24.patch
diff -u /dev/null SOURCES/lirc-2.6.24.patch:1.1
--- /dev/null   Wed Jan 30 18:54:33 2008
+++ SOURCES/lirc-2.6.24.patch   Wed Jan 30 18:54:28 2008
@@ -0,0 +1,110 @@
+diff -urN lirc-0.8.2.orig/drivers/lirc_dev/lirc_dev.c 
lirc-0.8.2/drivers/lirc_dev/lirc_dev.c
+--- lirc-0.8.2.orig/drivers/lirc_dev/lirc_dev.c        2008-01-30 
18:41:11.000000000 +0100
++++ lirc-0.8.2/drivers/lirc_dev/lirc_dev.c     2008-01-30 18:45:35.860566048 
+0100
+@@ -45,6 +45,7 @@
+ #include <linux/fs.h>
+ #include <linux/poll.h>
+ #include <linux/smp_lock.h>
++#include <linux/completion.h>
+ #include <asm/uaccess.h>
+ #include <asm/semaphore.h>
+ #include <asm/errno.h>
+@@ -85,8 +86,8 @@
+       struct lirc_buffer *buf;
+ 
+       int tpid;
+-      struct semaphore *t_notify;
+-      struct semaphore *t_notify2;
++      struct completion *t_notify;
++      struct completion *t_notify2;
+       int shutdown;
+       long jiffies_to_wait;
+ 
+@@ -194,7 +195,7 @@
+       daemonize("lirc_dev");
+       
+       if (ir->t_notify != NULL) {
+-              up(ir->t_notify);
++              complete(ir->t_notify);
+       }
+       
+       dprintk(LOGHEAD "poll thread started\n", ir->p.name, ir->p.minor);
+@@ -221,12 +222,12 @@
+       } while (!ir->shutdown);
+       
+       if (ir->t_notify2 != NULL) {
+-              down(ir->t_notify2);
++              wait_for_completion(ir->t_notify2);
+       }
+ 
+       ir->tpid = -1;
+       if (ir->t_notify != NULL) {
+-              up(ir->t_notify);
++              complete(ir->t_notify);
+       }
+       
+       dprintk(LOGHEAD "poll thread ended\n", ir->p.name, ir->p.minor);
+@@ -246,7 +247,7 @@
+ #ifdef LIRC_HAVE_DEVFS_24
+       char name[16];
+ #endif
+-      DECLARE_MUTEX_LOCKED(tn);
++      DECLARE_COMPLETION(tn);
+ 
+       if (!p) {
+               printk("lirc_dev: lirc_register_plugin: "
+@@ -397,7 +398,7 @@
+                       err = -ECHILD;
+                       goto out_sysfs;
+               }
+-              down(&tn);
++              wait_for_completion(&tn);
+               ir->t_notify = NULL;
+       }
+       ir->attached = 1;
+@@ -435,8 +436,8 @@
+ int lirc_unregister_plugin(int minor)
+ {
+       struct irctl *ir;
+-      DECLARE_MUTEX_LOCKED(tn);
+-      DECLARE_MUTEX_LOCKED(tn2);
++      DECLARE_COMPLETION(tn);
++      DECLARE_COMPLETION(tn2);
+ 
+       if (minor < 0 || minor >= MAX_IRCTL_DEVICES) {
+               printk("lirc_dev: lirc_unregister_plugin: "
+@@ -472,8 +473,8 @@
+               /* 2.2.x does not export wake_up_process() */
+               wake_up_interruptible(ir->p.get_queue(ir->p.data));
+ #endif
+-              up(&tn2);
+-              down(&tn);
++              complete(&tn2);
++              wait_for_completion(&tn);
+               ir->t_notify = NULL;
+               ir->t_notify2 = NULL;
+       }
+diff -urN lirc-0.8.2.orig/drivers/lirc_serial/lirc_serial.c 
lirc-0.8.2/drivers/lirc_serial/lirc_serial.c
+--- lirc-0.8.2.orig/drivers/lirc_serial/lirc_serial.c  2008-01-30 
18:41:11.000000000 +0100
++++ lirc-0.8.2/drivers/lirc_serial/lirc_serial.c       2008-01-30 
18:43:51.671989132 +0100
+@@ -1002,7 +1002,7 @@
+       do_gettimeofday(&lasttv);
+ 
+       result=request_irq(irq,irq_handler,
+-                         SA_INTERRUPT | (share_irq ? SA_SHIRQ:0),
++                         IRQF_DISABLED | (share_irq ? IRQF_SHARED:0),
+                          LIRC_DRIVER_NAME,(void *)&hardware);
+       
+       switch(result)
+diff -urN lirc-0.8.2.orig/drivers/lirc_sir/lirc_sir.c 
lirc-0.8.2/drivers/lirc_sir/lirc_sir.c
+--- lirc-0.8.2.orig/drivers/lirc_sir/lirc_sir.c        2008-01-30 
18:41:11.000000000 +0100
++++ lirc-0.8.2/drivers/lirc_sir/lirc_sir.c     2008-01-30 18:42:54.259100415 
+0100
+@@ -1056,7 +1056,7 @@
+               return -EBUSY;
+       }
+ #endif
+-      retval = request_irq(irq, sir_interrupt, SA_INTERRUPT,
++      retval = request_irq(irq, sir_interrupt, IRQF_DISABLED,
+                            LIRC_DRIVER_NAME, NULL);
+       if (retval < 0) {
+ #               ifndef LIRC_ON_SA1100
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to