rpms/kernel/F-11 kernel.spec, 1.1725, 1.1726 lirc-2.6.31.patch, 1.1, 1.2 lirc-revert-2.6.31-i2c-changes.patch, 1.1, 1.2

Jarod Wilson jwilson at fedoraproject.org
Wed Sep 2 04:21:37 UTC 2009


Author: jwilson

Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17298

Modified Files:
	kernel.spec lirc-2.6.31.patch 
	lirc-revert-2.6.31-i2c-changes.patch 
Log Message:
* Wed Sep 02 2009 Jarod Wilson <jarod at redhat.com>
- Make it possible to rmmod lirc_zilog w/o it hanging indefinitely
- Add transmit support (via port 2 only) on 1st-gen mceusb transceiver



Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1725
retrieving revision 1.1726
diff -u -p -r1.1725 -r1.1726
--- kernel.spec	2 Sep 2009 03:52:52 -0000	1.1725
+++ kernel.spec	2 Sep 2009 04:21:36 -0000	1.1726
@@ -1977,10 +1977,14 @@ fi
 # and build.
 
 %changelog
+* Wed Sep 02 2009 Jarod Wilson <jarod at redhat.com>
+- Make it possible to rmmod lirc_zilog w/o it hanging indefinitely
+- Add transmit support (via port 2 only) on 1st-gen mceusb transceiver
+
 * Tue Sep 01 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.30.5-46
 - Fix yet another Xen boot crash (#520517)
 
-* Tue Sep 01 2009 Jarod Wilson <jarod at redhat.com> 2.5.30.5-45
+* Tue Sep 01 2009 Jarod Wilson <jarod at redhat.com> 2.6.30.5-45
 - Refresh lirc patches, add new lirc_ene0100 driver
 - Fix up hdpvr driver for use with modular i2c so that
   lirc_zilog can actually bind to it

lirc-2.6.31.patch:
 MAINTAINERS                           |    9 
 drivers/input/Kconfig                 |    2 
 drivers/input/Makefile                |    2 
 drivers/input/lirc/Kconfig            |  119 +
 drivers/input/lirc/Makefile           |   21 
 drivers/input/lirc/lirc.h             |  100 +
 drivers/input/lirc/lirc_bt829.c       |  383 +++++
 drivers/input/lirc/lirc_dev.c         |  839 ++++++++++++
 drivers/input/lirc/lirc_dev.h         |  184 ++
 drivers/input/lirc/lirc_ene0100.c     |  644 +++++++++
 drivers/input/lirc/lirc_ene0100.h     |  169 ++
 drivers/input/lirc/lirc_i2c.c         |  537 +++++++
 drivers/input/lirc/lirc_igorplugusb.c |  556 ++++++++
 drivers/input/lirc/lirc_imon.c        | 2301 ++++++++++++++++++++++++++++++++++
 drivers/input/lirc/lirc_it87.c        |  986 ++++++++++++++
 drivers/input/lirc/lirc_it87.h        |  116 +
 drivers/input/lirc/lirc_ite8709.c     |  539 +++++++
 drivers/input/lirc/lirc_mceusb.c      | 1243 ++++++++++++++++++
 drivers/input/lirc/lirc_parallel.c    |  709 ++++++++++
 drivers/input/lirc/lirc_parallel.h    |   26 
 drivers/input/lirc/lirc_sasem.c       |  931 +++++++++++++
 drivers/input/lirc/lirc_serial.c      | 1316 +++++++++++++++++++
 drivers/input/lirc/lirc_sir.c         | 1283 ++++++++++++++++++
 drivers/input/lirc/lirc_streamzap.c   |  794 +++++++++++
 drivers/input/lirc/lirc_ttusbir.c     |  397 +++++
 drivers/input/lirc/lirc_zilog.c       | 1395 ++++++++++++++++++++
 26 files changed, 15601 insertions(+)

Index: lirc-2.6.31.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/lirc-2.6.31.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- lirc-2.6.31.patch	1 Sep 2009 04:18:45 -0000	1.1
+++ lirc-2.6.31.patch	2 Sep 2009 04:21:37 -0000	1.2
@@ -2,11 +2,12 @@ Linux Infrared Remote Control drivers --
 
 From http://git.wilsonet.com/linux-2.6-lirc.git/
 
-Refreshed 20090901
+Refreshed 20090902
 
 Signed-off-by: Jarod Wilson <jarod at redhat.com>
 
 ---
+ MAINTAINERS                           |    9 +
  drivers/input/Kconfig                 |    2 +
  drivers/input/Makefile                |    2 +
  drivers/input/lirc/Kconfig            |  119 ++
@@ -23,7 +24,7 @@ Signed-off-by: Jarod Wilson <jarod at redha
  drivers/input/lirc/lirc_it87.c        |  986 ++++++++++++++
  drivers/input/lirc/lirc_it87.h        |  116 ++
  drivers/input/lirc/lirc_ite8709.c     |  539 ++++++++
- drivers/input/lirc/lirc_mceusb.c      | 1225 ++++++++++++++++++
+ drivers/input/lirc/lirc_mceusb.c      | 1243 ++++++++++++++++++
  drivers/input/lirc/lirc_parallel.c    |  709 ++++++++++
  drivers/input/lirc/lirc_parallel.h    |   26 +
  drivers/input/lirc/lirc_sasem.c       |  931 +++++++++++++
@@ -32,8 +33,28 @@ Signed-off-by: Jarod Wilson <jarod at redha
  drivers/input/lirc/lirc_streamzap.c   |  794 ++++++++++++
  drivers/input/lirc/lirc_ttusbir.c     |  397 ++++++
  drivers/input/lirc/lirc_zilog.c       | 1395 ++++++++++++++++++++
- 25 files changed, 15574 insertions(+), 0 deletions(-)
+ 26 files changed, 15601 insertions(+), 0 deletions(-)
 
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 8dca9d8..f25dc26 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -3129,6 +3129,15 @@ W:	http://www.pasemi.com/
+ L:	linuxppc-dev at ozlabs.org
+ S:	Supported
+ 
++LINUX INFRARED REMOTE CONTROL DRIVERS (LIRC)
++P:	Jarod Wilson
++M:	jarod at redhat.com
++P:	Christoph Bartelmus
++M:	lirc at bartelmus.de
++W:	http://www.lirc.org/
++L:	lirc-list at lists.sourceforge.net
++S:	Maintained
++
+ LINUX SECURITY MODULE (LSM) FRAMEWORK
+ M:	Chris Wright <chrisw at sous-sol.org>
+ L:	linux-security-module at vger.kernel.org
 diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
 index cd50c00..442f94f 100644
 --- a/drivers/input/Kconfig
@@ -706,7 +727,7 @@ index 0000000..0485884
 +MODULE_PARM_DESC(debug, "Debug enabled or not");
 diff --git a/drivers/input/lirc/lirc_dev.c b/drivers/input/lirc/lirc_dev.c
 new file mode 100644
-index 0000000..a23bfea
+index 0000000..48ab5af
 --- /dev/null
 +++ b/drivers/input/lirc/lirc_dev.c
 @@ -0,0 +1,839 @@
@@ -1132,7 +1153,7 @@ index 0000000..a23bfea
 +int lirc_dev_fop_open(struct inode *inode, struct file *file)
 +{
 +	struct irctl *ir;
-+	int retval;
++	int retval = 0;
 +
 +	if (iminor(inode) >= MAX_IRCTL_DEVICES) {
 +		dprintk("lirc_dev [%d]: open result = -ENODEV\n",
@@ -7637,10 +7658,10 @@ index 0000000..3d53181
 +MODULE_PARM_DESC(debug, "Enable debugging messages");
 diff --git a/drivers/input/lirc/lirc_mceusb.c b/drivers/input/lirc/lirc_mceusb.c
 new file mode 100644
-index 0000000..58dfdd5
+index 0000000..8011a14
 --- /dev/null
 +++ b/drivers/input/lirc/lirc_mceusb.c
-@@ -0,0 +1,1225 @@
+@@ -0,0 +1,1243 @@
 +/*
 + * LIRC driver for Windows Media Center Edition USB Infrared Transceivers
 + *
@@ -7656,9 +7677,12 @@ index 0000000..58dfdd5
 + * supports the 1st-gen device now too. Transmitting on the 1st-gen device
 + * is as yet untested, but receiving definitely works.
 + *
-+ * Support for 1st-gen mceusb device added in June of 2009,
++ * 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>
++ *
 + * Derived from ATI USB driver by Paul Miller and the original
 + * MCE USB driver by Dan Conti (and now including chunks of the latter
 + * relevant to the 1st-gen device initialization)
@@ -7824,6 +7848,8 @@ index 0000000..58dfdd5
 +	{ USB_DEVICE(VENDOR_FORMOSA, 0xe017) },
 +	/* Formosa Industrial Computing / Beanbag Emulation Device */
 +	{ USB_DEVICE(VENDOR_FORMOSA, 0xe018) },
++	/* Formosa21 / eHome Infrared Receiver */
++	{ USB_DEVICE(VENDOR_FORMOSA, 0xe03a) },
 +	/* Formosa Industrial Computing AIM IR605/A */
 +	{ USB_DEVICE(VENDOR_FORMOSA, 0xe03c) },
 +	/* Fintek eHome Infrared Transceiver */
@@ -8498,7 +8524,7 @@ index 0000000..58dfdd5
 +	memset(data, 0, 8);
 +
 +	ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
-+			      5, USB_TYPE_VENDOR, 0, 0,
++			      USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0,
 +			      data, 2, HZ * 3);
 +	dprintk("%s - ret = %d, devnum = %d\n",
 +		__func__, ret, ir->usbdev->devnum);
@@ -8512,6 +8538,18 @@ index 0000000..58dfdd5
 +
 +	dprintk("%s - ret = %d\n", __func__, ret);
 +
++	/* strange: bRequest == 4 */
++	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 */
++	ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
++			      2, USB_TYPE_VENDOR,
++			      0x0000, 0x0100, NULL, 0, HZ * 3);
++	dprintk("%s - retC = %d\n", __func__, ret);
++
 +	return ret;
 +
 +};
@@ -8753,19 +8791,10 @@ index 0000000..58dfdd5
 +		request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
 +		request_packet_async(ir, ep_out, pin_init3, sizeof(pin_init3),
 +				     MCEUSB_OUTBOUND);
-+		/* if we don't issue the correct number of receives
-+		 * (MCEUSB_INBOUND) for each outbound, then the first few ir
-+		 * pulses will be interpreted by the usb_async_callback routine
-+		 * - we should ensure we have the right amount OR less - as the
-+		 * mceusb_dev_recv routine will handle the control packets OK -
-+		 * they start with 0x9f - but the async callback doesn't handle
-+		 * ir pulse packets
-+		 */
-+		request_packet_async(ir, ep_in, NULL, maxp, 0);
-+	} else {
++	} else if (ir->flags.microsoft_gen1) {
 +		/* original ms mce device requires some additional setup */
-+		if (ir->flags.microsoft_gen1)
-+			mceusb_gen1_init(ir);
++		mceusb_gen1_init(ir);
++	} else {
 +
 +		request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
 +		request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
@@ -8774,9 +8803,19 @@ index 0000000..58dfdd5
 +		request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
 +		request_packet_async(ir, ep_out, init2,
 +				     sizeof(init2), MCEUSB_OUTBOUND);
-+		request_packet_async(ir, ep_in, NULL, maxp, 0);
 +	}
 +
