linux/drivers/hid
Fernando Luis Vázquez Cao a464918419 HID: add support for Sony RF receiver with USB product id 0x0374
Some Vaio desktop computers, among them the VGC-LN51JGB multimedia PC, have
a RF receiver, multi-interface USB device 054c:0374, that is used to connect
a wireless keyboard and a wireless mouse.

The keyboard works flawlessly, but the mouse (VGP-WMS3 in my case) does not
seem to be generating any pointer events. The problem is that the mouse pointer
is wrongly declared as a constant non-data variable in the report descriptor
(see lsusb and usbhid-dump output below), with the consequence that it is
ignored by the HID code.

Add this device to the have-special-driver list and fix up the report
descriptor in the Sony-specific driver which happens to already have a fixup
for a similar firmware bug.

# lsusb -vd 054C:0374
Bus 003 Device 002: ID 054c:0374 Sony Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x054c Sony Corp.
  idProduct          0x0374
  iSerial                 0
[...]
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              2 RF Receiver
[...]
          Report Descriptor: (length is 100)
[...]
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x81 ] 129
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Main  ): Input, data= [ 0x07 ] 7
                            Constant Variable Relative No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield

# usbhid-dump
003:002:001:DESCRIPTOR         1357910009.758544
 05 01 09 02 A1 01 05 01 09 02 A1 02 85 01 09 01
 A1 00 05 09 19 01 29 05 95 05 75 01 15 00 25 01
 81 02 75 03 95 01 81 01 05 01 09 30 09 31 95 02
 75 08 15 81 25 7F 81 07 A1 02 85 01 09 38 35 00
 45 00 15 81 25 7F 95 01 75 08 81 06 C0 A1 02 85
 01 05 0C 15 81 25 7F 95 01 75 08 0A 38 02 81 06
 C0 C0 C0 C0

