Re: [PATCH] HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 23 Sep 2020, Gerecke, Jason wrote:

> From: Jason Gerecke <jason.gerecke@xxxxxxxxx>
> 
> It has recently been reported that the "heartbeat" report from devices
> like the 2nd-gen Intuos Pro (PTH-460, PTH-660, PTH-860) or the 2nd-gen
> Bluetooth-enabled Intuos tablets (CTL-4100WL, CTL-6100WL) can cause the
> driver to send a spurious BTN_TOUCH=0 once per second in the middle of
> drawing. This can result in broken lines while drawing on Chrome OS.
> 
> The source of the issue has been traced back to a change which modified
> the driver to only call `wacom_wac_pad_report()` once per report instead
> of once per collection. As part of this change, pad-handling code was
> removed from `wacom_wac_collection()` under the assumption that the
> `WACOM_PEN_FIELD` and `WACOM_TOUCH_FIELD` checks would not be satisfied
> when a pad or battery collection was being processed.
> 
> To be clear, the macros `WACOM_PAD_FIELD` and `WACOM_PEN_FIELD` do not
> currently check exclusive conditions. In fact, most "pad" fields will
> also appear to be "pen" fields simply due to their presence inside of
> a Digitizer application collection. Because of this, the removal of
> the check from `wacom_wac_collection()` just causes pad / battery
> collections to instead trigger a call to `wacom_wac_pen_report()`
> instead. The pen report function in turn resets the tip switch state
> just prior to exiting, resulting in the observed BTN_TOUCH=0 symptom.
> 
> To correct this, we restore a version of the `WACOM_PAD_FIELD` check
> in `wacom_wac_collection()` and return early. This effectively prevents
> pad / battery collections from being reported until the very end of the
> report as originally intended.
> 
> Fixes: d4b8efeb46d9 ("HID: wacom: generic: Correct pad syncing")
> Cc: stable@xxxxxxxxxxxxxxx # v4.17+
> Signed-off-by: Jason Gerecke <jason.gerecke@xxxxxxxxx>
> Reviewed-by: Ping Cheng <ping.cheng@xxxxxxxxx>
> Tested-by: Ping Cheng <ping.cheng@xxxxxxxxx>

Applied.

-- 
Jiri Kosina
SUSE Labs




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux