]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Merge branches '3m', 'egalax', 'logitech', 'magicmouse', 'ntrig' and 'roccat' into...
authorJiri Kosina <jkosina@suse.cz>
Sat, 23 Oct 2010 20:47:38 +0000 (22:47 +0200)
committerJiri Kosina <jkosina@suse.cz>
Sat, 23 Oct 2010 20:47:38 +0000 (22:47 +0200)
1  2  3  4  5  6  7 
drivers/hid/Kconfig
drivers/hid/Makefile
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-input.c
drivers/hid/usbhid/hid-core.c
drivers/hid/usbhid/hid-quirks.c

diff --combined drivers/hid/Kconfig
index 2072e0138e9fd2ef1c0322a229ef6622a45b2aa3,6369ba7f96f8c0cb2bce6ae0301fd2962027f914,6369ba7f96f8c0cb2bce6ae0301fd2962027f914,3892ff5fa11b8038c8317f375eec5f3e397c19f7,6369ba7f96f8c0cb2bce6ae0301fd2962027f914,6369ba7f96f8c0cb2bce6ae0301fd2962027f914,b07440a172b5dae8d7ca62d63de66f96aa5a2c6b..68a7e862068ea90936c56571cd317a242c504690
@@@@@@@@ -56,20 -56,20 -56,20 -56,20 -56,20 -56,20 -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---
        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---
        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 -101,14 -101,14 -101,14 -101,14 -101,14 +101,14 @@@@@@@@ config HID_CAND
        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 -130,20 -130,20 -130,20 -130,20 -130,20 +130,20 @@@@@@@@ config HID_PRODIKEY
          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 -157,46 -157,46 -157,46 -157,46 -157,46 +157,46 @@@@@@@@ config HID_EGALA
        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---
@@@@@@@@ -220,12 -220,12 -220,12 -220,12 -220,12 -220,12 -220,12 +220,12 @@@@@@@@ config LOGITECH_F
          force feedback.
       
       config LOGIRUMBLEPAD2_FF
--- --- bool "Logitech Rumblepad 2 force feedback support"
+++ +++ bool "Logitech RumblePad/Rumblepad 2 force feedback support"
        depends on HID_LOGITECH
        select INPUT_FF_MEMLESS
        help
          Say Y here if you want to enable force feedback support for Logitech
--- ---   Rumblepad 2 devices.
+++ +++   RumblePad and Rumblepad 2 devices.
       
       config LOGIG940_FF
        bool "Logitech Flight System G940 force feedback support"
          Say Y here if you want to enable force feedback support for Logitech
          Flight System G940 devices.
       
+++ +++config LOGIWII_FF
+++ +++ bool "Logitech Speed Force Wireless force feedback support"
+++ +++ depends on HID_LOGITECH
+++ +++ select INPUT_FF_MEMLESS
+++ +++ help
+++ +++   Say Y here if you want to enable force feedback support for Logitech
+++ +++   Speed Force Wireless (Wii) devices.
+++ +++
       config HID_MAGICMOUSE
        tristate "Apple MagicMouse multi-touch support"
        depends on BT_HIDP
        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 -292,7 -300,7 -292,7 -292,7 -292,7 +300,7 @@@@@@@@ config PANTHERLORD_F
          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 -356,7 -364,7 -356,7 -356,7 -356,7 +364,7 @@@@@@@@ config HID_PICOLCD_LED
          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.
@@@@@@@@ -376,32 -376,32 -376,32 -384,32 -376,32 -376,32 -376,39 +384,39 @@@@@@@@ config HID_ROCCAT_KON
        ---help---
        Support for Roccat Kone mouse.
       
++++++ config HID_ROCCAT_PYRA
++++++  tristate "Roccat Pyra mouse support"
++++++  depends on USB_HID
++++++  select HID_ROCCAT
++++++  ---help---
++++++  Support for Roccat Pyra 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
diff --combined drivers/hid/Makefile
index 46f037f3df80ae4eefc30b64df583ff48b894534,46f037f3df80ae4eefc30b64df583ff48b894534,46f037f3df80ae4eefc30b64df583ff48b894534,d46a455eefc1cfa9e3bb79fc99fe3e387c85aa6b,46f037f3df80ae4eefc30b64df583ff48b894534,46f037f3df80ae4eefc30b64df583ff48b894534,d224fa342187c8f74789b500e0119066467be70f..ad74abcc73d5cb40f9befc94868cb4c276fe8b4c
@@@@@@@@ -21,6 -21,6 -21,6 -21,9 -21,6 -21,6 -21,6 +21,9 @@@@@@@@ endi
       ifdef CONFIG_LOGIG940_FF
        hid-logitech-objs       += hid-lg3ff.o
       endif
