HID: ite: Add USB id match for Acer SW5-012 keyboard dock
diff mbox series

Message ID 20191119145711.59399-1-hdegoede@redhat.com
State Mainlined
Commit 8f18eca9ebc57d6b150237033f6439242907e0ba
Delegated to: Jiri Kosina
Headers show
Series
  • HID: ite: Add USB id match for Acer SW5-012 keyboard dock
Related show

Commit Message

Hans de Goede Nov. 19, 2019, 2:57 p.m. UTC
The Acer SW5-012 2-in-1 keyboard dock uses a Synaptics S91028 touchpad
which is connected to an ITE 8595 USB keyboard controller chip.

This keyboard has the same quirk for its rfkill / airplane mode hotkey as
other keyboards with the ITE 8595 chip, it only sends a single release
event when pressed and released, it never sends a press event.

This commit adds this keyboards USB id to the hid-ite id-table, fixing
the rfkill key not working on this keyboard.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/hid/hid-ids.h | 1 +
 drivers/hid/hid-ite.c | 3 +++
 2 files changed, 4 insertions(+)

Comments

Jiri Kosina Dec. 13, 2019, 9:25 a.m. UTC | #1
On Tue, 19 Nov 2019, Hans de Goede wrote:

> The Acer SW5-012 2-in-1 keyboard dock uses a Synaptics S91028 touchpad
> which is connected to an ITE 8595 USB keyboard controller chip.
> 
> This keyboard has the same quirk for its rfkill / airplane mode hotkey as
> other keyboards with the ITE 8595 chip, it only sends a single release
> event when pressed and released, it never sends a press event.
> 
> This commit adds this keyboards USB id to the hid-ite id-table, fixing
> the rfkill key not working on this keyboard.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/hid/hid-ids.h | 1 +
>  drivers/hid/hid-ite.c | 3 +++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index c2e60c727697..50985e321b4f 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -1100,6 +1100,7 @@
>  #define USB_DEVICE_ID_SYNAPTICS_LTS2	0x1d10
>  #define USB_DEVICE_ID_SYNAPTICS_HD	0x0ac3
>  #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD	0x1ac3
> +#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012	0x2968
>  #define USB_DEVICE_ID_SYNAPTICS_TP_V103	0x5710
>  #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5	0x81a7
>  
> diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c
> index a45f2352618d..c436e12feb23 100644
> --- a/drivers/hid/hid-ite.c
> +++ b/drivers/hid/hid-ite.c
> @@ -40,6 +40,9 @@ static int ite_event(struct hid_device *hdev, struct hid_field *field,
>  static const struct hid_device_id ite_devices[] = {
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_258A, USB_DEVICE_ID_258A_6A88) },
> +	/* ITE8595 USB kbd ctlr, with Synaptics touchpad connected to it. */
> +	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS,
> +			 USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012) },
>  	{ }

Applied, thanks Hans.

Patch
diff mbox series

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index c2e60c727697..50985e321b4f 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1100,6 +1100,7 @@ 
 #define USB_DEVICE_ID_SYNAPTICS_LTS2	0x1d10
 #define USB_DEVICE_ID_SYNAPTICS_HD	0x0ac3
 #define USB_DEVICE_ID_SYNAPTICS_QUAD_HD	0x1ac3
+#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012	0x2968
 #define USB_DEVICE_ID_SYNAPTICS_TP_V103	0x5710
 #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5	0x81a7
 
diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c
index a45f2352618d..c436e12feb23 100644
--- a/drivers/hid/hid-ite.c
+++ b/drivers/hid/hid-ite.c
@@ -40,6 +40,9 @@  static int ite_event(struct hid_device *hdev, struct hid_field *field,
 static const struct hid_device_id ite_devices[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE8595) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_258A, USB_DEVICE_ID_258A_6A88) },
+	/* ITE8595 USB kbd ctlr, with Synaptics touchpad connected to it. */
+	{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS,
+			 USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_012) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ite_devices);