Input: xpad - fix wireless 360 controller breaking after suspend
authorCameron Gutman <aicommander@gmail.com>
Thu, 18 Aug 2022 15:44:09 +0000 (17:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 15 Oct 2022 05:59:04 +0000 (07:59 +0200)
commit a17b9841152e7f4621619902b347e2cc39c32996 upstream.

Suspending and resuming the system can sometimes cause the out
URB to get hung after a reset_resume. This causes LED setting
and force feedback to break on resume. To avoid this, just drop
the reset_resume callback so the USB core rebinds xpad to the
wireless pads on resume if a reset happened.

A nice side effect of this change is the LED ring on wireless
controllers is now set correctly on system resume.

Cc: stable@vger.kernel.org
Fixes: 4220f7db1e42 ("Input: xpad - workaround dead irq_out after suspend/ resume")
Signed-off-by: Cameron Gutman <aicommander@gmail.com>
Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
Link: https://lore.kernel.org/r/20220818154411.510308-3-rojtberg@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/input/joystick/xpad.c

index db3c81e..dbfabd2 100644 (file)
@@ -1991,7 +1991,6 @@ static struct usb_driver xpad_driver = {
        .disconnect     = xpad_disconnect,
        .suspend        = xpad_suspend,
        .resume         = xpad_resume,
-       .reset_resume   = xpad_resume,
        .id_table       = xpad_table,
 };