HID: pidff: Fix initialisation forMicrosoft Sidewinder FF Pro 2
HID: pidff: Fix initialisation forMicrosoft Sidewinder FF Pro 2

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.

[ 7a0e50e3f6a0939db82b6a8a423c08a163896f41@redhat.com: imrpoved the changelog a lot ]

Signed-off-by: Jim Keir <954716d9b40894a97a2400993b4b6a387a631c13@oracledbadirect.com>
Reviewed-by: Benjamin.tissoires <7a0e50e3f6a0939db82b6a8a423c08a163896f41@redhat.com>
Signed-off-by: Jiri Kosina <ed58f755cc8caaf10c3e8c731a8b86fb8f13d6cb@suse.cz>

KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs