linux/drivers/hid
Benjamin Tissoires 626614bf45 HID: logitech-dj: do not directly call hid_output_raw_report() during probe
commit dcd9006b1b upstream.

hid_output_raw_report() makes a direct call to usb_control_msg(). However,
some USB3 boards have shown that the usb device is not ready during the
.probe(). This blocks the entire usb device, and the paired mice, keyboards
are not functional. The dmesg output is the following:

[   11.912287] logitech-djreceiver 0003:046D:C52B.0003: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-2/input2
[   11.912537] logitech-djreceiver 0003:046D:C52B.0003: logi_dj_probe:logi_dj_recv_query_paired_devices error:-32
[   11.912636] logitech-djreceiver: probe of 0003:046D:C52B.0003 failed with error -32

Relying on the scheduled call to usbhid_submit_report() fixes the problem.

related bugs:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1072082
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1039143
https://bugzilla.redhat.com/show_bug.cgi?id=840391
https://bugzilla.kernel.org/show_bug.cgi?id=49781

Reported-and-tested-by: Bob Bowles <bobjohnbowles@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-14 11:29:50 -07:00
..
usbhid HID: add quirk for Freescale i.MX23 ROM recovery 2013-01-17 08:50:54 -08:00
hid-a4tech.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-apple.c HID: add support for 2012 MacBook Pro Retina 2012-07-19 08:58:59 -07: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: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-cherry.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-chicony.c HID: add ASUS AIO keyboard model AK1D 2012-08-15 08:10:30 -07:00
hid-core.c usb hid quirks for Masterkit MA901 usb radio 2013-03-04 06:06:46 +08:00
hid-cypress.c HID: add support for Cypress barcode scanner 04B4:ED81 2012-08-15 08:10:30 -07:00
hid-debug.c Merge branches 'hyperv', 'multitouch', 'roccat', 'upstream', 'upstream-fixes', 'wacom' and 'wiimote' into for-linus 2012-01-05 15:51:02 +01: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: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
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-gaff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-gyration.c HID: Add teletext/color keys - gyration remote - EU version (GYAR3101CKDE) 2011-02-15 10:29:57 +01:00
hid-holtekff.c hid: Add module.h to fix up implicit users of it 2011-10-31 19:31:17 -04:00
hid-hyperv.c HID: hyperv: Properly disconnect the input device 2012-02-02 10:56:11 +01:00
hid-ids.h usb hid quirks for Masterkit MA901 usb radio 2013-03-04 06:06:46 +08:00
hid-input.c HID: add battery quirk for Apple Wireless ANSI 2012-07-29 08:04:19 -07: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: fix key mapping 2011-02-13 15:04:51 +01:00
hid-lg.c HID: lg4ff - Add range setting support and sysfs interface 2011-08-04 16:45:55 +02:00
hid-lg.h HID: lg4ff - Fix misleading info in Kconfig 2011-08-04 16:45:55 +02:00
hid-lg2ff.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-lg3ff.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-lg4ff.c HID: hid-lg4ff: Casting (void *) value returned by kmalloc is useless 2011-11-11 15:09:29 +01: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: logitech-dj: do not directly call hid_output_raw_report() during probe 2013-03-14 11:29:50 -07:00
hid-logitech-dj.h HID: Fix logitech-dj: missing Unifying device issue 2012-10-02 10:30:06 -07:00
hid-magicmouse.c HID: hid-magicmouse: Add pointer and buttonpad properties for Magic Trackpad 2012-02-21 11:52:20 +01:00
hid-microsoft.c HID: microsoft: fix invalid rdesc for 3k kbd 2012-11-05 09:50:42 +01:00
hid-monterey.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-multitouch.c HID: multitouch: add support for Novatek touchscreen 2012-08-15 08:10:30 -07:00
hid-ntrig.c HID: hid-ntrig: init settle and mode check 2011-03-14 13:10:13 +01:00
hid-ortek.c HID: add support for Skycable 0x3f07 wireless presenter 2011-03-21 16:12:23 +01:00
hid-petalynx.c HID: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01:00
hid-picolcd.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
hid-pl.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
hid-primax.c HID: support primax keyboards violating USB HID spec 2011-10-17 17:04:41 +02:00
hid-prodikeys.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
hid-roccat-arvo.c HID: roccat: fix NULL pointer dereference, add range checks 2011-06-13 13:06:23 +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 Merge branches 'hyperv', 'multitouch', 'roccat', 'upstream', 'upstream-fixes', 'wacom' and 'wiimote' into for-linus 2012-01-05 15:51:02 +01:00
hid-roccat-common.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-isku.c HID: roccat: Add support for Isku keyboard 2011-12-06 10:21:10 +01:00
hid-roccat-isku.h HID: roccat: Add support for Isku keyboard 2011-12-06 10:21:10 +01:00
hid-roccat-kone.c HID: roccat: Use kmemdup rather than duplicating its implementation 2011-11-20 00:42:42 +01: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: fix NULL pointer dereference, add range checks 2011-06-13 13:06:23 +02:00
hid-roccat-koneplus.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-kovaplus.c HID: roccat: Kovaplus now reports external profile changes via roccat device 2011-09-07 13:38:27 +02:00
hid-roccat-kovaplus.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +02:00
hid-roccat-pyra.c HID: roccat: Pyra now reports external profile changes via roccat device 2011-09-07 13:38:27 +02:00
hid-roccat-pyra.h HID: roccat: correction and cleanup of HID feature reports 2011-06-13 12:52:57 +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: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +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: hid-sony: fix endiannes of Sixaxis accel/gyro values 2011-06-13 13:21:30 +02: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: Add and use hid_<level>: dev_<level> equivalents 2010-12-10 15:10:38 +01: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: Add support for Perixx PERIBOARD-707 (Plus) 2010-11-25 15:59:02 +01:00
hid-twinhan.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
hid-uclogic.c HID: uclogic: Replace original rdescs with links 2012-03-06 11:20:54 +01:00
hid-wacom.c Merge branch 'upstream' into for-linus 2012-03-20 13:18:05 +01:00
hid-waltop.c HID: waltop: Add support for tablet with PID 0038 2012-03-06 11:20:55 +01:00
hid-wiimote-core.c HID: wiimote: Fix IR data parser 2012-06-01 15:18:17 +08:00
hid-wiimote-debug.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
hid-wiimote-ext.c HID: wiimote: fix nunchuck button parser 2013-02-28 06:59:05 -08: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 Merge branch 'upstream' into for-linus 2011-10-25 09:59:04 +02:00
Kconfig HID: default HID_BATTERY_STRENGTH to no 2012-04-19 14:16:43 +02:00
Makefile Merge branch 'upstream' into for-linus 2012-03-20 13:18:05 +01:00