rpms/kernel/F-10 linux-2.6.29-lirc.patch,1.6,1.7

Jarod Wilson jwilson at fedoraproject.org
Thu Jun 18 04:22:43 UTC 2009


Author: jwilson

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

Modified Files:
	linux-2.6.29-lirc.patch 
Log Message:
a few more lirc_imon tweaks

linux-2.6.29-lirc.patch:

Index: linux-2.6.29-lirc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/linux-2.6.29-lirc.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- linux-2.6.29-lirc.patch	17 Jun 2009 18:08:54 -0000	1.6
+++ linux-2.6.29-lirc.patch	18 Jun 2009 04:22:13 -0000	1.7
@@ -16,7 +16,7 @@ Signed-off-by: Jarod Wilson <jarod at redha
  drivers/input/lirc/lirc_dev.h         |  184 +++
  drivers/input/lirc/lirc_i2c.c         |  649 +++++++++++
  drivers/input/lirc/lirc_igorplugusb.c |  556 +++++++++
- drivers/input/lirc/lirc_imon.c        | 2047 +++++++++++++++++++++++++++++++++
+ drivers/input/lirc/lirc_imon.c        | 2043 +++++++++++++++++++++++++++++++++
  drivers/input/lirc/lirc_it87.c        |  986 ++++++++++++++++
  drivers/input/lirc/lirc_it87.h        |  116 ++
  drivers/input/lirc/lirc_ite8709.c     |  539 +++++++++
@@ -30,7 +30,7 @@ Signed-off-by: Jarod Wilson <jarod at redha
  drivers/input/lirc/lirc_streamzap.c   |  777 +++++++++++++
  drivers/input/lirc/lirc_ttusbir.c     |  397 +++++++
  drivers/input/lirc/lirc_zilog.c       | 1384 ++++++++++++++++++++++
- 25 files changed, 15247 insertions(+), 0 deletions(-)
+ 25 files changed, 15243 insertions(+), 0 deletions(-)
 
 diff --git a/MAINTAINERS b/MAINTAINERS
 index 59fd2d1..ad1b16c 100644
@@ -2985,10 +2985,10 @@ index 0000000..ff49bdd
 +
 diff --git a/drivers/input/lirc/lirc_imon.c b/drivers/input/lirc/lirc_imon.c
 new file mode 100644
-index 0000000..3de77ea
+index 0000000..bcd8d42
 --- /dev/null
 +++ b/drivers/input/lirc/lirc_imon.c
-@@ -0,0 +1,2047 @@
+@@ -0,0 +1,2043 @@
 +/*
 + *   lirc_imon.c:  LIRC/VFD/LCD driver for SoundGraph iMON IR/VFD/LCD
 + *		   including the iMON PAD model
@@ -3093,7 +3093,7 @@ index 0000000..3de77ea
 +	struct mutex lock;		/* to lock this object */
 +	wait_queue_head_t remove_ok;	/* For unexpected USB disconnects */
 +
-+	int display_proto_6p;		/* display requires 6th packet */
++	int vfd_proto_6p;		/* some VFD require a 6th packet */
 +	int ir_onboard_decode;		/* IR signals decoded onboard */
 +
 +	struct lirc_driver *driver;
@@ -3152,8 +3152,8 @@ index 0000000..3de77ea
 +};
 +
 +enum {
-+	IMON_IR_PROTOCOL_IMON  = 0,
-+	IMON_IR_PROTOCOL_MCE   = 1,
++	IMON_IR_PROTOCOL_IMON = 0,
++	IMON_IR_PROTOCOL_MCE  = 1,
 +};
 +/*
 + * USB Device ID for iMON USB Control Boards
@@ -3233,7 +3233,7 @@ index 0000000..3de77ea
 +};
 +
 +/* Some iMON VFD models requires a 6th packet for VFD writes */
