mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +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