rpms/kernel/devel linux-2.6.29-lirc.patch,1.9,1.10
Jarod Wilson
jwilson at fedoraproject.org
Thu Jun 18 04:20:57 UTC 2009
Author: jwilson
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14392
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/devel/linux-2.6.29-lirc.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- linux-2.6.29-lirc.patch 17 Jun 2009 18:03:50 -0000 1.9
+++ linux-2.6.29-lirc.patch 18 Jun 2009 04:20:57 -0000 1.10
@@ -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