From 9c4f79bbb8d8d54f189c57157a752c9f6aa96d0e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 29 Jun 2012 20:08:43 +0200 Subject: [PATCH] lirc: add upstream patches Signed-off-by: Stephan Raue --- .../patches/lirc-0.9.0-001-git_e0ab92be.patch | 528 ++++++++++++++++++ .../lirc-0.9.0-011-remove_asm_sytem_h.patch | 22 + .../lirc-0.9.0-022-disable_lirc_i2c.patch | 201 +++++++ .../patches/lirc-0.9.0-023-ati_remote.patch | 33 ++ .../lirc-0.9.0-024-remove_smp_lock_h.patch | 11 + .../patches/lirc-0.9.0-025-bit_le_fix.patch | 29 + .../lirc-0.9.0-026-uinput_key_fix.patch | 63 +++ 7 files changed, 887 insertions(+) create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-001-git_e0ab92be.patch create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-011-remove_asm_sytem_h.patch create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-022-disable_lirc_i2c.patch create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-023-ati_remote.patch create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-024-remove_smp_lock_h.patch create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-025-bit_le_fix.patch create mode 100644 packages/sysutils/remote/lirc/patches/lirc-0.9.0-026-uinput_key_fix.patch diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-001-git_e0ab92be.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-001-git_e0ab92be.patch new file mode 100644 index 0000000000..0fd1e99fef --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-001-git_e0ab92be.patch @@ -0,0 +1,528 @@ +diff -Naur lirc-0.9.0-old/ANNOUNCE lirc-0.9.0-new/ANNOUNCE +--- lirc-0.9.0-old/ANNOUNCE 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/ANNOUNCE 2012-02-29 21:44:36.000000000 -0800 +@@ -1,4 +1,4 @@ +-LIRC - Linux Infrared Remote Control, Version: 0.9.0 ++LIRC - Linux Infrared Remote Control, Version: 0.9.1-git + + Copyright (C) 1996 Ralph Metzler + Copyright (C) 1998-2010 Christoph Bartelmus +diff -Naur lirc-0.9.0-old/configure.ac lirc-0.9.0-new/configure.ac +--- lirc-0.9.0-old/configure.ac 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/configure.ac 2012-02-29 21:46:37.000000000 -0800 +@@ -7,7 +7,7 @@ + AC_CONFIG_SRCDIR([daemons/lircd.c]) + AC_CONFIG_MACRO_DIR([m4]) + +-AM_INIT_AUTOMAKE(lirc, 0.9.0) ++AM_INIT_AUTOMAKE(lirc, 0.9.1-git) + AM_CONFIG_HEADER(config.h) + + CFLAGS="${CFLAGS--O2 -g -Wall}" +@@ -20,11 +20,11 @@ + AC_PATH_PROG(mknod, mknod, /bin/mknod) + AC_PATH_PROG(mkfifo, mkfifo, /usr/bin/mkfifo) + AC_PATH_PROG(depmod, depmod, /sbin/depmod, $PATH:/sbin) +-AC_PATH_PROG(LIBUSB_CONFIG, libusb-config) + AC_PROG_LN_S + AC_PROG_LIBTOOL + AM_PATH_PYTHON(,, [:]) + AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != ""]) ++LIBUSB_CONFIG="pkg-config libusb" + + dnl Checks for header files. + AC_HEADER_STDC +@@ -310,15 +310,14 @@ + AH_TEMPLATE([USE_SYSLOG], + [define if you want to log to syslog instead of logfile]) + +-if test -n "${LIBUSB_CONFIG}"; then +- AC_DEFINE(HAVE_LIBUSB) +- possible_drivers="${possible_drivers} (atilibusb) (awlibusb) (dfclibusb) (commandir) (srm7500libusb)" +-fi +- + AC_CHECK_LIB(caraca_client, caraca_init, + AC_DEFINE(HAVE_LIBCARACA) + possible_drivers="${possible_drivers} (caraca)" + ) ++AC_CHECK_HEADER(usb.h, ++ AC_DEFINE(HAVE_LIBUSB) ++ possible_drivers="${possible_drivers} (atilibusb) (awlibusb) (dfclibusb) (commandir) (srm7500libusb)" ++) + AC_CHECK_HEADER(ftdi.h, + AC_DEFINE(HAVE_FTDI) + possible_drivers="${possible_drivers} (ftdi)" +@@ -1449,7 +1448,7 @@ + Or install these packages from your distro: + + libusb +- libusb-dev ++ libusb-devel + + ]) + ;; +@@ -1559,11 +1558,6 @@ + [ --enable-dyncodes use dynamic codes], + test x${enableval} = xyes && AC_DEFINE(DYNCODES)) + +-AC_ARG_WITH(major, +-[ --with-major=value specify the device major for the driver (61)], +-lirc_major=${withval}, +-lirc_major=61) +- + AC_ARG_WITH(port, + [ --with-port=port specify the port number for the lirc device.], + port=${withval} +@@ -1678,7 +1672,6 @@ + AC_SUBST(sysconfdir) + AC_SUBST(varrundir) + AC_SUBST(moduledir) +-AC_SUBST(lirc_major) + AC_SUBST(driver) + AC_SUBST(lirc_driver) + AC_SUBST(hw_module_libs) +@@ -1715,7 +1708,9 @@ + + AH_TOP([ + /* device file names - beneath DEVDIR (default /dev) */ +-#define DEV_LIRC "lirc" ++#define DEV_LIRC "lirc0" ++ ++/* daemon socket file names - beneath $varrundir (default /var/run/lirc) */ + #define DEV_LIRCD "lircd" + #define DEV_LIRCM "lircm" + +diff -Naur lirc-0.9.0-old/contrib/release-process.txt lirc-0.9.0-new/contrib/release-process.txt +--- lirc-0.9.0-old/contrib/release-process.txt 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/contrib/release-process.txt 2012-02-29 21:44:36.000000000 -0800 +@@ -22,7 +22,7 @@ + 4) Switch back to master: + git checkout master + 5) Clean checkout in new directory: +- git clone -b lirc--preX-branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc ++ git clone -b lirc--preX-branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc lirc--preX + 6) Create tarball: + ./autogen.sh + cp INSTALL.txt INSTALL +@@ -45,7 +45,7 @@ + 4) Switch back to master: + git checkout master + 5) Clean checkout in new directory: +- git clone -b lirc--branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc ++ git clone -b lirc--branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc lirc- + 6) Create tarball: + ./autogen.sh + cp INSTALL.txt INSTALL +diff -Naur lirc-0.9.0-old/daemons/dump_config.c lirc-0.9.0-new/daemons/dump_config.c +--- lirc-0.9.0-old/daemons/dump_config.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/daemons/dump_config.c 2012-02-29 21:44:36.000000000 -0800 +@@ -120,11 +120,11 @@ + if (!is_raw(rem)) { + if (rem->pre_data_bits > 0) { + fprintf(f, " pre_data_bits %d\n", rem->pre_data_bits); +- fprintf(f, " pre_data 0x%llX\n", rem->pre_data); ++ fprintf(f, " pre_data 0x%llX\n", (unsigned long long)rem->pre_data); + } + if (rem->post_data_bits > 0) { + fprintf(f, " post_data_bits %d\n", rem->post_data_bits); +- fprintf(f, " post_data 0x%llX\n", rem->post_data); ++ fprintf(f, " post_data 0x%llX\n", (unsigned long long)rem->post_data); + } + if (rem->pre_p != 0 && rem->pre_s != 0) { + fprintf(f, " pre %5u %5u\n", (__u32) rem->pre_p, (__u32) rem->pre_s); +@@ -151,15 +151,15 @@ + if (rem->min_code_repeat > 0) { + fprintf(f, " min_code_repeat %d\n", rem->min_code_repeat); + } +- fprintf(f, " toggle_bit_mask 0x%llX\n", rem->toggle_bit_mask); ++ fprintf(f, " toggle_bit_mask 0x%llX\n", (unsigned long long)rem->toggle_bit_mask); + if (has_toggle_mask(rem)) { +- fprintf(f, " toggle_mask 0x%llX\n", rem->toggle_mask); ++ fprintf(f, " toggle_mask 0x%llX\n", (unsigned long long)rem->toggle_mask); + } + if (rem->rc6_mask != 0) { +- fprintf(f, " rc6_mask 0x%llX\n", rem->rc6_mask); ++ fprintf(f, " rc6_mask 0x%llX\n", (unsigned long long)rem->rc6_mask); + } + if (has_ignore_mask(rem)) { +- fprintf(f, " ignore_mask 0x%llX\n", rem->ignore_mask); ++ fprintf(f, " ignore_mask 0x%llX\n", (unsigned long long)rem->ignore_mask); + } + if (is_serial(rem)) { + fprintf(f, " baud %d\n", rem->baud); +diff -Naur lirc-0.9.0-old/daemons/ir_remote.c lirc-0.9.0-new/daemons/ir_remote.c +--- lirc-0.9.0-old/daemons/ir_remote.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/daemons/ir_remote.c 2012-02-29 21:44:36.000000000 -0800 +@@ -490,7 +490,8 @@ + { + int len; + +- len = snprintf(buffer, size, "%016llx %02x %s%s %s\n", code, reps, button_name, button_suffix, remote_name); ++ len = snprintf(buffer, size, "%016llx %02x %s%s %s\n", ++ (unsigned long long)code, reps, button_name, button_suffix, remote_name); + + return len; + } +diff -Naur lirc-0.9.0-old/daemons/lircd.c lirc-0.9.0-new/daemons/lircd.c +--- lirc-0.9.0-old/daemons/lircd.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/daemons/lircd.c 2012-02-29 21:44:36.000000000 -0800 +@@ -231,14 +231,10 @@ + int done, todo = len; + + while (todo) { +-#ifdef SIM_REC + do { + done = write(fd, buf, todo); +- } +- while (done < 0 && errno == EAGAIN); +-#else +- done = write(fd, buf, todo); +-#endif ++ } while (done < 0 && errno == EAGAIN); ++ + if (done <= 0) + return (done); + buf += done; +@@ -1318,7 +1314,7 @@ + + codes = remote->codes; + while (codes->name != NULL) { +- len = snprintf(buffer, PACKET_SIZE, "%016llx %s\n", codes->code, codes->name); ++ len = snprintf(buffer, PACKET_SIZE, "%016llx %s\n", (unsigned long long)codes->code, codes->name); + if (len >= PACKET_SIZE + 1) { + len = sprintf(buffer, "code_too_long\n"); + } +@@ -1338,7 +1334,7 @@ + (write_socket_len(fd, protocol_string[P_BEGIN]) && write_socket_len(fd, message) + && write_socket_len(fd, protocol_string[P_SUCCESS]) && write_socket_len(fd, protocol_string[P_DATA]))) + return (0); +- len = snprintf(buffer, PACKET_SIZE, "1\n%016llx %s\n", code->code, code->name); ++ len = snprintf(buffer, PACKET_SIZE, "1\n%016llx %s\n", (unsigned long long)code->code, code->name); + if (len >= PACKET_SIZE + 1) { + len = sprintf(buffer, "1\ncode_too_long\n"); + } +diff -Naur lirc-0.9.0-old/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.9.0-new/drivers/lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0-old/drivers/lirc_atiusb/lirc_atiusb.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_atiusb/lirc_atiusb.c 2012-02-29 21:44:36.000000000 -0800 +@@ -1048,7 +1048,7 @@ + goto new_irctl_failure_check; + } + +- if (lirc_buffer_init(driver->rbuf, dclen, 1)) { ++ if (lirc_buffer_init(driver->rbuf, dclen, 2)) { + mem_failure = 4; + goto new_irctl_failure_check; + } +diff -Naur lirc-0.9.0-old/drivers/lirc_dev/lirc_dev.c lirc-0.9.0-new/drivers/lirc_dev/lirc_dev.c +--- lirc-0.9.0-old/drivers/lirc_dev/lirc_dev.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_dev/lirc_dev.c 2012-02-29 21:50:48.000000000 -0800 +@@ -236,7 +236,9 @@ + cdev_init(cdev, &lirc_dev_fops); + cdev->owner = THIS_MODULE; + } +- kobject_set_name(&cdev->kobj, "lirc%d", d->minor); ++ retval = kobject_set_name(&cdev->kobj, "lirc%d", d->minor); ++ if (retval) ++ return retval; + + retval = cdev_add(cdev, MKDEV(MAJOR(lirc_base_dev), d->minor), 1); + if (retval) +@@ -583,6 +585,8 @@ + + mutex_unlock(&lirc_dev_lock); + ++ nonseekable_open(inode, file); ++ + return retval; + } + EXPORT_SYMBOL(lirc_dev_fop_open); +@@ -746,10 +750,8 @@ + } + EXPORT_SYMBOL(lirc_dev_fop_ioctl); + +-ssize_t lirc_dev_fop_read(struct file *file, +- char *buffer, +- size_t length, +- loff_t *ppos) ++ssize_t lirc_dev_fop_read(struct file *file, char __user *buffer, ++ size_t length, loff_t *ppos) + { + struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; + unsigned char *buf; +@@ -767,18 +769,18 @@ + if (!buf) + return -ENOMEM; + +- if (mutex_lock_interruptible(&ir->irctl_lock)) +- return -ERESTARTSYS; ++ if (mutex_lock_interruptible(&ir->irctl_lock)) { ++ ret = -ERESTARTSYS; ++ goto out_unlocked; ++ } + if (!ir->attached) { +- mutex_unlock(&ir->irctl_lock); +- return -ENODEV; ++ ret = -ENODEV; ++ goto out_locked; + } + + if (length % ir->chunk_size) { +- dprintk(LOGHEAD "read result = -EINVAL\n", +- ir->d.name, ir->d.minor); +- mutex_unlock(&ir->irctl_lock); +- return -EINVAL; ++ ret = -EINVAL; ++ goto out_locked; + } + + /* +@@ -829,19 +831,23 @@ + lirc_buffer_read(ir->buf, buf); + ret = copy_to_user((void *)buffer+written, buf, + ir->buf->chunk_size); +- written += ir->buf->chunk_size; ++ if (!ret) ++ written += ir->buf->chunk_size; ++ else ++ ret = -EFAULT; + } + } + + remove_wait_queue(&ir->buf->wait_poll, &wait); + set_current_state(TASK_RUNNING); + ++out_locked: + mutex_unlock(&ir->irctl_lock); + + out_unlocked: + kfree(buf); + dprintk(LOGHEAD "read result = %s (%d)\n", +- ir->d.name, ir->d.minor, ret ? "-EFAULT" : "OK", ret); ++ ir->d.name, ir->d.minor, ret ? "" : "OK", ret); + + return ret ? ret : written; + } +@@ -864,7 +870,7 @@ + EXPORT_SYMBOL(lirc_get_pdata); + + +-ssize_t lirc_dev_fop_write(struct file *file, const char *buffer, ++ssize_t lirc_dev_fop_write(struct file *file, const char __user *buffer, + size_t length, loff_t *ppos) + { + struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)]; +@@ -904,7 +910,7 @@ + } + + printk(KERN_INFO "lirc_dev: IR Remote Control driver registered, " +- "major %d \n", IRCTL_DEV_MAJOR); ++ "major %d \n", MAJOR(lirc_base_dev)); + + error: + return retval; +diff -Naur lirc-0.9.0-old/drivers/lirc_dev/lirc_dev.h lirc-0.9.0-new/drivers/lirc_dev/lirc_dev.h +--- lirc-0.9.0-old/drivers/lirc_dev/lirc_dev.h 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_dev/lirc_dev.h 2012-02-29 21:50:02.000000000 -0800 +@@ -257,9 +257,9 @@ + #else + long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg); + #endif +-ssize_t lirc_dev_fop_read(struct file *file, char *buffer, size_t length, ++ssize_t lirc_dev_fop_read(struct file *file, char __user *buffer, size_t length, + loff_t *ppos); +-ssize_t lirc_dev_fop_write(struct file *file, const char *buffer, size_t length, +- loff_t *ppos); ++ssize_t lirc_dev_fop_write(struct file *file, const char __user *buffer, ++ size_t length, loff_t *ppos); + + #endif +diff -Naur lirc-0.9.0-old/drivers/lirc_sir/lirc_sir.c lirc-0.9.0-new/drivers/lirc_sir/lirc_sir.c +--- lirc-0.9.0-old/drivers/lirc_sir/lirc_sir.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_sir/lirc_sir.c 2012-02-29 21:44:36.000000000 -0800 +@@ -203,8 +203,6 @@ + /* SECTION: Prototypes */ + + /* Communication with user-space */ +-static int lirc_open(struct inode *inode, struct file *file); +-static int lirc_close(struct inode *inode, struct file *file); + static unsigned int lirc_poll(struct file *file, poll_table *wait); + static ssize_t lirc_read(struct file *file, char *buf, size_t count, + loff_t *ppos); +@@ -275,22 +273,6 @@ + + /* SECTION: Communication with user-space */ + +-static int lirc_open(struct inode *inode, struct file *file) +-{ +- spin_lock(&dev_lock); +- if (MOD_IN_USE) { +- spin_unlock(&dev_lock); +- return -EBUSY; +- } +- spin_unlock(&dev_lock); +- return 0; +-} +- +-static int lirc_close(struct inode *inode, struct file *file) +-{ +- return 0; +-} +- + static unsigned int lirc_poll(struct file *file, poll_table *wait) + { + poll_wait(file, &lirc_read_queue, wait); +@@ -519,8 +501,8 @@ + .compat_ioctl = lirc_ioctl, + #endif + #endif +- .open = lirc_open, +- .release = lirc_close, ++ .open = lirc_dev_fop_open, ++ .release = lirc_dev_fop_close, + }; + + static int set_use_inc(void *data) +diff -Naur lirc-0.9.0-old/drivers/lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0-new/drivers/lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0-old/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2012-02-29 21:44:36.000000000 -0800 +@@ -816,10 +816,6 @@ + /* Reset last timeout value. */ + lastus = 0; + +- /* Init the read buffer. */ +- if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) +- return -ENOMEM; +- + /* Acquire the IRQ. */ + result = request_irq(irq, irq_handler, + IRQF_DISABLED | IRQF_SHARED, +@@ -863,9 +859,6 @@ + /* Free the IRQ. */ + free_irq(irq, THIS_MODULE); + dprintk("Freed IRQ %d\n", irq); +- +- /* Free the RX buffer. */ +- lirc_buffer_free(&rbuf); + } + + static struct lirc_driver driver = { +@@ -1065,19 +1058,29 @@ + /* Do load-time checks. */ + wpc8769l_power_up_and_check_if_we_woke_us_up(); + ++ /* Init the read buffer. */ ++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) { ++ rc = -ENOMEM; ++ goto exit_platform_exit; ++ } ++ + /* Configure the driver hooks. */ + driver.features = LIRC_CAN_REC_MODE2; ++ driver.dev = &lirc_wpc8769l_platform_dev->dev; + driver.minor = lirc_register_driver(&driver); + if (driver.minor < 0) { + eprintk("lirc_register_driver failed!\n"); + rc = -EIO; +- goto exit_platform_exit; ++ goto exit_release_buffer; + } + + iprintk("Driver loaded.\n"); + + return 0; /* Everything OK. */ + ++exit_release_buffer: ++ lirc_buffer_free(&rbuf); ++ + exit_platform_exit: + lirc_wpc8769l_platform_exit(); + +@@ -1095,12 +1098,15 @@ + + static void __exit lirc_wpc8769l_module_exit(void) + { +- /* Unregister the platform driver and device. */ +- lirc_wpc8769l_platform_exit(); +- + /* Unregister the LIRC driver. */ + lirc_unregister_driver(driver.minor); + ++ /* Free the buffer. */ ++ lirc_buffer_free(&rbuf); ++ ++ /* Unregister the platform driver and device. */ ++ lirc_wpc8769l_platform_exit(); ++ + /* Release the second range. */ + if (baseport2) + release_region(baseport2, WPC8769L_IO_REGION_2_SIZE); +diff -Naur lirc-0.9.0-old/drivers/Makefile.am lirc-0.9.0-new/drivers/Makefile.am +--- lirc-0.9.0-old/drivers/Makefile.am 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/Makefile.am 2012-02-29 21:44:36.000000000 -0800 +@@ -26,14 +26,3 @@ + + CLEANFILES = *~ + +-if SANDBOXED +-else +-install-exec-local: mkdev +-uninstall-local: mkdev +-endif +- +-mkdev: +- test "@driver@" != "mediafocusI" || test -c $(DESTDIR)$(devdir)/lirc || ($(mkinstalldirs) $(DESTDIR)$(devdir) && @mknod@ $(DESTDIR)$(devdir)/lirc c @lirc_major@ 0) +- +-rmdev: +- -test "@driver@" != "mediafocusI" || test -c $(DESTDIR)$(devdir)/lirc || $(RM) $(DESTDIR)$(devdir)/lirc +diff -Naur lirc-0.9.0-old/drivers/Makefile.common lirc-0.9.0-new/drivers/Makefile.common +--- lirc-0.9.0-old/drivers/Makefile.common 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/Makefile.common 2012-02-29 21:44:36.000000000 -0800 +@@ -8,7 +8,7 @@ + # some magic for using linux kernel settings + # when compiling module(s) + KBUILD_VERBOSE = 1 +-LIRC_EXTRA_CFLAGS = -DIRCTL_DEV_MAJOR=$(lirc_major) -DEXPORT_SYMTAB $(DEFS) \ ++LIRC_EXTRA_CFLAGS = -DEXPORT_SYMTAB $(DEFS) \ + $(DEFAULT_INCLUDES) -I$(LIRC_DEVDIR)/$(srcdir) -I$(LIRC_DEVDIR)/$(builddir) \ + -I$(LIRC_DEVDIR)/$(top_srcdir) -I$(LIRC_DEVDIR)/$(top_builddir) \ + -I$(KERNEL_LOCATION)/include/ \ +@@ -47,18 +47,6 @@ + + if SANDBOXED + else +-install-exec-local: mkdev +-uninstall-local: rmdev +-endif +- +-mkdev: +- test -e $(DESTDIR)$(devdir)/lirc || ($(mkinstalldirs) $(DESTDIR)$(devdir) && @mknod@ $(DESTDIR)$(devdir)/lirc c @lirc_major@ 0) +- +-rmdev: +- -test -c $(DESTDIR)$(devdir)/lirc && $(RM) $(DESTDIR)$(devdir)/lirc +- +-if SANDBOXED +-else + install-data-local: install-moduleDATA + -@depmod@ -a + endif +diff -Naur lirc-0.9.0-old/NEWS lirc-0.9.0-new/NEWS +--- lirc-0.9.0-old/NEWS 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/NEWS 2012-02-29 21:44:36.000000000 -0800 +@@ -1,3 +1,6 @@ ++0.9.1-git: UNDER DEVELOPMENT ++ * TBD ++ + 0.9.0: 03/25/11 + * Remove mceusb, streamzap, it8x, ene0100 drivers, as they're + now redundant with upstream kernel drivers +diff -Naur lirc-0.9.0-old/setup.sh lirc-0.9.0-new/setup.sh +--- lirc-0.9.0-old/setup.sh 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/setup.sh 2012-02-29 21:44:36.000000000 -0800 +@@ -1,6 +1,6 @@ + #! /bin/sh + +-LIRC_VERSION="0.9.0" ++LIRC_VERSION="0.9.1-git" + + ############################################################################# + ## Default Values diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-011-remove_asm_sytem_h.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-011-remove_asm_sytem_h.patch new file mode 100644 index 0000000000..d9fbe5c323 --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-011-remove_asm_sytem_h.patch @@ -0,0 +1,22 @@ +diff -Naur lirc-0.9.0-old/drivers/lirc_serial/lirc_serial.c lirc-0.9.0-new/drivers/lirc_serial/lirc_serial.c +--- lirc-0.9.0-old/drivers/lirc_serial/lirc_serial.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_serial/lirc_serial.c 2012-06-10 14:18:21.000000000 -0700 +@@ -66,7 +66,6 @@ + #include + #include + +-#include + #include + #include + #include +diff -Naur lirc-0.9.0-old/drivers/lirc_sir/lirc_sir.c lirc-0.9.0-new/drivers/lirc_sir/lirc_sir.c +--- lirc-0.9.0-old/drivers/lirc_sir/lirc_sir.c 2011-03-25 15:28:18.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_sir/lirc_sir.c 2012-06-10 14:18:42.000000000 -0700 +@@ -59,7 +59,6 @@ + #include + #include + #include +-#include + #include + #include + #include diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-022-disable_lirc_i2c.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-022-disable_lirc_i2c.patch new file mode 100644 index 0000000000..30946b8f7d --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-022-disable_lirc_i2c.patch @@ -0,0 +1,201 @@ +diff -Naur lirc-0.9.0-old/configure.ac lirc-0.9.0-new/configure.ac +--- lirc-0.9.0-old/configure.ac 2012-02-29 21:54:01.000000000 -0800 ++++ lirc-0.9.0-new/configure.ac 2012-02-29 21:55:06.000000000 -0800 +@@ -164,7 +164,6 @@ + (lirc_dev lirc_atiusb) \ + (lirc_dev lirc_bt829) \ + (lirc_dev lirc_gpio) \ +- (lirc_dev lirc_i2c) \ + (lirc_dev lirc_igorplugusb) \ + (lirc_dev lirc_ttusbir) \ + (lirc_dev lirc_imon) \ +@@ -420,32 +419,31 @@ + AC_ARG_WITH(driver, + [ --with-driver=X specify the driver to use, where X is one of: + all, none, userspace, accent, act200l, +- act220l, adaptec, alsa_usb, animax, asusdh, ++ act220l, alsa_usb, animax, asusdh, + atilibusb, atiusb, atwf83, audio, audio_alsa + avermedia, avermedia_vdomate, avermedia98, +- awlibusb, bestbuy, bestbuy2, breakoutbox, ++ awlibusb, bestbuy, bestbuy2, + bte, bw6130, caraca, chronos, commandir, + comX, cph06x, creative, creative_infracd, + devinput, dfclibusb, digimatrix, dsp, dvico, ea65, + exaudio, flyvideo, ftdi, gvbctv5pci, +- hauppauge, hauppauge_dvb, +- hercules_smarttv_stereo, i2cuser, ++ i2cuser, + igorplugusb, iguanaIR, imon, imon_24g, + imon_knob, imon_lcd, imon_pad, imon_rsc, + irdeo, irdeo_remote, irlink, irman, irreal, +- knc_one, kworld, +- leadtek_0007, leadtek_0010, leadtek_pvr2000, ++ kworld, ++ leadtek_0007, leadtek_0010, + livedrive_midi, livedrive_seq, logitech, + lptX, macmini, mediafocusI, + mouseremote, mouseremote_ps2, mp3anywhere, + mplay, nslu2,packard_bell, parallel, pcmak, +- pcmak_usb, pctv, pixelview_bt878, +- pixelview_pak, pixelview_pro, provideo, ++ pcmak_usb, pctv, ++ pixelview_pak, pixelview_pro, + realmagic, remotemaster, sa1100, samsung, + sasem, sb0540, serial, silitek, sir, slinke, + srm7500libusb, tekram, + tekram_bt829, tira, tira_raw, ttusbir, +- tuxbox, tvbox, udp, uirt2, uirt2_raw, ++ tuxbox, udp, uirt2, uirt2_raw, + usb_uirt_raw, usbx, wpc8769l, xbox], + driver=${withval}, + driver="unset" +@@ -592,9 +590,6 @@ + lirc_dev-lirc_gpio) + #lirc_driver="${lirc_driver} lirc_dev lirc_gpio" + ;; +- lirc_dev-lirc_i2c) +- #lirc_driver="${lirc_driver} lirc_dev lirc_i2c" +- ;; + lirc_dev-lirc_igorplugusb) + ;; + lirc_dev-lirc_ttusbir) +@@ -721,12 +716,6 @@ + AC_DEFINE(LIRC_SIR_ACTISYS_ACT220L) + fi + +-if test "$driver" = "adaptec"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="adaptec/lircd.conf.AVC-2410" +-# lircmd_conf="adaptec/lircmd.conf.AVC-2410" +-fi +- + if test "$driver" = "alsa_usb"; then + lirc_driver="alsa_usb" + hw_module="hw_alsa_usb.o" +@@ -828,11 +817,6 @@ + lircmd_conf="bestbuy/lircmd.conf.bestbuy2" + fi + +-if test "$driver" = "breakoutbox"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="creative/lircd.conf.breakoutbox" +-fi +- + if test "$driver" = "bte"; then + lirc_driver="none" + hw_module="hw_bte.o serial.o" +@@ -983,23 +967,6 @@ + # lircmd_conf="iodata/lircmd.conf.gvbctv5pci" + fi + +-if test "$driver" = "hauppauge"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="hauppauge/lircd.conf.hauppauge" +- lircmd_conf="hauppauge/lircmd.conf.hauppauge" +-fi +- +-if test "$driver" = "hauppauge_dvb"; then +- lirc_driver="lirc_dev" +- lircd_conf="hauppauge/lircd.conf.hauppauge" +- lircmd_conf="hauppauge/lircmd.conf.hauppauge" +-fi +- +-if test "$driver" = "hercules_smarttv_stereo"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="hercules/lircd.conf.smarttv_stereo" +-fi +- + if test "$driver" = "i2cuser"; then + lirc_driver="none" + hw_module="hw_i2cuser.o receive.o" +@@ -1084,12 +1051,6 @@ + HW_DEFAULT="hw_irreal" + fi + +-if test "$driver" = "knc_one"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="knc_one/lircd.conf.knc_one" +-# lircmd_conf="knc_one/lircmd.conf.knc_one" +-fi +- + if test "$driver" = "kworld"; then + lirc_driver="lirc_dev lirc_gpio" + lircd_conf="kworld/lircd.conf.kworld" +@@ -1108,12 +1069,6 @@ + lircmd_conf="leadtek/lircmd.conf.RM-0010" + fi + +-if test "$driver" = "leadtek_pvr2000"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="leadtek/lircd.conf.PVR2000" +-# lircmd_conf="leadtek/lircmd.conf.PVR2000" +-fi +- + if test "$driver" = "livedrive_midi"; then + lirc_driver="none" + hw_module="hw_livedrive_common.o hw_livedrive_midi.o" +@@ -1230,12 +1185,6 @@ + # lircmd_conf="pinnacle_systems/lircmd.conf.pctv" + fi + +-if test "$driver" = "pixelview_bt878"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="pixelview/lircd.conf.playtv_bt878" +-# lircmd_conf="pixelview/lircmd.conf.pixelview_bt878" +-fi +- + if test "$driver" = "pixelview_pak"; then + lirc_driver="lirc_dev lirc_gpio" + # the config files are the same as for the PlayTV pro +@@ -1249,12 +1198,6 @@ + lircmd_conf="pixelview/lircmd.conf.playtv_pro" + fi + +-if test "$driver" = "provideo"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="provideo/lircd.conf.pv951" +-# lircmd_conf="provideo/lircmd.conf.pv951" +-fi +- + if test "$driver" = "realmagic"; then + lirc_driver="none" + hw_module="hw_pixelview.o serial.o" +@@ -1372,11 +1315,6 @@ + HW_DEFAULT="hw_default" + fi + +-if test "$driver" = "tvbox"; then +- lirc_driver="lirc_dev lirc_i2c" +- lircd_conf="asus/lircd.conf.asus" +-fi +- + if test "$driver" = "udp"; then + lirc_driver="none" + hw_module="hw_udp.o receive.o" +@@ -1512,7 +1450,6 @@ + lirc_driver="lirc_dev \ + lirc_atiusb \ + lirc_bt829 \ +- lirc_i2c \ + lirc_igorplugusb \ + lirc_imon \ + lirc_parallel \ +@@ -1779,7 +1716,6 @@ + drivers/lirc_bt829/Makefile + drivers/lirc_dev/Makefile + drivers/lirc_gpio/Makefile +- drivers/lirc_i2c/Makefile + drivers/lirc_igorplugusb/Makefile + drivers/lirc_ttusbir/Makefile + drivers/lirc_imon/Makefile +@@ -1808,9 +1744,6 @@ + elif test "$driver" = "alsa_usb"; then + echo "You will have to use the snd-usb-audio driver from:" + echo "http://www.alsa-project.org/" +-elif test "$driver" = "hauppauge_dvb"; then +- echo "You will have to use the DVB driver from:" +- echo "http://www.linuxtv.org" + elif test "$kernel_module" = ""; then + echo "Your hardware does not require a special LIRC kernel module." + if test "${irtty}" != ""; then diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-023-ati_remote.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-023-ati_remote.patch new file mode 100644 index 0000000000..c9641c193d --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-023-ati_remote.patch @@ -0,0 +1,33 @@ +diff -Naur lirc-0.9.0-old-old/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.9.0-old-new/drivers/lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0-old-old/drivers/lirc_atiusb/lirc_atiusb.c 2012-05-01 12:09:19.000000000 -0700 ++++ lirc-0.9.0-old-new/drivers/lirc_atiusb/lirc_atiusb.c 2012-05-01 12:14:52.000000000 -0700 +@@ -138,23 +138,23 @@ + + static struct usb_device_id usb_remote_table[] = { + /* X10 USB Firecracker Interface */ +- { USB_DEVICE(VENDOR_ATI1, 0x0002) }, ++ /* { USB_DEVICE(VENDOR_ATI1, 0x0002) }, */ + + /* X10 VGA Video Sender */ +- { USB_DEVICE(VENDOR_ATI1, 0x0003) }, ++ /* { USB_DEVICE(VENDOR_ATI1, 0x0003) }, */ + + /* ATI Wireless Remote Receiver */ +- { USB_DEVICE(VENDOR_ATI1, 0x0004) }, ++ /* { USB_DEVICE(VENDOR_ATI1, 0x0004) }, */ + + /* NVIDIA Wireless Remote Receiver */ +- { USB_DEVICE(VENDOR_ATI1, 0x0005) }, ++ /* { USB_DEVICE(VENDOR_ATI1, 0x0005) }, */ + + /* ATI Wireless Remote Receiver */ +- { USB_DEVICE(VENDOR_ATI1, 0x0006) }, ++ /* { USB_DEVICE(VENDOR_ATI1, 0x0006) }, */ + + /* X10 USB Wireless Transceivers */ + { USB_DEVICE(VENDOR_ATI1, 0x0007) }, +- { USB_DEVICE(VENDOR_ATI1, 0x0008) }, ++ /* { USB_DEVICE(VENDOR_ATI1, 0x0008) }, */ + { USB_DEVICE(VENDOR_ATI1, 0x0009) }, + { USB_DEVICE(VENDOR_ATI1, 0x000A) }, + { USB_DEVICE(VENDOR_ATI1, 0x000B) }, diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-024-remove_smp_lock_h.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-024-remove_smp_lock_h.patch new file mode 100644 index 0000000000..c744a4397c --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-024-remove_smp_lock_h.patch @@ -0,0 +1,11 @@ +diff -Naur lirc-0.9.0-old/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.9.0-new/drivers/lirc_atiusb/lirc_atiusb.c +--- lirc-0.9.0-old/drivers/lirc_atiusb/lirc_atiusb.c 2011-07-27 20:45:01.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_atiusb/lirc_atiusb.c 2011-07-27 20:45:53.000000000 -0700 +@@ -48,7 +48,6 @@ + #include + #include + #include +-#include + #include + #include + #include diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-025-bit_le_fix.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-025-bit_le_fix.patch new file mode 100644 index 0000000000..7d9488c823 --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-025-bit_le_fix.patch @@ -0,0 +1,29 @@ +diff -Naur lirc-0.9.0-old/drivers/lirc_wpc8769l/lirc_wpc8769l.c lirc-0.9.0-new/drivers/lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-0.9.0-old/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2011-07-27 20:45:36.000000000 -0700 ++++ lirc-0.9.0-new/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2011-07-27 20:46:22.000000000 -0700 +@@ -361,14 +361,14 @@ + size = count << 3; + + ldata = (unsigned long *) data_buf; +- next_one = generic_find_next_le_bit(ldata, size, 0); ++ next_one = find_next_bit_le(ldata, size, 0); + + if (next_one > 0) + put_pulse_bit(next_one + * WPC8769L_USECS_PER_BIT); + + while (next_one < size) { +- next_zero = generic_find_next_zero_le_bit(ldata, ++ next_zero = find_next_zero_bit_le(ldata, + size, next_one + 1); + + put_space_bit( +@@ -376,7 +376,7 @@ + * WPC8769L_USECS_PER_BIT); + + if (next_zero < size) { +- next_one = generic_find_next_le_bit(ldata, ++ next_one = find_next_bit_le(ldata, + size, next_zero + 1); + + put_pulse_bit( diff --git a/packages/sysutils/remote/lirc/patches/lirc-0.9.0-026-uinput_key_fix.patch b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-026-uinput_key_fix.patch new file mode 100644 index 0000000000..29f5bc02d0 --- /dev/null +++ b/packages/sysutils/remote/lirc/patches/lirc-0.9.0-026-uinput_key_fix.patch @@ -0,0 +1,63 @@ +diff -Naur lirc-0.9.0-old/daemons/input_map.c lirc-0.9.0-new/daemons/input_map.c +--- lirc-0.9.0-old/daemons/input_map.c 2011-07-27 20:46:13.000000000 -0700 ++++ lirc-0.9.0-new/daemons/input_map.c 2011-07-27 20:47:15.000000000 -0700 +@@ -25,6 +25,19 @@ + NULL, 0} + }; + ++int get_input_code_by_index(int index, linux_input_code * code) ++{ ++ int i; ++ ++ for (i = 0; input_map[i].name != NULL; i++) { ++ if (i == index) { ++ *code = input_map[i].code; ++ return i; ++ } ++ } ++ return -1; ++} ++ + int get_input_code(const char *name, linux_input_code * code) + { + int i; +diff -Naur lirc-0.9.0-old/daemons/input_map.h lirc-0.9.0-new/daemons/input_map.h +--- lirc-0.9.0-old/daemons/input_map.h 2011-07-27 20:46:13.000000000 -0700 ++++ lirc-0.9.0-new/daemons/input_map.h 2011-07-27 20:47:15.000000000 -0700 +@@ -28,6 +28,7 @@ + typedef unsigned short linux_input_code; + #endif + ++int get_input_code_by_index(int index, linux_input_code * code); + int get_input_code(const char *name, linux_input_code * code); + void fprint_namespace(FILE * f); + int is_in_namespace(const char *name); +diff -Naur lirc-0.9.0-old/daemons/lircd.c lirc-0.9.0-new/daemons/lircd.c +--- lirc-0.9.0-old/daemons/lircd.c 2011-07-27 20:46:13.000000000 -0700 ++++ lirc-0.9.0-new/daemons/lircd.c 2011-07-27 20:47:15.000000000 -0700 +@@ -406,6 +406,8 @@ + #if defined(__linux__) + int fd; + int key; ++ linux_input_code code; ++ int i; + struct uinput_user_dev dev; + + fd = open("/dev/input/uinput", O_RDWR); +@@ -428,9 +430,13 @@ + goto setup_error; + } + +- for (key = KEY_RESERVED; key <= KEY_UNKNOWN; key++) { +- if (ioctl(fd, UI_SET_KEYBIT, key) != 0) { +- goto setup_error; ++ for(i = 0; get_input_code_by_index(i, &code) >= 0; i++) { ++ key = (int)code; ++ if (((key >= KEY_ESC) && (key <= KEY_RFKILL )) || ++ ((key >= KEY_OK ) && (key <= KEY_WPS_BUTTON))) { ++ if (ioctl(fd, UI_SET_KEYBIT, key) != 0) { ++ goto setup_error; ++ } + } + } +