]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'master' into upstream
authorJiri Kosina <jkosina@suse.cz>
Fri, 24 Sep 2010 12:03:37 +0000 (14:03 +0200)
committerJiri Kosina <jkosina@suse.cz>
Fri, 24 Sep 2010 12:03:37 +0000 (14:03 +0200)
drivers/hid/Kconfig
drivers/hid/hid-a4tech.c
drivers/hid/hid-core.c
drivers/hid/hid-debug.c
drivers/hid/hid-ids.h
drivers/hid/hid-sony.c
drivers/hid/usbhid/hid-core.c

index 6369ba7f96f8c0cb2bce6ae0301fd2962027f914..2072e0138e9fd2ef1c0322a229ef6622a45b2aa3 100644 (file)
@@ -56,20 +56,20 @@ menu "Special HID drivers"
        depends on HID
 
 config HID_3M_PCT
-       tristate "3M PCT"
+       tristate "3M PCT touchscreen"
        depends on USB_HID
        ---help---
        Support for 3M PCT touch screens.
 
 config HID_A4TECH
-       tristate "A4 tech" if EMBEDDED
+       tristate "A4 tech mice" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for A4 tech X5 and WOP-35 / Trust 450L mice.
 
 config HID_ACRUX_FF
-       tristate "ACRUX force feedback support"
+       tristate "ACRUX force feedback"
        depends on USB_HID
        select INPUT_FF_MEMLESS
        ---help---
@@ -77,7 +77,7 @@ config HID_ACRUX_FF
        game controllers.
 
 config HID_APPLE
-       tristate "Apple" if EMBEDDED
+       tristate "Apple {i,Power,Mac}Books" if EMBEDDED
        depends on (USB_HID || BT_HIDP)
        default !EMBEDDED
        ---help---
@@ -88,7 +88,7 @@ config HID_APPLE
        MacBooks, MacBook Pros and Apple Aluminum.
 
 config HID_BELKIN
-       tristate "Belkin" if EMBEDDED
+       tristate "Belkin Flip KVM and Wireless keyboard" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
@@ -101,14 +101,14 @@ config HID_CANDO
        Support for Cando dual touch panel.
 
 config HID_CHERRY
-       tristate "Cherry" if EMBEDDED
+       tristate "Cherry Cymotion keyboard" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for Cherry Cymotion keyboard.
 
 config HID_CHICONY
-       tristate "Chicony" if EMBEDDED
+       tristate "Chicony Tactical pad" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
@@ -130,20 +130,20 @@ config HID_PRODIKEYS
          and some additional multimedia keys.
 
 config HID_CYPRESS
-       tristate "Cypress" if EMBEDDED
+       tristate "Cypress mouse and barcode readers" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for cypress mouse and barcode readers.
 
 config HID_DRAGONRISE
-       tristate "DragonRise Inc. support"
+       tristate "DragonRise Inc. game controller"
        depends on USB_HID
        ---help---
        Say Y here if you have DragonRise Inc.game controllers.
 
 config DRAGONRISE_FF
-       bool "DragonRise Inc. force feedback support"
+       bool "DragonRise Inc. force feedback"
        depends on HID_DRAGONRISE
        select INPUT_FF_MEMLESS
        ---help---
@@ -157,46 +157,46 @@ config HID_EGALAX
        Support for the eGalax dual-touch panel.
 
 config HID_ELECOM
-       tristate "ELECOM"
+       tristate "ELECOM BM084 bluetooth mouse"
        depends on BT_HIDP
        ---help---
        Support for the ELECOM BM084 (bluetooth mouse).
 
 config HID_EZKEY
-       tristate "Ezkey" if EMBEDDED
+       tristate "Ezkey BTC 8193 keyboard" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for Ezkey BTC 8193 keyboard.
 
 config HID_KYE
-       tristate "Kye" if EMBEDDED
+       tristate "Kye/Genius Ergo Mouse" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for Kye/Genius Ergo Mouse.
 
 config HID_GYRATION
-       tristate "Gyration"
+       tristate "Gyration remote control"
        depends on USB_HID
        ---help---
        Support for Gyration remote control.
 
 config HID_TWINHAN
-       tristate "Twinhan"
+       tristate "Twinhan IR remote control"
        depends on USB_HID
        ---help---
        Support for Twinhan IR remote control.
 
 config HID_KENSINGTON
-       tristate "Kensington" if EMBEDDED
+       tristate "Kensington Slimblade Trackball" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for Kensington Slimblade Trackball.
 
 config HID_LOGITECH
-       tristate "Logitech" if EMBEDDED
+       tristate "Logitech devices" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
@@ -245,39 +245,39 @@ config HID_MAGICMOUSE
        Apple Wireless "Magic" Mouse.
 
 config HID_MICROSOFT
-       tristate "Microsoft" if EMBEDDED
+       tristate "Microsoft non-fully HID-compliant devices" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for Microsoft devices that are not fully compliant with HID standard.
 
 config HID_MOSART
-       tristate "MosArt"
+       tristate "MosArt dual-touch panels"
        depends on USB_HID
        ---help---
        Support for MosArt dual-touch panels.
 
 config HID_MONTEREY
-       tristate "Monterey" if EMBEDDED
+       tristate "Monterey Genius KB29E keyboard" if EMBEDDED
        depends on USB_HID
        default !EMBEDDED
        ---help---
        Support for Monterey Genius KB29E.
 
 config HID_NTRIG
-       tristate "NTrig"
+       tristate "N-Trig touch screen"
        depends on USB_HID
        ---help---
        Support for N-Trig touch screen.
 
 config HID_ORTEK
-       tristate "Ortek"
+       tristate "Ortek WKB-2000 wireless keyboard and mouse trackpad"
        depends on USB_HID
        ---help---
        Support for Ortek WKB-2000 wireless keyboard + mouse trackpad.
 
 config HID_PANTHERLORD
-       tristate "Pantherlord support"
+       tristate "Pantherlord/GreenAsia game controller"
        depends on USB_HID
        ---help---
          Say Y here if you have a PantherLord/GreenAsia based game controller
@@ -292,7 +292,7 @@ config PANTHERLORD_FF
          or adapter and want to enable force feedback support for it.
 
 config HID_PETALYNX
-       tristate "Petalynx"
+       tristate "Petalynx Maxter remote control"
        depends on USB_HID
        ---help---
        Support for Petalynx Maxter remote control.
@@ -356,7 +356,7 @@ config HID_PICOLCD_LEDS
          Provide access to PicoLCD's GPO pins via leds class.
 
 config HID_QUANTA
-       tristate "Quanta Optical Touch"
+       tristate "Quanta Optical Touch panels"
        depends on USB_HID
        ---help---
        Support for Quanta Optical Touch dual-touch panels.
@@ -377,31 +377,31 @@ config HID_ROCCAT_KONE
        Support for Roccat Kone mouse.
 
 config HID_SAMSUNG
-       tristate "Samsung"
+       tristate "Samsung InfraRed remote control or keyboards"
        depends on USB_HID
        ---help---
        Support for Samsung InfraRed remote control or keyboards.
 
 config HID_SONY
-       tristate "Sony"
+       tristate "Sony PS3 controller"
        depends on USB_HID
        ---help---
        Support for Sony PS3 controller.
 
 config HID_STANTUM
-       tristate "Stantum"
+       tristate "Stantum multitouch panel"
        depends on USB_HID
        ---help---
        Support for Stantum multitouch panel.
 
 config HID_SUNPLUS
-       tristate "Sunplus"
+       tristate "Sunplus wireless desktop"
        depends on USB_HID
        ---help---
        Support for Sunplus wireless desktop.
 
 config HID_GREENASIA
-       tristate "GreenAsia (Product ID 0x12) support"
+       tristate "GreenAsia (Product ID 0x12) game controller support"
        depends on USB_HID
        ---help---
          Say Y here if you have a GreenAsia (Product ID 0x12) based game
index 3a2b223c1da4a23e3fb346116cba22ed5278d92a..1666c1684e79d922858ff8c6c4e6f530e50446f5 100644 (file)
@@ -133,6 +133,8 @@ static const struct hid_device_id a4_devices[] = {
                .driver_data = A4_2WHEEL_MOUSE_HACK_7 },
        { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D),
                .driver_data = A4_2WHEEL_MOUSE_HACK_B8 },
+       { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649),
+               .driver_data = A4_2WHEEL_MOUSE_HACK_B8 },
        { }
 };
 MODULE_DEVICE_TABLE(hid, a4_devices);
index 3f7292486024b8feace0b72775c03a2ae122e8fc..e8c446de8ed0d27765a843050eb23c21cccf26dd 100644 (file)
@@ -1241,6 +1241,7 @@ static const struct hid_device_id hid_blacklist[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_3M, USB_DEVICE_ID_3M2256) },
        { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU) },
        { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) },
 #if defined(CONFIG_HID_ACRUX_FF) || defined(CONFIG_HID_ACRUX_FF_MODULE)
        { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) },
 #endif
