mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
lirc: add upstream patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
f5979c7ae8
commit
9c4f79bbb8
@ -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 <rjkm@thp.uni-koeln.de>
|
||||||
|
Copyright (C) 1998-2010 Christoph Bartelmus <lirc@bartelmus.de>
|
||||||
|
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-<version>-preX-branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc
|
||||||
|
+ git clone -b lirc-<version>-preX-branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc lirc-<version>-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-<version>-branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc
|
||||||
|
+ git clone -b lirc-<version>-branch git://lirc.git.sourceforge.net/gitroot/lirc/lirc lirc-<version>
|
||||||
|
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 ? "<fail>" : "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
|
@ -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 <linux/poll.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
|
-#include <asm/system.h>
|
||||||
|
#include <linux/io.h>
|
||||||
|
#include <linux/irq.h>
|
||||||
|
#include <linux/fcntl.h>
|
||||||
|
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 <linux/mm.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
#include <linux/poll.h>
|
||||||
|
-#include <asm/system.h>
|
||||||
|
#include <linux/io.h>
|
||||||
|
#include <asm/irq.h>
|
||||||
|
#include <linux/fcntl.h>
|
@ -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
|
@ -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) },
|
@ -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 <linux/slab.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/kmod.h>
|
||||||
|
-#include <linux/smp_lock.h>
|
||||||
|
#include <linux/completion.h>
|
||||||
|
#include <linux/uaccess.h>
|
||||||
|
#include <linux/usb.h>
|
@ -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(
|
@ -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;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user