-+static struct usb_device_id display_proto_6p_list[] = {
++static struct usb_device_id vfd_proto_6p_list[] = {
 +	{ USB_DEVICE(0x15c2, 0xffda) },
 +	{ USB_DEVICE(0x15c2, 0xffdc) },
 +	{ USB_DEVICE(0x15c2, 0x0036) },
@@ -3366,7 +3366,7 @@ index 0000000..3de77ea
 +module_param(display_type, int, S_IRUGO);
 +MODULE_PARM_DESC(display_type, "Type of attached display. 0=autodetect, "
 +		 "1=vfd, 2=lcd, 3=vga, 4=none (default: autodetect)");
-+module_param(ir_protocol, int, S_IRUGO);
++module_param(ir_protocol, int, S_IRUGO | S_IWUSR);
 +MODULE_PARM_DESC(ir_protocol, "Which IR protocol to use. 0=native iMON, "
 +		 "1=Windows Media Center Ed. (RC-6) (default: native iMON)");
 +
@@ -3687,10 +3687,9 @@ index 0000000..3de77ea
 +	int seq;
 +	int retval = 0;
 +	struct imon_context *context;
-+	const unsigned char display_packet6[] = {
++	const unsigned char vfd_packet6[] = {
 +		0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF };
 +
-+
 +	context = (struct imon_context *)file->private_data;
 +	if (!context) {
 +		err("%s: no context for device", __func__);
@@ -3742,9 +3741,9 @@ index 0000000..3de77ea
 +
 +	} while (offset < 35);
 +
-+	if (context->display_proto_6p) {
++	if (context->vfd_proto_6p) {
 +		/* Send packet #6 */
-+		memcpy(context->usb_tx_buf, display_packet6, 7);
++		memcpy(context->usb_tx_buf, &vfd_packet6, sizeof(vfd_packet6));
 +		context->usb_tx_buf[7] = (unsigned char) seq;
 +		retval = send_packet(context);
 +		if (retval)
@@ -4123,9 +4122,9 @@ index 0000000..3de77ea
 +		ts_input = 1;
 +
 +	/* send mouse events through input subsystem in mouse mode */
-+	} else if ((context->pad_mouse || !context->ir_isopen) && !ts_input) {
++	} else if (context->pad_mouse || !context->ir_isopen) {
 +		/* newer iMON device PAD or mouse button */
-+		if (!context->ffdc_dev && (buf[0] & 0x01)) {
++		if (!context->ffdc_dev && (buf[0] & 0x01) && len == 5) {
 +			mouse_input = 1;
 +			rel_x = buf[2];
 +			rel_y = buf[3];
@@ -4151,8 +4150,7 @@ index 0000000..3de77ea
 +			mouse_input = 1;
 +			buf[1] = 0x02;
 +		/* ch+/- buttons, which we use for an emulated scroll wheel */
-+		} else if (!memcmp(buf, ch_up, 4) ||
-+			   !memcmp(buf, ch_down, 4))
++		} else if (!memcmp(buf, ch_up, 4) || !memcmp(buf, ch_down, 4))
 +			mouse_input = 1;
 +		else
 +			mouse_input = 0;
@@ -4487,7 +4485,7 @@ index 0000000..3de77ea
 +	int display_ep_found = 0;
 +	int ir_ep_found = 0;
 +	int alloc_status = 0;
-+	int display_proto_6p = 0;
++	int vfd_proto_6p = 0;
 +	int ir_onboard_decode = 0;
 +	int has_touchscreen = 0;
 +	int buf_chunk_size = BUF_CHUNK_SIZE;
@@ -4572,7 +4570,7 @@ index 0000000..3de77ea
 +		if (usb_match_id(interface, ctl_ep_device_list)) {
 +			tx_control = 1;
 +			display_ep_found = 1;
-+			dprintk("%s: LCD device uses control endpoint, not "
++			dprintk("%s: device uses control endpoint, not "
 +				"interface OUT endpoint\n", __func__);
 +		}
 +	}
@@ -4585,7 +4583,6 @@ index 0000000..3de77ea
 +	if ((display_type == IMON_DISPLAY_TYPE_AUTO &&
 +	     usb_match_id(interface, ir_only_list)) ||
 +	    display_type == IMON_DISPLAY_TYPE_NONE) {
-+		tx_control = 0;
 +		display_ep_found = 0;
 +		dprintk("%s: device has no display\n", __func__);
 +	}
@@ -4597,7 +4594,6 @@ index 0000000..3de77ea
 +	if ((display_type == IMON_DISPLAY_TYPE_AUTO &&
 +	     usb_match_id(interface, imon_touchscreen_list)) ||
 +	    display_type == IMON_DISPLAY_TYPE_VGA) {
-+		tx_control = 0;
 +		display_ep_found = 0;
 +		has_touchscreen = 1;
 +		dprintk("%s: iMON Touch device found\n", __func__);
@@ -4619,11 +4615,11 @@ index 0000000..3de77ea
 +
 +	/* Determine if display requires 6 packets */
 +	if (display_ep_found) {
-+		if (usb_match_id(interface, display_proto_6p_list))
-+			display_proto_6p = 1;
++		if (usb_match_id(interface, vfd_proto_6p_list))
++			vfd_proto_6p = 1;
 +
-+		dprintk("%s: display_proto_6p: %d\n",
-+			__func__, display_proto_6p);
++		dprintk("%s: vfd_proto_6p: %d\n",
++			__func__, vfd_proto_6p);
 +	}
 +
 +	if (ifnum == 0) {
@@ -4665,7 +4661,7 @@ index 0000000..3de77ea
 +		}
 +
 +		mutex_init(&context->lock);
-+		context->display_proto_6p = display_proto_6p;
++		context->vfd_proto_6p = vfd_proto_6p;
 +		context->ir_onboard_decode = ir_onboard_decode;
 +
 +		strcpy(driver->name, MOD_NAME);




More information about the fedora-extras-commits mailing list