diff mbox

HID: wacom: call _query_tablet_data() for BAMBOO_TOUCH

Message ID 1490812888-31078-1-git-send-email-skomra@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Aaron Armstrong Skomra March 29, 2017, 6:41 p.m. UTC
Commit a544c619a54b ("HID: wacom: do not attempt to switch mode
while in probe") introduces delayed work for querying (setting the
mode) on all tablets. Bamboo Touch (056a:00d0) has a ghost
interface which claims to be a pen device. Though this device can
be removed, we have to set the mode on the ghost pen interface
before we remove it. After the aforementioned delay was introduced
the device was being removed before the mode setting could be
executed.

Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
---
This is a fix for 4.11

 drivers/hid/wacom_sys.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jiri Kosina March 30, 2017, 9:31 a.m. UTC | #1
On Wed, 29 Mar 2017, Aaron Armstrong Skomra wrote:

> Commit a544c619a54b ("HID: wacom: do not attempt to switch mode
> while in probe") introduces delayed work for querying (setting the
> mode) on all tablets. Bamboo Touch (056a:00d0) has a ghost
> interface which claims to be a pen device. Though this device can
> be removed, we have to set the mode on the ghost pen interface
> before we remove it. After the aforementioned delay was introduced
> the device was being removed before the mode setting could be
> executed.
> 
> Signed-off-by: Aaron Armstrong Skomra <aaron.skomra@wacom.com>

Applied to for-4.11/upstream-fixes.
diff mbox

Patch

diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index 0bcfb2026223..98bc9c90d5f8 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -2216,6 +2216,8 @@  static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
 	/* touch only Bamboo doesn't support pen */
 	if ((features->type == BAMBOO_TOUCH) &&
 	    (features->device_type & WACOM_DEVICETYPE_PEN)) {
+		cancel_delayed_work_sync(&wacom->init_work);
+		_wacom_query_tablet_data(wacom);
 		error = -ENODEV;
 		goto fail_quirks;
 	}