++	/*
++	 * if we don't issue the correct number of receives
++	 * (MCEUSB_INBOUND) for each outbound, then the first few ir
++	 * pulses will be interpreted by the usb_async_callback routine
++	 * - we should ensure we have the right amount OR less - as the
++	 * mceusb_dev_recv routine will handle the control packets OK -
++	 * they start with 0x9f - but the async callback doesn't handle
++	 * ir pulse packets
++	 */
++	request_packet_async(ir, ep_in, NULL, maxp, 0);
++
 +	usb_set_intfdata(intf, ir);
 +
 +	return 0;

lirc-revert-2.6.31-i2c-changes.patch:
 lirc_i2c.c   |  216 ++++++++++++++++++++++++++++++++++++++++++++---------------
 lirc_zilog.c |   60 +++++++++-------
 2 files changed, 200 insertions(+), 76 deletions(-)

Index: lirc-revert-2.6.31-i2c-changes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/lirc-revert-2.6.31-i2c-changes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- lirc-revert-2.6.31-i2c-changes.patch	1 Sep 2009 04:18:45 -0000	1.1
+++ lirc-revert-2.6.31-i2c-changes.patch	2 Sep 2009 04:21:37 -0000	1.2
@@ -1,6 +1,6 @@
- drivers/input/lirc/lirc_i2c.c   |  216 ++++++++++++++++++++++++++++++---------
- drivers/input/lirc/lirc_zilog.c |   58 +++++----
- 2 files changed, 198 insertions(+), 76 deletions(-)
+ drivers/input/lirc/lirc_i2c.c   |  216 +++++++++++++++++++++++++++++----------
+ drivers/input/lirc/lirc_zilog.c |   60 +++++++-----
+ 2 files changed, 200 insertions(+), 76 deletions(-)
 
 diff --git a/drivers/input/lirc/lirc_i2c.c b/drivers/input/lirc/lirc_i2c.c
 index e27d937..dedf415 100644
