ACK: [PATCH] HID: multitouch: handle external buttons for Precision Touchpads

Stefan Bader stefan.bader at canonical.com
Thu Aug 3 13:36:04 UTC 2017


On 03.08.2017 09:20, AceLan Kao wrote:
> From: Benjamin Tissoires <benjamin.tissoires at redhat.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1708372
> 
> According to https://msdn.microsoft.com/en-us/library/windows/hardware/mt604195(v=vs.85).aspx
> external buttons have some weird usage mapping:
> - Button 2 Indicates Button State for external button for primary
>   (default left) clicking.
> - Button 3 Indicates Button State for external button for secondary
>   (default right) clicking.
> 
> So in the current state, the buttons are mapped to right and middle.
> Move the usage by one to correctly map the external buttons.
> 
> Tested-by: Chris Chiu <chiu at endlessm.com>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at redhat.com>
> Signed-off-by: Jiri Kosina <jkosina at suse.cz>
> (cherry picked from commit 594312b88b0f451912c964c7ff2c0eaa71ad41b4)
> Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>

> ---
>  drivers/hid/hid-multitouch.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index f62a9d6..2177721 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -567,6 +567,14 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
>  
>  	case HID_UP_BUTTON:
>  		code = BTN_MOUSE + ((usage->hid - 1) & HID_USAGE);
> +		/*
> +		 * MS PTP spec says that external buttons left and right have
> +		 * usages 2 and 3.
> +		 */
> +		if (cls->name == MT_CLS_WIN_8 &&
> +		    field->application == HID_DG_TOUCHPAD &&
> +		    (usage->hid & HID_USAGE) > 1)
> +			code--;
>  		hid_map_usage(hi, usage, bit, max, EV_KEY, code);
>  		input_set_capability(hi->input, EV_KEY, code);
>  		return 1;
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20170803/cacb7252/attachment.sig>


More information about the kernel-team mailing list