Re: [PATCH 2/2] HID: wacom: Setup SW_MUTE_DEVICE according to the order of input registration
flat view
From: Lee Jones <lee@kernel.org>
Date: 2026-09-23 07:45:07
Also in:
stable
On Tue, 22 Sep 2026, Ping Cheng wrote:
From: Ping Cheng <ping.cheng@wacom.com>
The refactored SW_MUTE_DEVICE code assumed that stylus will be
the first regiestered input. In reality, touch can be registered
before stylus, such as the Wacom Cintiq Pro 13 and 16.
This patch covers both touch-first and stylus-first cases.
Cc: stable@vger.kernel.org
Fixes: ba16e5ffbaa1 ("HID: wacom: Advertise SW_MUTE_DEVICE capability prior to registration")
Reviewed-by: Lee Jones <lee@kernel.org>I did not review this patch!
quoted hunk ↗ jump to hunk
Signed-off-by: Ping Cheng <ping.cheng@wacom.com> --- drivers/hid/wacom_wac.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-)diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index c4cd87b781c4..9520296cb349 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c@@ -3977,10 +3977,12 @@ int wacom_setup_touch_input_capabilities(struct input_dev *input_dev, if (features->type == HID_GENERIC) { hid_dbg(hdev, "generic touch setup\n"); - if (wacom_wac->has_mute_touch_switch || - (wacom_wac->shared && READ_ONCE(wacom_wac->shared->has_mute_touch_switch))) { + + /* setup touch switch for those devices that report pen interface first + * can only be done here since we only call this routine once + */
This is the incorrect multi-line comment format. Sentences start with uppercase chars.
quoted hunk ↗ jump to hunk
+ if (wacom_wac->shared && READ_ONCE(wacom_wac->shared->has_mute_touch_switch)) { input_set_capability(input_dev, EV_SW, SW_MUTE_DEVICE); - wacom_wac->has_mute_touch_switch = true; } /* setup has already been done */ return 0;@@ -4403,7 +4405,21 @@ int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, break; case INTUOSHT3_BT: + break; + case HID_GENERIC: + if (wacom_wac->shared) { + /* + * setup touch switch capability can only be done here + * for those devices that have touch input registered + * before stylus and pad inputs.
It might be worth explaining the limitation. What happens if those prerequisites are not satisfied?
+ */
+ if (wacom_wac->has_mute_touch_switch &&
+ wacom_wac->shared->touch_input) {
+ input_set_capability(wacom_wac->shared->touch_input,
+ EV_SW, SW_MUTE_DEVICE);
+ }
+ }
break;
default:
--
2.55.0-- Lee Jones