From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Pavel Rojtberg <rojtberg@gmail.com>
Cc: linux-input@vger.kernel.org, pgriffais@valvesoftware.com,
gregkh@linuxfoundation.org
Subject: Re: [PATCH 4/5] Input: xpad: workaround dead irq_out after suspend/ resume
Date: Wed, 9 Dec 2015 22:41:31 -0800 [thread overview]
Message-ID: <20151210064131.GB35505@dtor-ws> (raw)
In-Reply-To: <1446391899-24250-5-git-send-email-rojtberg@gmail.com>
On Sun, Nov 01, 2015 at 04:31:38PM +0100, Pavel Rojtberg wrote:
> From: Pavel Rojtberg <rojtberg@gmail.com>
>
> the irq_out urb is dead after suspend/ resume on my x360 wr pad. (also
> reproduced by Zachary Lund [0]) Work around this by resetting the usb
> device on resume. Added suspend/ resume callbacks to do so.
>
> [0]: https://github.com/paroj/xpad/issues/6
>
> Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
> ---
> drivers/input/joystick/xpad.c | 30 ++++++++++++++++++++++++++----
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index f3754c7..e8dcc80 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -1423,17 +1423,23 @@ err_free_mem:
>
> }
>
> -static void xpad_disconnect(struct usb_interface *intf)
> +static void xpad_stop_communication(struct usb_xpad *xpad)
> {
> - struct usb_xpad *xpad = usb_get_intfdata (intf);
> -
> - xpad_deinit_output(xpad);
> + xpad_stop_output(xpad);
>
> if (xpad->xtype == XTYPE_XBOX360W) {
> usb_kill_urb(xpad->irq_in);
> }
>
> cancel_work_sync(&xpad->work);
> +}
> +
> +static void xpad_disconnect(struct usb_interface *intf)
> +{
> + struct usb_xpad *xpad = usb_get_intfdata(intf);
> +
> + xpad_stop_communication(xpad);
> + xpad_deinit_output(xpad);
>
> if (xpad->pad_present)
> xpad_deinit_input(xpad);
> @@ -1447,10 +1453,26 @@ static void xpad_disconnect(struct usb_interface *intf)
> usb_set_intfdata(intf, NULL);
> }
>
> +static int xpad_suspend(struct usb_interface *intf, pm_message_t message)
> +{
> + struct usb_xpad *xpad = usb_get_intfdata(intf);
> +
> + xpad_stop_communication(xpad);
> + return 0;
> +}
> +
> +static int xpad_resume(struct usb_interface *intf)
> +{
> + usb_queue_reset_device(intf);
Why do we have to force reset (and tear down the device)? I am sure we
can resume it properly.
Thanks.
> + return 0;
> +}
> +
> static struct usb_driver xpad_driver = {
> .name = "xpad",
> .probe = xpad_probe,
> .disconnect = xpad_disconnect,
> + .suspend = xpad_suspend,
> + .resume = xpad_resume,
> .id_table = xpad_table,
> };
>
> --
> 1.9.1
>
--
Dmitry
next prev parent reply other threads:[~2015-12-10 6:41 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-01 15:31 [PATCH 0/5] Input: xpad: robustness updates Pavel Rojtberg
2015-11-01 15:31 ` [PATCH 1/5] Input: xpad: handle "present" and "gone" correctly Pavel Rojtberg
2015-12-10 7:02 ` Dmitry Torokhov
2015-12-14 23:29 ` Dmitry Torokhov
2015-12-18 2:01 ` Pavel Rojtberg
2015-11-01 15:31 ` [PATCH 2/5] Input: xpad: do not submit active URBs Pavel Rojtberg
2015-11-01 15:31 ` [PATCH 3/5] Input: xpad: re-submit pending ff and led requests Pavel Rojtberg
2015-12-10 6:40 ` Dmitry Torokhov
2015-12-25 23:37 ` Pavel Rojtberg
2015-11-01 15:31 ` [PATCH 4/5] Input: xpad: workaround dead irq_out after suspend/ resume Pavel Rojtberg
2015-12-10 6:41 ` Dmitry Torokhov [this message]
2015-12-17 1:09 ` Dmitry Torokhov
2015-11-01 15:31 ` [PATCH 5/5] Input: xpad: update Xbox One Force Feedback Support Pavel Rojtberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151210064131.GB35505@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-input@vger.kernel.org \
--cc=pgriffais@valvesoftware.com \
--cc=rojtberg@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.