linux/drivers
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
..
accessibility
acpi ACPI: Add DMI entry for Sony VGN-FW41E_H 2013-03-04 06:06:44 +08:00
amba ARM: 7366/3: amba: Remove AMBA level regulator support 2012-04-13 14:04:08 +01:00
ata ata_piix: reenable MS Virtual PC guests 2013-03-14 11:29:42 -07:00
atm atm/iphase: rename fregt_t -> ffreg_t 2013-02-14 10:49:05 -08:00
auxdisplay
base drivercore: Fix ordering between deferred_probe and exiting initcalls 2013-02-28 06:59:01 -08:00
bcma bcma: mips: fix clearing device IRQ 2013-01-17 08:50:41 -08:00
block xen/blkback: Don't trust the handle from the frontend. 2013-03-04 06:06:40 +08:00
bluetooth Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027] 2013-01-11 09:07:17 -08:00
cdrom
char hw_random: make buffer usable in scatterlist. 2013-03-14 11:29:42 -07:00
clk clk: Check parent for NULL in clk_change_rate 2012-07-19 08:58:59 -07:00
clocksource Revert "clocksource: Load the ACPI PM clocksource asynchronously" 2012-04-12 00:05:05 +02:00
connector
cpufreq cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code 2012-10-31 10:03:03 -07:00
cpuidle Merge branches 'idle-fix' and 'misc' into release 2012-04-06 21:48:59 -04:00
crypto crypto: mv_cesa requires on CRYPTO_HASH to build 2012-05-15 01:10:06 +00:00
dca dca: check against empty dca_domains list before unregister provider 2013-02-28 06:59:06 -08:00
devfreq ARM: global cleanups 2012-03-27 16:03:32 -07:00
dio
dma ioat: Fix DMA memory sync direction correct flag 2013-01-27 20:47:44 -08:00
edac EDAC: Test correct variable in ->store function 2013-02-03 18:24:41 -06:00
eisa
firewire firewire: add minor number range check to fw_device_init() 2013-03-04 06:06:41 +08:00
firmware efi: Make 'efi_enabled' a function to query EFI facilities 2013-02-14 10:48:53 -08:00
gpio gpiolib: Don't return -EPROBE_DEFER to sysfs, or for invalid gpios 2012-11-05 09:50:41 +01:00
gpu drm/radeon: add primary dac adj quirk for R200 board 2013-03-14 11:29:49 -07:00
hid HID: logitech-dj: do not directly call hid_output_raw_report() during probe 2013-03-14 11:29:50 -07:00
hsi HSI: hsi_char: Remove max_data_size from sysfs 2012-04-23 14:23:32 +03:00
hv Drivers: hv: Cleanup error handling in vmbus_open() 2012-10-31 10:02:58 -07:00
hwmon hwmon: (pmbus/ltc2978) Use detected chip ID to select supported functionality 2013-03-14 11:29:49 -07:00
hwspinlock hwspinlock/core: use global ID to register hwspinlocks on multiple devices 2012-07-16 09:04:25 -07:00
i2c i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH 2012-09-14 10:00:33 -07:00
ide Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
idle simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ieee802154
infiniband RDMA/nes: Fix for terminate timer crash 2013-01-17 08:50:51 -08:00
input Input: sentelic - only report position of first finger as ST coordinates 2013-01-11 09:06:56 -08:00
iommu iommu/amd: Initialize device table after dma_ops 2013-03-04 06:06:37 +08:00
isdn isdn/gigaset: fix zero size border case in debug dump 2013-02-14 10:49:04 -08:00
leds drivers/leds/leds-lp5521.c: fix lp5521_read() error handling 2012-12-03 11:46:36 -08:00
lguest
macintosh Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mca
md md: raid0: fix error return from create_stripe_zones. 2013-03-14 11:29:49 -07:00
media media: rc: unlock on error in show_protocols() 2013-03-04 06:06:41 +08:00
memstick
message Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
mfd mfd: Only unregister platform devices allocated by the mfd core 2013-01-17 08:50:45 -08:00
misc SGI-XP: handle non-fatal traps 2013-01-11 09:06:29 -08:00
mmc mmc: sdhci-esdhc-imx: fix host version read 2013-02-28 06:59:05 -08:00
mtd mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems 2013-01-17 08:50:45 -08:00
net e1000e: fix pci-device enable-counter balance 2013-03-14 11:29:50 -07:00
nfc NFC: pn533: Fix mem leak in pn533_in_dep_link_up 2012-12-03 11:47:12 -08:00
nubus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
of gpio: Fix range check in of_gpio_simple_xlate() 2012-04-10 14:20:56 -06:00
oprofile oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array 2012-07-16 09:04:21 -07:00
parisc parisc: move definition of PAGE0 to asm/page.h 2012-05-10 15:12:08 -07:00
parport
pci PCI/PM: Clean up PME state when removing a device 2013-02-17 10:49:26 -08:00
pcmcia pcmcia/vrc4171: Add missing spinlock init 2013-02-28 06:59:05 -08:00
pinctrl pinctrl: tegra: set low power mode bank width to 2 2012-10-28 10:14:14 -07:00
platform samsung-laptop: Disable on EFI hardware 2013-02-14 10:48:54 -08:00
pnp pnpacpi: fix incorrect TEST_ALPHA() test 2013-01-11 09:06:29 -08:00
power ab8500_btemp: Demote initcall sequence 2013-03-04 06:06:44 +08:00
pps
ps3
ptp ptp_pch: Add missing #include <linux/slab.h> 2012-05-16 14:44:44 -04:00
rapidio rapidio/tsi721: fix unused variable compiler warning 2012-09-14 10:00:20 -07:00
regulator regulator: wm831x: Set the new rather than old value for DVS VSEL 2013-01-17 08:50:41 -08:00
remoteproc remoteproc: fix a potential NULL-dereference on cleanup 2012-10-07 08:32:28 -07:00
rpmsg rpmsg: fix dependency on initialization order 2012-07-19 08:58:57 -07:00
rtc drivers/rtc/rtc-isl1208.c: call rtc_update_irq() from the alarm irq handler 2013-02-11 08:47:18 -08:00
s390 KVM: s390: Handle hosts not supporting s390-virtio. 2013-02-28 06:59:01 -08:00
sbus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
scsi SCSI: storvsc: Initialize the sglist 2013-03-14 11:29:42 -07:00
sfi
sh SuperH updates for 3.4 merge window 2012-03-30 00:09:17 -07:00
sn
spi spi/pl022: disable port when unused 2012-08-09 08:31:38 -07:00
ssb
staging staging: comedi: check s->async for poll(), read() and write() 2013-03-04 06:06:45 +08:00
target target/pscsi: Fix page increment 2013-03-14 11:29:42 -07:00
tc
thermal
tty fb: Yet another band-aid for fixing lockdep mess 2013-02-28 06:59:05 -08:00
uio
usb USB: usb-storage: unusual_devs update for Super TOP SATA bridge 2013-02-28 06:59:07 -08:00
uwb uwb: fix error handling 2012-04-18 13:15:51 -07:00
vhost vhost: fix length for cross region descriptor 2013-03-04 06:06:43 +08:00
video fb: Yet another band-aid for fixing lockdep mess 2013-02-28 06:59:05 -08:00
virt
virtio virtio: force vring descriptors to be allocated from lowmem 2013-01-11 09:06:47 -08:00
vlynq
w1
watchdog hpwdt: Fix kdump issue in hpwdt 2012-10-02 10:30:08 -07:00
xen xen: close evtchn port if binding to irq fails 2013-02-28 06:59:00 -08:00
zorro
Kconfig Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00
Makefile Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00