index 850d02a7a92539056d85b0b18eba88f8cb73cb38..adff4efdc16926e0b5a2f2015eb5b544c3cd8dab 100644 (file)
@@ -570,6 +570,8 @@ void hid_debug_event(struct hid_device *hdev, char *buf)
                                buf[i];
                list->tail = (list->tail + i) % HID_DEBUG_BUFSIZE;
         }
+
+       wake_up_interruptible(&hdev->debug_wait);
 }
 EXPORT_SYMBOL_GPL(hid_debug_event);
 
index 765a4f53eb5cb663fd319d0a71386ae1a9ee0fa5..778dd4230ae9146e39d81264adf1093a41320371 100644 (file)
@@ -25,6 +25,7 @@
 #define USB_VENDOR_ID_A4TECH           0x09da
 #define USB_DEVICE_ID_A4TECH_WCP32PU   0x0006
 #define USB_DEVICE_ID_A4TECH_X5_005D   0x000a
+#define USB_DEVICE_ID_A4TECH_RP_649    0x001a
 
 #define USB_VENDOR_ID_AASHIMA          0x06d6
 #define USB_DEVICE_ID_AASHIMA_GAMEPAD  0x0025
index 402d5574b5747a6e39b2b6c3bc3f1ec29e35a9f9..d61f26840afe104a6034a4d10e6a20a2ca816458 100644 (file)
@@ -24,7 +24,9 @@
 
 #include "hid-ids.h"
 
-#define VAIO_RDESC_CONSTANT 0x0001
+#define VAIO_RDESC_CONSTANT     (1 << 0)
+#define SIXAXIS_CONTROLLER_USB  (1 << 1)
+#define SIXAXIS_CONTROLLER_BT   (1 << 2)
 
 struct sony_sc {
        unsigned long quirks;
@@ -49,7 +51,7 @@ static void sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
  * to "operational".  Without this, the ps3 controller will not report any
  * events.
  */
-static int sony_set_operational_usb(struct hid_device *hdev)
+static int sixaxis_set_operational_usb(struct hid_device *hdev)
 {
        struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
        struct usb_device *dev = interface_to_usbdev(intf);
@@ -74,7 +76,7 @@ static int sony_set_operational_usb(struct hid_device *hdev)
        return ret;
 }
 
-static int sony_set_operational_bt(struct hid_device *hdev)
+static int sixaxis_set_operational_bt(struct hid_device *hdev)
 {
        unsigned char buf[] = { 0xf4,  0x42, 0x03, 0x00, 0x00 };
        return hdev->hid_output_raw_report(hdev, buf, sizeof(buf), HID_FEATURE_REPORT);
@@ -108,16 +110,12 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
                goto err_free;
        }
 
-       switch (hdev->bus) {
-       case BUS_USB:
-               ret = sony_set_operational_usb(hdev);
-               break;
-       case BUS_BLUETOOTH:
-               ret = sony_set_operational_bt(hdev);
-               break;
-       default:
+       if (sc->quirks & SIXAXIS_CONTROLLER_USB)
+               ret = sixaxis_set_operational_usb(hdev);
+       else if (sc->quirks & SIXAXIS_CONTROLLER_BT)
+               ret = sixaxis_set_operational_bt(hdev);
+       else
                ret = 0;
-       }
 
        if (ret < 0)
                goto err_stop;
@@ -137,8 +135,10 @@ static void sony_remove(struct hid_device *hdev)
 }
 
 static const struct hid_device_id sony_devices[] = {
-       { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
-       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER),
+               .driver_data = SIXAXIS_CONTROLLER_USB },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER),
+               .driver_data = SIXAXIS_CONTROLLER_BT },
        { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE),
                .driver_data = VAIO_RDESC_CONSTANT },
        { }
index 599041a7f670a9f105e00da3272d79642aefb78c..c90fbbdbffa2abc1f184788f870ce48a650d0c1e 100644 (file)
@@ -810,6 +810,7 @@ static int usbhid_output_raw_report(struct hid_device *hid, __u8 *buf, size_t co
        if (usbhid->urbout) {
                int actual_length;
                int skipped_report_id = 0;
+
                if (buf[0] == 0x0) {
                        /* Don't send the Report ID */
                        buf++;