+++ +++ifdef CONFIG_LOGIWII_FF
+++ +++ hid-logitech-objs       += hid-lg4ff.o
+++ +++endif
       
       obj-$(CONFIG_HID_3M_PCT) += hid-3m-pct.o
       obj-$(CONFIG_HID_A4TECH) += hid-a4tech.o
@@@@@@@@ -52,6 -52,6 -52,6 -55,6 -52,6 -52,6 -52,7 +55,7 @@@@@@@@ obj-$(CONFIG_HID_PETALYNX)    += hid-petal
       obj-$(CONFIG_HID_PICOLCD)        += hid-picolcd.o
       obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o
       obj-$(CONFIG_HID_ROCCAT_KONE)    += hid-roccat-kone.o
++++++ obj-$(CONFIG_HID_ROCCAT_PYRA)    += hid-roccat-pyra.o
       obj-$(CONFIG_HID_SAMSUNG)        += hid-samsung.o
       obj-$(CONFIG_HID_SMARTJOYPLUS)   += hid-sjoy.o
       obj-$(CONFIG_HID_SONY)           += hid-sony.o
diff --combined drivers/hid/hid-core.c
index 5ac2be978c922995910c2b9f4185be5eabd7d03a,3f7292486024b8feace0b72775c03a2ae122e8fc,3f7292486024b8feace0b72775c03a2ae122e8fc,0120557022bf4312a3398de6d6d1afdb104c1bf7,d2f9c4aa4b52d356e326e90978ecd6a5b5bb476e,0c52899be9643d85af5c7ac6be8c87bc67d6e6ce,18608b89e76bda21d13f3966d9dcf1209ee18062..cb7dc99d8b290d6526520330500c48c99672dc1f
@@@@@@@@ -1241,7 -1241,6 -1241,6 -1241,6 -1241,6 -1241,6 -1241,6 +1241,7 @@@@@@@@ static const struct hid_device_id hid_b
        { 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
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4) },
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) },
        { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
++++ ++ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD) },
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI) },
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_ISO) },
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER_ANSI) },
        { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) },
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
        { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
    +++ { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_T91MT) },
    +++ { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO) },
        { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) },
        { HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE) },
    +++ { HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
        { HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
        { HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
 ++++++ { HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) },
        { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
        { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
        { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL) },
+++ +++ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
+++ +++ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACETRAVELLER) },
        { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACENAVIGATOR) },
        { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
        { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN) },
        { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
++++++  { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRED) },
        { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
        { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) },
        { 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_VAIO_VGX_MOUSE) },
        { HID_USB_DEVICE(USB_VENDOR_ID_STANTUM, USB_DEVICE_ID_MTP) },
 ++++++ { HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM, USB_DEVICE_ID_MTP_STM) },
 ++++++ { HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX, USB_DEVICE_ID_MTP_SITRONIX) },
        { HID_USB_DEVICE(USB_VENDOR_ID_SUNPLUS, USB_DEVICE_ID_SUNPLUS_WDESKTOP) },
        { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb300) },
        { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) },
