From: Jiri Kosina Date: Sat, 23 Oct 2010 20:49:32 +0000 (+0200) Subject: Merge branch 'uc-logic' into for-linus X-Git-Tag: 2.1b_release~6492^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8b66a16f25f819bb1f132f075c5c01a288776cf8;p=platform%2Fkernel%2Fkernel-mfld-blackbay.git Merge branch 'uc-logic' into for-linus Conflicts: drivers/hid/hid-ids.h drivers/hid/hid-lg.c drivers/hid/usbhid/hid-quirks.c --- 8b66a16f25f819bb1f132f075c5c01a288776cf8 diff --cc drivers/hid/Kconfig index 68a7e86,34402bb..2685bee --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@@ -176,8 -176,14 +176,14 @@@ config HID_KY ---help--- Support for Kye/Genius Ergo Mouse. + config HID_UCLOGIC + tristate "UC-Logic" + depends on USB_HID + ---help--- + Support for UC-Logic tablets. + config HID_GYRATION - tristate "Gyration" + tristate "Gyration remote control" depends on USB_HID ---help--- Support for Gyration remote control. diff --cc drivers/hid/hid-ids.h index ae8f744,b887e73..afbd820 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@@ -527,8 -505,9 +527,10 @@@ #define USB_VENDOR_ID_UCLOGIC 0x5543 #define USB_DEVICE_ID_UCLOGIC_TABLET_PF1209 0x0042 - #define USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U 0x0003 +#define USB_DEVICE_ID_UCLOGIC_TABLET_KNA5 0x6001 + #define USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U 0x0003 + #define USB_DEVICE_ID_UCLOGIC_TABLET_WP5540U 0x0004 + #define USB_DEVICE_ID_UCLOGIC_TABLET_WP8060U 0x0005 #define USB_VENDOR_ID_VERNIER 0x08f7 #define USB_DEVICE_ID_VERNIER_LABPRO 0x0001 diff --cc drivers/hid/hid-lg.c index 9e92c27,68c0b68..6d3cd7e --- a/drivers/hid/hid-lg.c +++ b/drivers/hid/hid-lg.c @@@ -65,17 -60,7 +65,17 @@@ static __u8 *lg_report_fixup(struct hid "report descriptor\n"); rdesc[33] = rdesc[50] = 0x02; } - + if ((quirks & LG_FF4) && rsize >= 101 && + rdesc[41] == 0x95 && rdesc[42] == 0x0B && + rdesc[47] == 0x05 && rdesc[48] == 0x09) { + dev_info(&hdev->dev, "fixing up Logitech Speed Force Wireless " + "button descriptor\n"); + rdesc[41] = 0x05; + rdesc[42] = 0x09; + rdesc[47] = 0x95; + rdesc[48] = 0x0B; + } + return rdesc; } #define lg_map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, \ diff --cc drivers/hid/hid-sony.c index 0c164b3,9fa0349..677bb3d --- a/drivers/hid/hid-sony.c +++ b/drivers/hid/hid-sony.c @@@ -44,27 -42,9 +44,28 @@@ static __u8 *sony_report_fixup(struct h "descriptor\n"); rdesc[55] = 0x06; } + return rdesc; } +static int sixaxis_usb_output_raw_report(struct hid_device *hid, __u8 *buf, + size_t count, unsigned char report_type) +{ + struct usb_interface *intf = to_usb_interface(hid->dev.parent); + struct usb_device *dev = interface_to_usbdev(intf); + struct usb_host_interface *interface = intf->cur_altsetting; + int report_id = buf[0]; + int ret; + + ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + HID_REQ_SET_REPORT, + USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, + ((report_type + 1) << 8) | report_id, + interface->desc.bInterfaceNumber, buf, count, + USB_CTRL_SET_TIMEOUT); + + return ret; +} + /* * Sending HID_REQ_GET_REPORT changes the operation mode of the ps3 controller * to "operational". Without this, the ps3 controller will not report any diff --cc drivers/hid/usbhid/hid-quirks.c index 836a874,162aa4b..5457135 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c @@@ -70,8 -68,8 +70,10 @@@ static const struct hid_blacklist { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, { USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD, HID_QUIRK_NOGET }, { USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_PF1209, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_KNA5, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_WP5540U, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_WP8060U, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT | HID_QUIRK_SKIP_OUTPUT_REPORTS }, { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },