Merge branch 'uc-logic' into for-linus
Jiri Kosina [Sat, 23 Oct 2010 20:49:32 +0000 (22:49 +0200)]
Conflicts:
drivers/hid/hid-ids.h
drivers/hid/hid-lg.c
drivers/hid/usbhid/hid-quirks.c

1  2 
drivers/hid/Kconfig
drivers/hid/Makefile
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-input.c
drivers/hid/hid-lg.c
drivers/hid/hid-sony.c
drivers/hid/usbhid/hid-quirks.c
include/linux/hid.h

@@@ -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.
Simple merge
Simple merge
  
  #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
Simple merge
@@@ -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, \
@@@ -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
@@@ -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 },
  
Simple merge