@@@@@@@@ -1585,6 -1581,6 -1581,6 -1583,6 -1579,7 -1578,7 -1579,7 +1589,6 @@@@@@@@ static const struct hid_device_id hid_i
        { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_24) },
        { HID_USB_DEVICE(USB_VENDOR_ID_AIRCABLE, USB_DEVICE_ID_AIRCABLE1) },
        { HID_USB_DEVICE(USB_VENDOR_ID_ALCOR, USB_DEVICE_ID_ALCOR_USBRS232) },
    --- { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_T91MT)},
        { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_LCM)},
        { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_LCM2)},
        { HID_USB_DEVICE(USB_VENDOR_ID_AVERMEDIA, USB_DEVICE_ID_AVER_FM_MR800) },
        { HID_USB_DEVICE(USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1006) },
        { HID_USB_DEVICE(USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1007) },
        { HID_USB_DEVICE(USB_VENDOR_ID_IMATION, USB_DEVICE_ID_DISC_STAKKA) },
 ++++++ { HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_JESS_YUREX) },
        { HID_USB_DEVICE(USB_VENDOR_ID_KBGEAR, USB_DEVICE_ID_KBGEAR_JAMSTUDIO) },
        { HID_USB_DEVICE(USB_VENDOR_ID_KWORLD, USB_DEVICE_ID_KWORLD_RADIO_FM700) },
        { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_GPEN_560) },
diff --combined drivers/hid/hid-ids.h
index 5247f5bdb49b9d16cfff337538328b6e7e37a160,765a4f53eb5cb663fd319d0a71386ae1a9ee0fa5,765a4f53eb5cb663fd319d0a71386ae1a9ee0fa5,79f0304aee8a6a3ebaf3d993b661957a3b2397fd,5ad4ea02157f41a34149ebec2d459ab79b091b42,85c6d13c9ffa9369fca613eda828133b2b69a3e2,5787b1a1339f7c3ca15b91ce4e164454f3605821..ae8f74431d92376c4d92aba27545747e83a74c54
       #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
       #define USB_VENDOR_ID_APPLE              0x05ac
       #define USB_DEVICE_ID_APPLE_MIGHTYMOUSE  0x0304
       #define USB_DEVICE_ID_APPLE_MAGICMOUSE   0x030d
++++ ++#define USB_DEVICE_ID_APPLE_MAGICTRACKPAD        0x030e
       #define USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI        0x020e
       #define USB_DEVICE_ID_APPLE_FOUNTAIN_ISO 0x020f
       #define USB_DEVICE_ID_APPLE_GEYSER_ANSI  0x0214
       
       #define USB_VENDOR_ID_ASUS               0x0486
       #define USB_DEVICE_ID_ASUS_T91MT 0x0185
    +++#define USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO     0x0186
       
       #define USB_VENDOR_ID_ASUSTEK            0x0b05
       #define USB_DEVICE_ID_ASUSTEK_LCM        0x1726
       
       #define USB_VENDOR_ID_BTC                0x046e
       #define USB_DEVICE_ID_BTC_EMPREX_REMOTE  0x5578
    +++#define USB_DEVICE_ID_BTC_EMPREX_REMOTE_2        0x5577
       
       #define USB_VENDOR_ID_CANDO              0x2087
       #define USB_DEVICE_ID_CANDO_MULTI_TOUCH  0x0a01
       #define USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6 0x0b03
 ++++++#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6 0x0f01
       
       #define USB_VENDOR_ID_CH         0x068e
       #define USB_DEVICE_ID_CH_PRO_PEDALS      0x00f2
       #define USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE       0x0051
       #define USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE 0x00ff
       #define USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK     0x00d3
 ++++++#define USB_DEVICE_ID_CH_AXIS_295        0x001c
       
       #define USB_VENDOR_ID_CHERRY             0x046a
       #define USB_DEVICE_ID_CHERRY_CYMOTION    0x0023
       
       #define USB_VENDOR_ID_CHICONY            0x04f2
       #define USB_DEVICE_ID_CHICONY_TACTICAL_PAD       0x0418
    +++#define USB_DEVICE_ID_CHICONY_MULTI_TOUCH        0xb19d
       
       #define USB_VENDOR_ID_CIDC               0x1677
       
       #define USB_VENDOR_ID_IMATION            0x0718
       #define USB_DEVICE_ID_DISC_STAKKA        0xd000
       
 ++++++#define USB_VENDOR_ID_JESS               0x0c45
 ++++++#define USB_DEVICE_ID_JESS_YUREX 0x1010
 ++++++
       #define USB_VENDOR_ID_KBGEAR             0x084e
       #define USB_DEVICE_ID_KBGEAR_JAMSTUDIO   0x1001
       
       #define USB_DEVICE_ID_LOGITECH_RECEIVER  0xc101
       #define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST  0xc110
       #define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f
