[Lucid] UBUNTU: Update lirc drivers to cvs version 2009.12.07
manoj.iyer at canonical.com
manoj.iyer at canonical.com
Tue Dec 8 19:00:37 UTC 2009
Mario,
It is an item tracked on
https://blueprints.launchpad.net/ubuntu/+spec/kernel-lucid-review-of-ubuntu-delta
The lirc package I co from cvs has drivers/ deamons/ tools/ etc, the
drivers source points to header files as #include "../drivers/lirc.h"
in our source tree, lirc is under ubuntu/lirc/ so those #includes had to
be changed to #include "../lirc.h" etc.
I did check for progress of lirc on lkml & other lists, and got the
feeling that it will not make 2.6.32. I saw the rfc from Jon Smirl about
what in-kernel ir should do.
On Tue, 8 Dec 2009, Mario Limonciello wrote:
> Hi Manoj:
>
> Out of curiosity, what pre-empted this? Was it not building anymore
> against 2.6.32?
>
> In case you haven't kept up, there is a lot of discussion going on right
> now on LKML about IR and LIRC. Hopefully by the end of it, some form of
> it lands in staging at least (although the discussion is to move it into
> the kernel itself).
>
> Thanks,
>
> On 12/07/2009 07:08 PM, Manoj Iyer wrote:
>> Updated the lirc driver version to the latest cvs. I had to change the
>> makefiles and modify the source to point to the correct header files. The
>> source is set up to build under the lirc main tree, so had to modify few
>> things to make it to build under ubuntu/ There was no BOM file for this
>> driver so added a new one.
>>
>> Test kernel is avaiable for latest lucid kernel under:
>>
>> http://people.canonical.com/~manjo/lucid/lirc/
>>
>> Git commits can be pulled from:
>>
>> The following changes since commit
>> 802ec95236d5f995e04a16a7caa7f18e8360158d:
>> Manoj Iyer (1):
>> UBUNTU: Update lirc drivers to cvs version 2009.12.07
>>
>> are available in the git repository at:
>>
>>
>> ssh://zinc.canonical.com/srv/kernel.ubuntu.com/git/manjo/ubuntu-lucid.git
>> lirc
>>
>>
>> Changes from old version to 2009.12.07 cvs version are as follows:
>>
>> From 802ec95236d5f995e04a16a7caa7f18e8360158d Mon Sep 17 00:00:00 2001
>> From: Manoj Iyer<manoj.iyer at canonical.com>
>> Date: Mon, 7 Dec 2009 18:54:32 -0600
>> Subject: [PATCH] UBUNTU: Update lirc drivers to cvs version 2009.12.07
>>
>> ExternalDriver: lirc
>> Description: drivers to decode and send infra-red signals of
>> many (but not all) commonly used remote controls.
>> Url: http://www.lirc.org/cvs.html
>> Mask:
>> Version: cvs version 2009.12.07
>>
>> Signed-off-by: Manoj Iyer<manoj.iyer at canonical.com>
>> ---
>> debian.master/changelog | 2 +-
>> ubuntu/lirc/BOM | 3 ++
>> ubuntu/lirc/kcompat.h | 8 +++++-
>> ubuntu/lirc/lirc_bt829/lirc_bt829.c | 4 +-
>> ubuntu/lirc/lirc_dev/lirc_dev.c | 4 +-
>> ubuntu/lirc/lirc_ene0100/lirc_ene0100.c | 5 ++-
>> ubuntu/lirc/lirc_i2c/lirc_i2c.c | 1 +
>> ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c | 5 +---
>> ubuntu/lirc/lirc_imon/lirc_imon.c | 34 ++++++++++++-----------
>> ubuntu/lirc/lirc_ite8709/lirc_ite8709.c | 3 ++
>> ubuntu/lirc/lirc_mceusb/lirc_mceusb.c | 20 ++++++-------
>> ubuntu/lirc/lirc_serial/lirc_serial.c | 9 ++++++
>> ubuntu/lirc/lirc_sir/lirc_sir.c | 12 +++++++-
>> 13 files changed, 70 insertions(+), 40 deletions(-)
>> create mode 100644 ubuntu/lirc/BOM
>>
>> diff --git a/debian.master/changelog b/debian.master/changelog
>> index f8d90c2..a43058d 100644
>> --- a/debian.master/changelog
>> +++ b/debian.master/changelog
>> @@ -1,4 +1,4 @@
>> -linux (2.6.32-7.10) lucid; urgency=low
>> +linux (2.6.32-7.10~lirc1manjo1) lucid; urgency=low
>>
>> [ Andy Whitcroft ]
>>
>> diff --git a/ubuntu/lirc/BOM b/ubuntu/lirc/BOM
>> new file mode 100644
>> index 0000000..49158e5
>> --- /dev/null
>> +++ b/ubuntu/lirc/BOM
>> @@ -0,0 +1,3 @@
>> +Downloaded from: cvs -z8 -d:pserver:anonymous at lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc
>> +Current Version: 2009.12.07
>> +Comments: Fix up makefiles. Fix source code to point to hearder.
>> diff --git a/ubuntu/lirc/kcompat.h b/ubuntu/lirc/kcompat.h
>> index 1ede942..88f3f95 100644
>> --- a/ubuntu/lirc/kcompat.h
>> +++ b/ubuntu/lirc/kcompat.h
>> @@ -1,4 +1,4 @@
>> -/* $Id: kcompat.h,v 5.44 2009/03/22 08:45:47 lirc Exp $ */
>> +/* $Id: kcompat.h,v 5.45 2009/08/02 11:15:28 lirc Exp $ */
>>
>> #ifndef _KCOMPAT_H
>> #define _KCOMPAT_H
>> @@ -399,4 +399,10 @@ static inline unsigned iminor(struct inode *inode)
>> }
>> #endif
>>
>> +/****************************** bitops.h **********************************/
>> +#if LINUX_VERSION_CODE< KERNEL_VERSION(2, 6, 24)
>> +#define BIT_MASK(nr) (1UL<< ((nr) % BITS_PER_LONG))
>> +#define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
>> +#endif
>> +
>> #endif /* _KCOMPAT_H */
>> diff --git a/ubuntu/lirc/lirc_bt829/lirc_bt829.c b/ubuntu/lirc/lirc_bt829/lirc_bt829.c
>> index d16e24c..c1d8630 100644
>> --- a/ubuntu/lirc/lirc_bt829/lirc_bt829.c
>> +++ b/ubuntu/lirc/lirc_bt829/lirc_bt829.c
>> @@ -31,8 +31,8 @@
>> #include<linux/pci.h>
>> #include<linux/delay.h>
>>
>> -#include "../kcompat.h"
>> -#include "../lirc_dev/lirc_dev.h"
>> +#include "kcompat.h"
>> +#include "lirc_dev/lirc_dev.h"
>>
>> static int poll_main(void);
>> static int atir_init_start(void);
>> diff --git a/ubuntu/lirc/lirc_dev/lirc_dev.c b/ubuntu/lirc/lirc_dev/lirc_dev.c
>> index 7618c0a..e01cbed 100644
>> --- a/ubuntu/lirc/lirc_dev/lirc_dev.c
>> +++ b/ubuntu/lirc/lirc_dev/lirc_dev.c
>> @@ -61,7 +61,7 @@
>> #include<linux/compat.h>
>> #endif
>>
>> -#include "../kcompat.h"
>> +#include "kcompat.h"
>>
>> /* SysFS header */
>> #if defined(LIRC_HAVE_SYSFS)
>> @@ -69,7 +69,7 @@
>> #endif
>>
>> #include "../lirc.h"
>> -#include "lirc_dev.h"
>> +#include "../lirc_dev/lirc_dev.h"
>>
>> static int debug;
>> #define dprintk(fmt, args...) \
>> diff --git a/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c b/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c
>> index da9519f..719e925 100644
>> --- a/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c
>> +++ b/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c
>> @@ -24,6 +24,7 @@
>> #include<linux/pnp.h>
>> #include<linux/io.h>
>> #include<linux/interrupt.h>
>> +#include<linux/sched.h>
>> #include "lirc_ene0100.h"
>>
>> #if LINUX_VERSION_CODE< KERNEL_VERSION(2, 6, 16)
>> @@ -81,7 +82,7 @@ static int ene_hw_irq_status(struct ene_device *dev, int *buffer_pointer)
>> if (dev->hw_revision< ENE_HW_C) {
>> irq_status = ene_hw_read_reg(dev, ENEB_IRQ_STATUS);
>>
>> - if (!irq_status& ENEB_IRQ_STATUS_IR)
>> + if (!(irq_status& ENEB_IRQ_STATUS_IR))
>> return 0;
>> ene_hw_write_reg(dev, ENEB_IRQ_STATUS,
>> irq_status& ~ENEB_IRQ_STATUS_IR);
>> @@ -92,7 +93,7 @@ static int ene_hw_irq_status(struct ene_device *dev, int *buffer_pointer)
>>
>> irq_status = ene_hw_read_reg(dev, ENEC_IRQ);
>>
>> - if (!irq_status&& ENEC_IRQ_STATUS)
>> + if (!(irq_status& ENEC_IRQ_STATUS))
>> return 0;
>>
>> /* original driver does that twice - a workaround ? */
>> diff --git a/ubuntu/lirc/lirc_i2c/lirc_i2c.c b/ubuntu/lirc/lirc_i2c/lirc_i2c.c
>> index dca6b51..247c9c6 100644
>> --- a/ubuntu/lirc/lirc_i2c/lirc_i2c.c
>> +++ b/ubuntu/lirc/lirc_i2c/lirc_i2c.c
>> @@ -399,6 +399,7 @@ static struct i2c_driver driver = {
>> .name = "i2c ir driver",
>> },
>> #endif
>> + // .id = I2C_DRIVERID_EXP3, /* FIXME */
>> #if LINUX_VERSION_CODE< KERNEL_VERSION(2, 6, 31)
>> .attach_adapter = ir_probe,
>> .detach_client = ir_remove,
>> diff --git a/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c b/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c
>> index 6705570..80e9506 100644
>> --- a/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c
>> +++ b/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c
>> @@ -363,7 +363,7 @@ static int usb_remote_poll(void *data, struct lirc_buffer *buf)
>> "[%d]: SET_INFRABUFFER_EMPTY: error %d\n",
>> ir->devnum, ret);
>> return 0;
>> - } else
>> + } else if (ret< 0)
>> printk(KERN_WARNING DRIVER_NAME
>> "[%d]: GET_INFRACODE: error %d\n",
>> ir->devnum, ret);
>> @@ -562,9 +562,6 @@ static void usb_remote_disconnect(struct usb_device *dev, void *ptr)
>> "[%d]: usb remote disconnected\n", ir->devnum);
>>
>> lirc_unregister_driver(ir->d->minor);
>> -
>> - lirc_buffer_free(ir->d->rbuf);
>> - kfree(ir->d->rbuf);
>> kfree(ir->d);
>>
>>
>> diff --git a/ubuntu/lirc/lirc_imon/lirc_imon.c b/ubuntu/lirc/lirc_imon/lirc_imon.c
>> index fcaa45f..0f45bd7 100644
>> --- a/ubuntu/lirc/lirc_imon/lirc_imon.c
>> +++ b/ubuntu/lirc/lirc_imon/lirc_imon.c
>> @@ -2,7 +2,7 @@
>> * lirc_imon.c: LIRC/VFD/LCD driver for SoundGraph iMON IR/VFD/LCD
>> * including the iMON PAD model
>> *
>> - * $Id: lirc_imon.c,v 1.111 2009/09/11 04:56:18 jarodwilson Exp $
>> + * $Id: lirc_imon.c,v 1.113 2009/10/30 04:00:30 jarodwilson Exp $
>> *
>> * Copyright(C) 2004 Venky Raju(dev at venky.ws)
>> *
>> @@ -565,7 +565,8 @@ static int display_close(struct inode *inode, struct file *file)
>> }
>>
>> /**
>> - * Sends a packet to the device
>> + * Sends a packet to the device -- this function must be called
>> + * with context->lock held.
>> */
>> static int send_packet(struct imon_context *context)
>> {
>> @@ -743,7 +744,6 @@ static int send_set_imon_clock(struct imon_context *context,
>> return -ENODEV;
>> }
>>
>> -
>> for (i = 0; i< IMON_CLOCK_ENABLE_PACKETS; i++) {
>> memcpy(context->usb_tx_buf, clock_enable_pkt[i], 8);
>> retval = send_packet(context);
>> @@ -755,7 +755,6 @@ static int send_set_imon_clock(struct imon_context *context,
>> }
>>
>> return retval;
>> -
>> }
>>
>> /**
>> @@ -1097,13 +1096,6 @@ static void imon_set_ir_protocol(struct imon_context *context)
>>
>> switch (ir_protocol) {
>> case IMON_IR_PROTOCOL_MCE:
>> - /* MCE proto not supported on devices without tx control */
>> - if (!context->tx_control) {
>> - printk(KERN_INFO "%s: MCE IR protocol not supported on "
>> - "this device, using iMON protocol\n", __func__);
>> - context->ir_protocol = IMON_IR_PROTOCOL_IMON;
>> - return;
>> - }
>> dprintk("Configuring IR receiver for MCE protocol\n");
>> ir_proto_packet[0] = 0x01;
>> context->ir_protocol = IMON_IR_PROTOCOL_MCE;
>> @@ -1125,11 +1117,18 @@ static void imon_set_ir_protocol(struct imon_context *context)
>> context->ir_protocol = IMON_IR_PROTOCOL_IMON;
>> break;
>> }
>> - memcpy(context->usb_tx_buf,&ir_proto_packet,
>> - sizeof(ir_proto_packet));
>> +
>> + memcpy(context->usb_tx_buf,&ir_proto_packet, sizeof(ir_proto_packet));
>> +
>> retval = send_packet(context);
>> - if (retval)
>> - printk(KERN_INFO "%s: failed to set remote type\n", __func__);
>> + if (retval) {
>> + printk(KERN_INFO "%s: failed to set IR protocol, falling back "
>> + "to standard iMON protocol mode\n", __func__);
>> + ir_protocol = IMON_IR_PROTOCOL_IMON;
>> + context->ir_protocol = IMON_IR_PROTOCOL_IMON;
>> + }
>> +
>> + return;
>> }
>>
>>
>> @@ -1152,8 +1151,11 @@ static int ir_open(void *data)
>> context->rx.prev_bit = 0;
>>
>> /* set new IR protocol if it has changed since init or last open */
>> - if (ir_protocol != context->ir_protocol)
>> + if (ir_protocol != context->ir_protocol) {
>> + mutex_lock(&context->lock);
>> imon_set_ir_protocol(context);
>> + mutex_unlock(&context->lock);
>> + }
>>
>> context->ir_isopen = 1;
>> printk(KERN_INFO MOD_NAME ": IR port opened\n");
>> diff --git a/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c b/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c
>> index bcbc2ad..4e0f766 100644
>> --- a/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c
>> +++ b/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c
>> @@ -21,6 +21,9 @@
>>
>> #include<linux/version.h>
>> #include<linux/module.h>
>> +#include<linux/interrupt.h>
>> +#include<linux/sched.h>
>> +#include<linux/delay.h>
>> #include<linux/pnp.h>
>> #if LINUX_VERSION_CODE< KERNEL_VERSION(2, 6, 19)
>> #include<asm/io.h>
>> diff --git a/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c b/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c
>> index 0851769..4a0c771 100644
>> --- a/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c
>> +++ b/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c
>> @@ -10,14 +10,9 @@
>> * Copyright (c) 2003-2004 Dan Conti<dconti at acm.wwu.edu>
>> *
>> * Original lirc_mceusb driver deprecated in favor of this driver, which
>> - * supports the 1st-gen device now too. Transmitting on the 1st-gen device
>> - * only functions on port #2 at the moment.
>> - *
>> - * Support for 1st-gen device added June 2009,
>> - * by Jarod Wilson<jarod at wilsonet.com>
>> - *
>> - * Initial transmission support for 1st-gen device added August 2009,
>> - * by Patrick Calhoun<phineas at ou.edu>
>> + * supports the 1st-gen device now too. Transmit and receive support for
>> + * the 1st-gen device added June-September 2009,
>> + * by Jarod Wilson<jarod at wilsonet.com> and Patrick Calhoun<phineas at ou.edu>
>> *
>> * Derived from ATI USB driver by Paul Miller and the original
>> * MCE USB driver by Dan Conti ((and now including chunks of the latter
>> @@ -164,6 +159,8 @@ static struct usb_device_id mceusb_dev_table[] = {
>> { USB_DEVICE(VENDOR_SMK, 0x0322) },
>> /* bundled with Hauppauge PVR-150 */
>> { USB_DEVICE(VENDOR_SMK, 0x0334) },
>> + /* SMK eHome Infrared Transceiver */
>> + { USB_DEVICE(VENDOR_SMK, 0x0338) },
>> /* Tatung eHome Infrared Transceiver */
>> { USB_DEVICE(VENDOR_TATUNG, 0x9150) },
>> /* Shuttle eHome Infrared Transceiver */
>> @@ -237,6 +234,7 @@ static struct usb_device_id microsoft_gen1_list[] = {
>> };
>>
>> static struct usb_device_id transmitter_mask_list[] = {
>> + { USB_DEVICE(VENDOR_MICROSOFT, 0x006d) },
>> { USB_DEVICE(VENDOR_SMK, 0x031d) },
>> { USB_DEVICE(VENDOR_SMK, 0x0322) },
>> { USB_DEVICE(VENDOR_SMK, 0x0334) },
>> @@ -904,20 +902,20 @@ static int mceusb_gen1_init(struct mceusb_dev *ir)
>> dprintk("%s - data[0] = %d, data[1] = %d\n",
>> __func__, data[0], data[1]);
>>
>> - /* set feature */
>> + /* set feature: bit rate 38400 bps */
>> ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
>> USB_REQ_SET_FEATURE, USB_TYPE_VENDOR,
>> 0xc04e, 0x0000, NULL, 0, HZ * 3);
>>
>> dprintk("%s - ret = %d\n", __func__, ret);
>>
>> - /* strange: bRequest == 4 */
>> + /* bRequest 4: set char length to 8 bits */
>> ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
>> 4, USB_TYPE_VENDOR,
>> 0x0808, 0x0000, NULL, 0, HZ * 3);
>> dprintk("%s - retB = %d\n", __func__, ret);
>>
>> - /* strange: bRequest == 2 */
>> + /* bRequest 2: set handshaking to use DTR/DSR */
>> ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
>> 2, USB_TYPE_VENDOR,
>> 0x0000, 0x0100, NULL, 0, HZ * 3);
>> diff --git a/ubuntu/lirc/lirc_serial/lirc_serial.c b/ubuntu/lirc/lirc_serial/lirc_serial.c
>> index 9b25e38..e506658 100644
>> --- a/ubuntu/lirc/lirc_serial/lirc_serial.c
>> +++ b/ubuntu/lirc/lirc_serial/lirc_serial.c
>> @@ -62,6 +62,15 @@
>>
>> #include<linux/autoconf.h>
>>
>> +#if defined(CONFIG_SERIAL) || defined(CONFIG_SERIAL_8250)
>> +#warning "******************************************"
>> +#warning " Your serial port driver is compiled into "
>> +#warning " the kernel. You will have to release the "
>> +#warning " port you want to use for LIRC with: "
>> +#warning " setserial /dev/ttySx uart none "
>> +#warning "******************************************"
>> +#endif
>> +
>> #include<linux/module.h>
>> #include<linux/errno.h>
>> #include<linux/signal.h>
>> diff --git a/ubuntu/lirc/lirc_sir/lirc_sir.c b/ubuntu/lirc/lirc_sir/lirc_sir.c
>> index ac91ec7..becaff7 100644
>> --- a/ubuntu/lirc/lirc_sir/lirc_sir.c
>> +++ b/ubuntu/lirc/lirc_sir/lirc_sir.c
>> @@ -46,6 +46,16 @@
>> #endif
>>
>> #include<linux/autoconf.h>
>> +#if !defined(CONFIG_SERIAL_MODULE)
>> +#if !defined(LIRC_ON_SA1100)
>> +#warning "******************************************"
>> +#warning " Your serial port driver is compiled into "
>> +#warning " the kernel. You will have to release the "
>> +#warning " port you want to use for LIRC with: "
>> +#warning " setserial /dev/ttySx uart none "
>> +#warning "******************************************"
>> +#endif
>> +#endif
>>
>> #include<linux/sched.h>
>> #include<linux/errno.h>
>> @@ -423,7 +433,7 @@ static int lirc_ioctl(struct inode *node, struct file *filep, unsigned int cmd,
>> case LIRC_SET_SEND_DUTY_CYCLE:
>> retval = get_user(ivalue, (unsigned int *) arg);
>> if (retval)
>> - return reetval;
>> + return retval;
>> if (ivalue<= 0 || ivalue> 100)
>> return -EINVAL;
>> /* (ivalue/100)*(1000000/freq) */
>> --
>> 1.6.3.3
>>
>>
>> --
>> kernel-team mailing list
>> kernel-team at lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>>
>
> --
> Mario Limonciello
> *Dell | Linux Engineering*
> mario_limonciello at dell.com
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>
More information about the kernel-team
mailing list