Cc: linux-input@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-01-15 17:01:11 +01:00
..
i2c-hid HID: i2c-hid: add mutex protecting open/close race 2012-12-12 18:26:22 +01:00
usbhid Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for-3.8/multitouch', 'for-3.8/roccat', 'for-3.8/sensors' and 'for-3.8/upstream' into for-linus 2012-12-12 21:41:55 +01:00
hid-a4tech.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-apple.c Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for-3.8/multitouch', 'for-3.8/roccat', 'for-3.8/sensors' and 'for-3.8/upstream' into for-linus 2012-12-12 21:41:55 +01:00
hid-aureal.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-axff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-belkin.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-cherry.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-chicony.c HID: add ASUS AIO keyboard model AK1D 2012-07-23 12:10:21 +02:00
hid-core.c HID: add support for Sony RF receiver with USB product id 0x0374 2013-01-15 17:01:11 +01:00
hid-cypress.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-debug.c HID: hid-debug: Show rdesc for unclaimed devices 2012-08-27 08:01:21 -07:00
hid-dr.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-elecom.c
hid-emsff.c Merge branches 'hyperv', 'multitouch', 'roccat', 'upstream', 'upstream-fixes', 'wacom' and 'wiimote' into for-linus 2012-01-05 15:51:02 +01:00
hid-ezkey.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-gaff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-generic.c HID: Create a common generic driver 2012-05-01 12:54:55 +02:00
hid-gyration.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-holtek-kbd.c HID: Add driver for Holtek based keyboards with broken HID 2012-07-12 12:34:43 +02:00
hid-holtekff.c HID: holtekff: use %*ph to dump small buffers 2012-09-10 23:00:32 +02:00
hid-hyperv.c HID: hyperv: Set the hid drvdata correctly 2012-05-17 10:01:07 +02:00
hid-icade.c HID: Add driver for ION iCade 2012-10-31 15:52:59 +01:00
hid-ids.h HID: add support for Sony RF receiver with USB product id 0x0374 2013-01-15 17:01:11 +01:00
hid-input.c Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for-3.8/multitouch', 'for-3.8/roccat', 'for-3.8/sensors' and 'for-3.8/upstream' into for-linus 2012-12-12 21:41:55 +01:00
hid-kensington.c
hid-keytouch.c HID: add support for Keytouch IEC 60945 2011-02-17 15:12:45 +01:00
hid-kye.c HID: kye: Add support for 3 tablets 2012-02-28 13:37:12 +01:00
hid-lcpower.c HID: hid-lcpower: Use HID_UP_LOGIVENDOR instead of hard coded 0x0ffbc0000 2012-09-05 11:55:35 +02:00
hid-lenovo-tpkbd.c Merge branch 'upstream' into for-linus 2012-10-01 14:37:51 +02:00
hid-lg.c Merge branch 'upstream' into for-linus 2012-10-01 14:37:51 +02:00
hid-lg.h HID: hid-lg4ff: Adjust X axis input value accordingly to selected range. 2012-09-25 15:41:02 +02:00
hid-lg2ff.c
hid-lg3ff.c
hid-lg4ff.c Merge branch 'upstream' into for-linus 2012-10-01 14:37:51 +02:00
hid-lgff.c HID: lg4ff - Move handling of Logitech wheels to lg4ff driver 2011-08-04 16:45:55 +02:00
hid-logitech-dj.c HID: Fix logitech-dj: missing Unifying device issue 2012-09-22 10:58:48 +02:00
hid-logitech-dj.h HID: Fix logitech-dj: missing Unifying device issue 2012-09-22 10:58:48 +02:00
hid-magicmouse.c Input: MT - Add flags to input_mt_init_slots() 2012-09-19 19:50:18 +02:00
hid-microsoft.c HID: microsoft: do not use compound literal - fix build 2012-11-12 15:34:59 +01:00
hid-monterey.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-multitouch.c HID: multitouch: fix Win 8 protocol 2012-11-15 10:19:00 +01:00
hid-ntrig.c HID: ntrig: change default value of logical/physical width/height to 1 2012-09-25 15:20:07 +02:00
hid-ortek.c HID: add support for Skycable 0x3f07 wireless presenter 2011-03-21 16:12:23 +01:00
hid-petalynx.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-picolcd.h HID: picolcd: fix build error if !CONFIG_DEBUG_FS 2012-09-11 16:06:22 +02:00
hid-picolcd_backlight.c HID: picoLCD: Improve unplug handling 2012-08-15 10:13:26 +02:00
hid-picolcd_cir.c HID: picoLCD: fix a NULL test in picolcd_raw_cir() 2012-09-08 21:19:07 +02:00
hid-picolcd_core.c HID: picolcd_core: Remove setting hdev->claimed before calling hid_hw_start() 2012-09-19 13:57:03 +02:00
hid-picolcd_debugfs.c HID: picoLCD: optimize for inactive debugfs 2012-10-01 10:25:01 +02:00
hid-picolcd_fb.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
hid-picolcd_lcd.c HID: picoLCD: Improve unplug handling 2012-08-15 10:13:26 +02:00
hid-picolcd_leds.c HID: picoLCD: Improve unplug handling 2012-08-15 10:13:26 +02:00
hid-pl.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
hid-primax.c HID: primax: Remove px_probe() and px_remove() functions 2012-09-07 14:55:38 +02:00
hid-prodikeys.c HID: prodikeys: Remove unnecessary casts of void pointers 2012-09-17 13:08:30 +02:00
hid-ps3remote.c HID: Add support for Sony PS3 BD Remote Control 2012-10-01 10:11:48 +02:00
hid-roccat-arvo.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-arvo.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-common.c HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-common.h HID: roccat: rename roccat_common functions to roccat_common2 2012-06-28 10:34:01 +02:00
hid-roccat-isku.c HID: roccat: add sysfs attr "reset" for Isku 2012-11-12 15:30:27 +01:00
hid-roccat-isku.h HID: roccat: add sysfs attr "reset" for Isku 2012-11-12 15:30:27 +01:00
hid-roccat-kone.c HID: roccat: fix wrong hid_err usage on struct usb_device 2012-06-28 10:34:01 +02:00
hid-roccat-kone.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-koneplus.c HID: roccat: deprecate some Koneplus attributes 2012-11-12 15:30:28 +01:00
hid-roccat-koneplus.h HID: roccat: fix wrong attr size for koneplus tcu 2012-11-18 22:58:28 +01:00
hid-roccat-kovaplus.c HID: roccat: deprecate some Kovaplus attributes 2012-11-12 15:30:29 +01:00
hid-roccat-kovaplus.h HID: roccat: deprecate some Kovaplus attributes 2012-11-12 15:30:29 +01:00
hid-roccat-lua.c HID: roccat: add support for Roccat Lua 2012-10-17 10:44:47 +02:00
hid-roccat-lua.h HID: roccat: add support for Roccat Lua 2012-10-17 10:44:47 +02:00
hid-roccat-pyra.c HID: roccat: deprecated some Pyra attributes 2012-11-12 15:30:28 +01:00
hid-roccat-pyra.h HID: roccat: deprecated some Pyra attributes 2012-11-12 15:30:28 +01:00
hid-roccat-savu.c HID: roccat: enable Savu device reset 2012-11-05 13:17:39 +01:00
hid-roccat-savu.h HID: roccat: added sensor sysfs attribute for Savu 2012-07-20 09:50:42 +02:00
hid-roccat.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
hid-saitek.c HID: add new driver for non-compliant Saitek devices 2012-02-22 11:30:17 +01:00
hid-samsung.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-sensor-hub.c Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for-3.8/multitouch', 'for-3.8/roccat', 'for-3.8/sensors' and 'for-3.8/upstream' into for-linus 2012-12-12 21:41:55 +01:00
hid-sjoy.c HID: sjoy: Add device ID for Super Joy Box 3 2012-02-21 14:16:36 +01:00
hid-sony.c HID: add support for Sony RF receiver with USB product id 0x0374 2013-01-15 17:01:11 +01:00
hid-speedlink.c HID: Add driver to fix Speedlink VAD Cezanne support 2011-06-08 09:45:37 +02:00
hid-sunplus.c HID: remove Paul Walmsley's copyright from places where it shouldn't be 2012-09-05 10:46:36 +02:00
hid-tivo.c HID: tivo: fix support for bluetooth version of tivo Slide 2012-03-30 15:28:59 +02:00
hid-tmff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-topseed.c
hid-twinhan.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
hid-uclogic.c HID: uclogic: Add support for UC-Logic TWHA60 2012-08-27 08:09:21 -07:00
hid-wacom.c Merge branch 'upstream' into for-linus 2012-10-01 14:37:51 +02:00
hid-waltop.c HID: waltop: Remove waltop_probe() and waltop_remove() functions 2012-09-07 14:53:59 +02:00
hid-wiimote-core.c HID: wiimote: Fix IR data parser 2012-05-09 11:40:51 +02:00
hid-wiimote-debug.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
hid-wiimote-ext.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
hid-wiimote.h HID: wiimote: Allow direct DRM debug access 2011-11-22 23:11:10 +01:00
hid-zpff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-zydacron.c HID: zydacron: kfree() NULL pointer cleanup 2011-08-04 23:51:29 +02:00
hidraw.c HID: hidraw: fix signaling SIGIO when hidraw reports an event 2012-11-28 16:36:18 +01:00
Kconfig Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for-3.8/multitouch', 'for-3.8/roccat', 'for-3.8/sensors' and 'for-3.8/upstream' into for-linus 2012-12-12 21:41:55 +01:00
Makefile Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for-3.8/multitouch', 'for-3.8/roccat', 'for-3.8/sensors' and 'for-3.8/upstream' into for-linus 2012-12-12 21:41:55 +01:00
uhid.c HID: uhid: Fix sending events with invalid data 2012-07-20 09:53:45 +02:00