+++ +++#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD    0xc20a
       #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD 0xc211
       #define USB_DEVICE_ID_LOGITECH_EXTREME_3D        0xc215
       #define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2        0xc218
       #define USB_DEVICE_ID_LOGITECH_WINGMAN_FFG       0xc293
       #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL        0xc295
       #define USB_DEVICE_ID_LOGITECH_G25_WHEEL 0xc299
+++ +++#define USB_DEVICE_ID_LOGITECH_WII_WHEEL 0xc29c
       #define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a
       #define USB_DEVICE_ID_S510_RECEIVER      0xc50c
       #define USB_DEVICE_ID_S510_RECEIVER_2    0xc517
       
       #define USB_VENDOR_ID_ROCCAT             0x1e7d
       #define USB_DEVICE_ID_ROCCAT_KONE        0x2ced
++++++ #define USB_DEVICE_ID_ROCCAT_PYRA_WIRED  0x2c24
++++++ #define USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS       0x2cf6
       
       #define USB_VENDOR_ID_SAITEK             0x06a3
       #define USB_DEVICE_ID_SAITEK_RUMBLEPAD   0xff17
       #define USB_VENDOR_ID_STANTUM            0x1f87
       #define USB_DEVICE_ID_MTP                0x0002
       
 ++++++#define USB_VENDOR_ID_STANTUM_STM                0x0483
 ++++++#define USB_DEVICE_ID_MTP_STM            0x3261
 ++++++
 ++++++#define USB_VENDOR_ID_STANTUM_SITRONIX           0x1403
 ++++++#define USB_DEVICE_ID_MTP_SITRONIX               0x5001
 ++++++
       #define USB_VENDOR_ID_SUN                0x0430
       #define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab
       
       
       #define USB_VENDOR_ID_TURBOX             0x062a
       #define USB_DEVICE_ID_TURBOX_KEYBOARD    0x0201
 ++++++#define USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART  0x7100
       
       #define USB_VENDOR_ID_TWINHAN            0x6253
       #define USB_DEVICE_ID_TWINHAN_IR_REMOTE  0x0100
       #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_VENDOR_ID_VERNIER            0x08f7
       #define USB_DEVICE_ID_VERNIER_LABPRO     0x0001
