Re: [PATCH v2 02/30] HID: wacom: store the type in wacom->shared for INTUOSHT and INTUOSHT2
From: Ping Cheng <hidden>
Date: 2016-07-15 04:14:33
Also in:
lkml
On Wed, Jul 13, 2016 at 9:05 AM, Benjamin Tissoires [off-list ref] wrote:
The type is never set but we check for it in wacom_wireless_irq().
Type was assigned in wacom_wireless_work [1] before we moved code around. It somehow failed to get into wacom_parse_and_register. The value was only assigned once on stylus interface. It was unnecessary to assign it again on touch interface since it is a shared value. Maybe that was the reason it missed its "flight"? [1] https://git.kernel.org/cgit/linux/kernel/git/dtor/input.git/commit/drivers/hid/wacom_sys.c?id=2546dacd3e0e48c40bbb99caf01455f1ade9bb24
It looks like this is a big hack from the beginning, so fill in the gap only.
Yeah, wireless is a dynamic connection. We can not tell which tablet model is going to be connected before it is paired. But, the dongle is always the same. That's the tricky part.
Untested.
Aaron tested it. So, your code is safe ;).
Signed-off-by: Benjamin Tissoires <redacted>
The whole set is Acked-by: Ping Cheng <redacted> Thanks for your effort! Ping
quoted hunk ↗ jump to hunk
--- No changes in v2 --- drivers/hid/wacom_sys.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c index 499cc82..9e283aa 100644 --- a/drivers/hid/wacom_sys.c +++ b/drivers/hid/wacom_sys.c@@ -1720,9 +1720,10 @@ static int wacom_parse_and_register(struct wacom *wacom, bool wireless) error = hid_hw_open(hdev); if ((wacom_wac->features.type == INTUOSHT || - wacom_wac->features.type == INTUOSHT2) && + wacom_wac->features.type == INTUOSHT2) && (wacom_wac->features.device_type & WACOM_DEVICETYPE_TOUCH)) { - wacom_wac->shared->touch_input = wacom_wac->touch_input; + wacom_wac->shared->type = wacom_wac->features.type; + wacom_wac->shared->touch_input = wacom_wac->touch_input; } return 0; --2.5.5