• Jim Keir's avatar
    HID: pidff: Fix initialisation forMicrosoft Sidewinder FF Pro 2 · 5ec97889
    Jim Keir authored
    commit afd700d9 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: default avatarJim Keir <jimkeir@oracledbadirect.com>
    Reviewed-by: default avatarBenjamin.tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    5ec97889
hid-pidff.c 36.2 KB