diff --combined drivers/hid/hid-input.c
index 8e733b6eae27587366c138187e59119b2b49ec35,b186f6d0febabd29a5f243f227475cbdaa2d9766,6c03dcc5760a277097bb17d866cc33aa17db484a,6c03dcc5760a277097bb17d866cc33aa17db484a,6c03dcc5760a277097bb17d866cc33aa17db484a,6c03dcc5760a277097bb17d866cc33aa17db484a,6c03dcc5760a277097bb17d866cc33aa17db484a..b9877a86eca784e9744f2b5a787b4a102b4a0eff
@@@@@@@@ -149,83 -149,6 -149,6 -149,6 -149,6 -149,6 -149,6 +149,83 @@@@@@@@ static int hidinput_setkeycode(struct i
       }
       
       
 ++++++/**
 ++++++ * hidinput_calc_abs_res - calculate an absolute axis resolution
 ++++++ * @field: the HID report field to calculate resolution for
 ++++++ * @code: axis code
 ++++++ *
 ++++++ * The formula is:
 ++++++ *                         (logical_maximum - logical_minimum)
 ++++++ * resolution = ----------------------------------------------------------
 ++++++ *              (physical_maximum - physical_minimum) * 10 ^ unit_exponent
 ++++++ *
 ++++++ * as seen in the HID specification v1.11 6.2.2.7 Global Items.
 ++++++ *
 ++++++ * Only exponent 1 length units are processed. Centimeters are converted to
 ++++++ * inches. Degrees are converted to radians.
 ++++++ */
 ++++++static __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
 ++++++{
 ++++++ __s32 unit_exponent = field->unit_exponent;
 ++++++ __s32 logical_extents = field->logical_maximum -
 ++++++                                 field->logical_minimum;
 ++++++ __s32 physical_extents = field->physical_maximum -
 ++++++                                 field->physical_minimum;
 ++++++ __s32 prev;
 ++++++
 ++++++ /* Check if the extents are sane */
 ++++++ if (logical_extents <= 0 || physical_extents <= 0)
 ++++++         return 0;
 ++++++
 ++++++ /*
 ++++++  * Verify and convert units.
 ++++++  * See HID specification v1.11 6.2.2.7 Global Items for unit decoding
 ++++++  */
 ++++++ if (code == ABS_X || code == ABS_Y || code == ABS_Z) {
 ++++++         if (field->unit == 0x11) {              /* If centimeters */
 ++++++                 /* Convert to inches */
 ++++++                 prev = logical_extents;
 ++++++                 logical_extents *= 254;
 ++++++                 if (logical_extents < prev)
 ++++++                         return 0;
 ++++++                 unit_exponent += 2;
 ++++++         } else if (field->unit != 0x13) {       /* If not inches */
 ++++++                 return 0;
 ++++++         }
 ++++++ } else if (code == ABS_RX || code == ABS_RY || code == ABS_RZ) {
 ++++++         if (field->unit == 0x14) {              /* If degrees */
 ++++++                 /* Convert to radians */
 ++++++                 prev = logical_extents;
 ++++++                 logical_extents *= 573;
 ++++++                 if (logical_extents < prev)
 ++++++                         return 0;
 ++++++                 unit_exponent += 1;
 ++++++         } else if (field->unit != 0x12) {       /* If not radians */
 ++++++                 return 0;
 ++++++         }
 ++++++ } else {
 ++++++         return 0;
 ++++++ }
 ++++++
 ++++++ /* Apply negative unit exponent */
 ++++++ for (; unit_exponent < 0; unit_exponent++) {
 ++++++         prev = logical_extents;
 ++++++         logical_extents *= 10;
 ++++++         if (logical_extents < prev)
 ++++++                 return 0;
 ++++++ }
 ++++++ /* Apply positive unit exponent */
 ++++++ for (; unit_exponent > 0; unit_exponent--) {
 ++++++         prev = physical_extents;
 ++++++         physical_extents *= 10;
 ++++++         if (physical_extents < prev)
 ++++++                 return 0;
 ++++++ }
 ++++++
 ++++++ /* Calculate resolution */
 ++++++ return logical_extents / physical_extents;
 ++++++}
 ++++++
       static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_field *field,
                                     struct hid_usage *usage)
       {
@@@@@@@@ -614,9 -537,6 -537,6 -537,6 -537,6 -537,6 -537,6 +614,9 @@@@@@@@ mapped
                        input_set_abs_params(input, usage->code, a, b, (b - a) >> 8, (b - a) >> 4);
                else    input_set_abs_params(input, usage->code, a, b, 0, 0);
       
 ++++++         input_abs_set_res(input, usage->code,
 ++++++                           hidinput_calc_abs_res(field, usage->code));
 ++++++
                /* use a larger default input buffer for MT devices */
                if (usage->code == ABS_MT_POSITION_X && input->hint_events_per_packet == 0)
                        input_set_events_per_packet(input, 60);
@@@@@@@@ -739,6 -659,9 -659,6 -659,6 -659,6 -659,6 -659,6 +739,9 @@@@@@@@ void hidinput_report_event(struct hid_d
       {
        struct hid_input *hidinput;
       
+ +++++ if (hid->quirks & HID_QUIRK_NO_INPUT_SYNC)
+ +++++         return;
+ +++++
        list_for_each_entry(hidinput, &hid->inputs, list)
                input_sync(hidinput->input);
       }
index 7a778ac4c5cb21f191d53a0e0e63094f7aa94e4a,599041a7f670a9f105e00da3272d79642aefb78c,599041a7f670a9f105e00da3272d79642aefb78c,39913f51d88148175163f367d8b9c11b82875d11,b729c02866798c00ae4d2c77eadba097a79d7f73,b729c02866798c00ae4d2c77eadba097a79d7f73,b729c02866798c00ae4d2c77eadba097a79d7f73..5489eab3a6bd09e9aaf443cc7961f52267aff4a6
@@@@@@@@ -807,10 -807,9 -807,9 -807,9 -807,9 -807,9 -807,9 +807,10 @@@@@@@@ static int usbhid_output_raw_report(str
        struct usb_host_interface *interface = intf->cur_altsetting;
        int ret;
       
--- --- if (usbhid->urbout) {
+++ +++ if (usbhid->urbout && report_type != HID_FEATURE_REPORT) {
                int actual_length;
                int skipped_report_id = 0;
 ++++++
                if (buf[0] == 0x0) {
                        /* Don't send the Report ID */
                        buf++;
                }
        } else {
                int skipped_report_id = 0;
    +++         int report_id = buf[0];
                if (buf[0] == 0x0) {
                        /* Don't send the Report ID */
                        buf++;
                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) | *buf,
    +++                 ((report_type + 1) << 8) | report_id,
                        interface->desc.bInterfaceNumber, buf, count,
                        USB_CTRL_SET_TIMEOUT);
                /* count also the report id, if this was a numbered report. */
@@@@@@@@ -1447,11 -1446,11 -1446,11 -1446,11 -1445,6 -1445,6 -1445,6 +1447,11 @@@@@@@@ static const struct hid_device_id hid_u
        { }
       };
       
    +++struct usb_interface *usbhid_find_interface(int minor)
    +++{
    +++ return usb_find_interface(&hid_driver, minor);
    +++}
    +++
       static struct hid_driver hid_usb_driver = {
        .name = "generic-usb",
        .id_table = hid_usb_table,
@@@@@@@@ -1470,6 -1469,9 -1469,9 -1469,9 -1463,9 -1463,9 -1463,9 +1470,6 @@@@@@@@ static int __init hid_init(void
        retval = usbhid_quirks_init(quirks_param);
        if (retval)
                goto usbhid_quirks_init_fail;
 ------ retval = hiddev_init();
 ------ if (retval)
 ------         goto hiddev_init_fail;
        retval = usb_register(&hid_driver);
        if (retval)
                goto usb_register_fail;
       
        return 0;
       usb_register_fail:
 ------ hiddev_exit();
 ------hiddev_init_fail:
        usbhid_quirks_exit();
       usbhid_quirks_init_fail:
        hid_unregister_driver(&hid_usb_driver);
       static void __exit hid_exit(void)
       {
        usb_deregister(&hid_driver);
 ------ hiddev_exit();
        usbhid_quirks_exit();
        hid_unregister_driver(&hid_usb_driver);
        destroy_workqueue(resumption_waker);
index f90e937b577f9de10baf8f11441f55c5b230ee11,70da3181c8a0467663c15abd324dd6fbe801ea51,7ff7e3d4b950a47b790f80eea2d313e52af8deb9,70da3181c8a0467663c15abd324dd6fbe801ea51,2643d31476213cd41f5d1b39042e83d5a70a63a4,2643d31476213cd41f5d1b39042e83d5a70a63a4,2643d31476213cd41f5d1b39042e83d5a70a63a4..836a87473c5851e29ae32081aacc63f290ec24af
@@@@@@@@ -33,10 -33,9 -33,8 -33,9 -33,8 -33,8 -33,8 +33,9 @@@@@@@@ static const struct hid_blacklist 
        { USB_VENDOR_ID_AASHIMA, USB_DEVICE_ID_AASHIMA_PREDATOR, HID_QUIRK_BADPAD },
        { USB_VENDOR_ID_ALPS, USB_DEVICE_ID_IBM_GAMEPAD, HID_QUIRK_BADPAD },
        { USB_VENDOR_ID_CHIC, USB_DEVICE_ID_CHIC_GAMEPAD, HID_QUIRK_BADPAD },
    --- { USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH, HID_QUIRK_MULTI_INPUT },
    +++ { USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER, HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET },
-- -    { USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH, HID_QUIRK_MULTI_INPUT },
        { USB_VENDOR_ID_MOJO, USB_DEVICE_ID_RETRO_ADAPTER, HID_QUIRK_MULTI_INPUT },
 ++++++ { USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART, HID_QUIRK_MULTI_INPUT },
        { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
        { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
        { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
        { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE, HID_QUIRK_NOGET },
        { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
        { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
 ++++++ { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },
        { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
        { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
        { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, 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_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 },
       
       
        { USB_VENDOR_ID_PI_ENGINEERING, USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL, HID_QUIRK_HIDINPUT_FORCE },
       
    +++ { USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH, HID_QUIRK_MULTI_INPUT },
    +++
        { 0, 0 }
       };