| From pingc@wacom.com Wed Apr 21 15:34:14 2010 |
| From: Ping Cheng <pingc@wacom.com> |
| Date: Mon, 19 Apr 2010 11:10:50 -0700 |
| Subject: Input: wacom - switch mode upon system resume |
| To: "Dmitry Torokhov" <dmitry.torokhov@gmail.com>, "Greg KH" <gregkh@suse.de> |
| Cc: <Anton@anikin.name>, <stable@kernel.org>, <stable-commits@vger.kernel.org> |
| Message-ID: <6753EB6004AFF34FAA275742C104F95201DF6FE3@wacom-nt10.wacom.com> |
| |
| From: Ping Cheng <pingc@wacom.com> |
| |
| commit 014f61504af276ba9d9544d8a7401d8f8526eb73 upstream. |
| |
| When Wacom devices wake up from a sleep, the switch mode command |
| (wacom_query_tablet_data) is needed before wacom_open is called. |
| wacom_query_tablet_data should not be executed inside wacom_open |
| since wacom_open is called more than once during probe. |
| |
| Reported-and-tested-by: Anton Anikin <Anton@Anikin.name> |
| Signed-off-by: Ping Cheng <pingc@wacom.com> |
| Signed-off-by: Dmitry Torokhov <dtor@mail.ru> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/input/tablet/wacom_sys.c | 10 +++++++--- |
| 1 file changed, 7 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/input/tablet/wacom_sys.c |
| +++ b/drivers/input/tablet/wacom_sys.c |
| @@ -562,11 +562,15 @@ static int wacom_resume(struct usb_inter |
| int rv; |
| |
| mutex_lock(&wacom->lock); |
| - if (wacom->open) { |
| + |
| + /* switch to wacom mode first */ |
| + wacom_query_tablet_data(intf); |
| + |
| + if (wacom->open) |
| rv = usb_submit_urb(wacom->irq, GFP_NOIO); |
| - wacom_query_tablet_data(intf); |
| - } else |
| + else |
| rv = 0; |
| + |
| mutex_unlock(&wacom->lock); |
| |
| return rv; |