@@ -317,12 +317,11 @@ index e27d937..dedf415 100644
  static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg)
  {
  	/* nothing */
-
-diff --git b/drivers/input/lirc/lirc_zilog.c a/drivers/input/lirc/lirc_zilog.c
-index c532399..049c3da 100644
---- b/drivers/input/lirc/lirc_zilog.c
-+++ a/drivers/input/lirc/lirc_zilog.c
-@@ -1088,26 +1088,18 @@ static struct lirc_driver lirc_template = {
+diff --git a/drivers/input/lirc/lirc_zilog.c b/drivers/input/lirc/lirc_zilog.c
+index f86db02..26bdb18 100644
+--- a/drivers/input/lirc/lirc_zilog.c
++++ b/drivers/input/lirc/lirc_zilog.c
+@@ -1109,26 +1109,18 @@ static struct lirc_driver lirc_template = {
  };
  
  static int ir_attach(struct i2c_adapter *adap, int have_rx, int have_tx);
@@ -353,7 +352,7 @@ index c532399..049c3da 100644
  };
  
  static struct i2c_client client_template = {
-@@ -1128,8 +1120,20 @@ static struct file_operations lirc_fops = {
+@@ -1149,8 +1141,20 @@ static struct file_operations lirc_fops = {
  
  static int i2c_attach(struct i2c_client *client, struct IR *ir)
  {
@@ -374,7 +373,7 @@ index c532399..049c3da 100644
  	++ir->devs;
  	return 0;
  }
-@@ -1230,13 +1234,13 @@ static int ir_attach(struct i2c_adapter *adap, int have_rx, int have_tx)
+@@ -1251,13 +1255,13 @@ static int ir_attach(struct i2c_adapter *adap, int have_rx, int have_tx)
  err:
  	/* undo everything, hopefully... */
  	if (ir->c_rx.addr)
@@ -391,13 +390,15 @@ index c532399..049c3da 100644
  {
  	struct IR *ir = i2c_get_clientdata(client);
  	mutex_lock(&ir->lock);
-@@ -1257,17 +1261,21 @@ static int ir_remove(struct i2c_client *client)
+@@ -1278,17 +1282,23 @@ static int ir_remove(struct i2c_client *client)
  			ir->t_notify2 = NULL;
  		}
  
 +		/* unregister device */
++		i2c_release_client(&ir->c_rx);
 +		i2c_detach_client(&ir->c_rx);
 +	} else if (client == &ir->c_tx) {
++		i2c_release_client(&ir->c_tx);
 +		i2c_detach_client(&ir->c_tx);
  	} else {
  		mutex_unlock(&ir->lock);
@@ -416,7 +417,7 @@ index c532399..049c3da 100644
  		return -ENODEV;
  	} else if (ir->devs == 0) {
  		/* unregister lirc driver */
-@@ -1286,10 +1294,11 @@ static int ir_remove(struct i2c_client *client)
+@@ -1307,10 +1317,11 @@ static int ir_remove(struct i2c_client *client)
  	return 0;
  }
  
@@ -430,7 +431,7 @@ index c532399..049c3da 100644
  
  	if (adap->id == I2C_HW_B_BT848 ||
  #ifdef I2C_HW_B_HDPVR
-@@ -1302,10 +1311,11 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
+@@ -1323,10 +1334,11 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
  		 * The external IR receiver is at i2c address 0x71.
  		 * The IR transmitter is at 0x70.
  		 */
@@ -444,7 +445,7 @@ index c532399..049c3da 100644
  				have_rx = 1;
  			dprintk("probe 0x70 @ %s: %s\n",
  				adap->name,
-@@ -1313,8 +1323,8 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
+@@ -1334,8 +1346,8 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
  		}
  
  		if (!disable_tx) {




More information about the scm-commits mailing list