diff options
author | Jim Keir <jimkeir@oracledbadirect.com> | 2015-01-23 17:21:12 +0000 |
---|---|---|
committer | Luis Henriques <luis.henriques@canonical.com> | 2015-03-23 15:17:54 +0000 |
commit | 5ec97889558caaf87e251e0ff6147e449f775b61 (patch) | |
tree | 8b2ab20e73e7e7a2c54728ac17af93ff0f23e511 /crypto | |
parent | 900199b7ba3c90b4b70d0a0e8af8b5631f6e77ca (diff) | |
download | linux-stable-5ec97889558caaf87e251e0ff6147e449f775b61.tar.gz linux-stable-5ec97889558caaf87e251e0ff6147e449f775b61.tar.bz2 linux-stable-5ec97889558caaf87e251e0ff6147e449f775b61.zip |
HID: pidff: Fix initialisation forMicrosoft Sidewinder FF Pro 2
commit afd700d933963d07391e3e3dfbfbc05e905960ef upstream.
The FF2 driver (usbhid/hid-pidff.c) sends commands to the stick during ff_init.
However, this is called inside a block where driver_input_lock is locked, so
the results of these initial commands are discarded. This behavior is the
"killer", without this nothing else works.
ff_init issues commands using "hid_hw_request". This eventually goes to
hid_input_report, which returns -EBUSY because driver_input_lock is locked. The
change is to delay the ff_init call in hid-core.c until after this lock has
been released.
Calling hid_device_io_start() releases the lock so the device can be
configured. We also need to call hid_device_io_stop() on exit for the lock to
remain locked while ending the init of the drivers.
[ benjamin.tissoires@redhat.com: imrpoved the changelog a lot ]
Signed-off-by: Jim Keir <jimkeir@oracledbadirect.com>
Reviewed-by: Benjamin.tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Diffstat (limited to 'crypto')
0 files changed, 0 insertions, 0 deletions