diff mbox series

[3/3] HID: ite: Add USB id match for another ITE based keyboard rfkill key quirk

Message ID 20181126105218.19980-3-hdegoede@redhat.com (mailing list archive)
State Mainlined
Delegated to: Jiri Kosina
Headers show
Series None | expand

Commit Message

Hans de Goede Nov. 26, 2018, 10:52 a.m. UTC
The 258a:6a88 keyboard-dock shipped with the Prowise PT301 tablet is
likely another ITE based design. The controller die is directly bonded
to the PCB with a blob of black glue on top so there are no markings and
the 258a vendor-id used is unknown anywhere. But the keyboard has the
exact same hotkeys mapped to Fn+F1 - F10 as the other ITE8595 keyboard
I have *and* it has the same quirky behavior wrt the rfkill hotkey.

Either way as said this keyboard has the same quirk for its rfkill /
airplane mode hotkey as the ITE 8595 chip, it only sends a single release
event when pressed and released, it never sends a press event.

This commit adds the 258a:6a88 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 | 3 +++
 drivers/hid/hid-ite.c | 1 +
 2 files changed, 4 insertions(+)

Comments

Benjamin Tissoires Nov. 30, 2018, 2:18 p.m. UTC | #1
On Mon, Nov 26, 2018 at 11:52 AM Hans de Goede <hdegoede@redhat.com> wrote:
>
> The 258a:6a88 keyboard-dock shipped with the Prowise PT301 tablet is
> likely another ITE based design. The controller die is directly bonded
> to the PCB with a blob of black glue on top so there are no markings and
> the 258a vendor-id used is unknown anywhere. But the keyboard has the
> exact same hotkeys mapped to Fn+F1 - F10 as the other ITE8595 keyboard
> I have *and* it has the same quirky behavior wrt the rfkill hotkey.
>
> Either way as said this keyboard has the same quirk for its rfkill /
> airplane mode hotkey as the ITE 8595 chip, it only sends a single release
> event when pressed and released, it never sends a press event.
>
> This commit adds the 258a:6a88 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>
> ---

I have pushed this one into for-4.20/upstream-fixes. However, it'll go
in Linus tree during 4.20 if we have urgent fixes for 4.20, otherwise
it'll be in 4.21.

Cheers,
Benjamin

>  drivers/hid/hid-ids.h | 3 +++
>  drivers/hid/hid-ite.c | 1 +
>  2 files changed, 4 insertions(+)
>
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 5ae1db6fa5c8..86d137239117 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -17,6 +17,9 @@
>  #ifndef HID_IDS_H_FILE
>  #define HID_IDS_H_FILE
>
> +#define USB_VENDOR_ID_258A             0x258a
> +#define USB_DEVICE_ID_258A_6A88                0x6a88
> +
>  #define USB_VENDOR_ID_3M               0x0596
>  #define USB_DEVICE_ID_3M1968           0x0500
>  #define USB_DEVICE_ID_3M2256           0x0502
> diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c
> index 1882a4ab0f29..98b059d79bc8 100644
> --- a/drivers/hid/hid-ite.c
> +++ b/drivers/hid/hid-ite.c
> @@ -42,6 +42,7 @@ 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) },
>         { }
>  };
>  MODULE_DEVICE_TABLE(hid, ite_devices);
> --
> 2.19.1
>
Hans de Goede Dec. 2, 2018, 11:37 a.m. UTC | #2
Hi,

On 30-11-18 15:18, Benjamin Tissoires wrote:
> On Mon, Nov 26, 2018 at 11:52 AM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> The 258a:6a88 keyboard-dock shipped with the Prowise PT301 tablet is
>> likely another ITE based design. The controller die is directly bonded
>> to the PCB with a blob of black glue on top so there are no markings and
>> the 258a vendor-id used is unknown anywhere. But the keyboard has the
>> exact same hotkeys mapped to Fn+F1 - F10 as the other ITE8595 keyboard
>> I have *and* it has the same quirky behavior wrt the rfkill hotkey.
>>
>> Either way as said this keyboard has the same quirk for its rfkill /
>> airplane mode hotkey as the ITE 8595 chip, it only sends a single release
>> event when pressed and released, it never sends a press event.
>>
>> This commit adds the 258a:6a88 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>
>> ---
> 
> I have pushed this one into for-4.20/upstream-fixes. However, it'll go
> in Linus tree during 4.20 if we have urgent fixes for 4.20, otherwise
> it'll be in 4.21.

Ok, thanks.

Regards,

Hans



> 
> Cheers,
> Benjamin
> 
>>   drivers/hid/hid-ids.h | 3 +++
>>   drivers/hid/hid-ite.c | 1 +
>>   2 files changed, 4 insertions(+)
>>
>> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
>> index 5ae1db6fa5c8..86d137239117 100644
>> --- a/drivers/hid/hid-ids.h
>> +++ b/drivers/hid/hid-ids.h
>> @@ -17,6 +17,9 @@
>>   #ifndef HID_IDS_H_FILE
>>   #define HID_IDS_H_FILE
>>
>> +#define USB_VENDOR_ID_258A             0x258a
>> +#define USB_DEVICE_ID_258A_6A88                0x6a88
>> +
>>   #define USB_VENDOR_ID_3M               0x0596
>>   #define USB_DEVICE_ID_3M1968           0x0500
>>   #define USB_DEVICE_ID_3M2256           0x0502
>> diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c
>> index 1882a4ab0f29..98b059d79bc8 100644
>> --- a/drivers/hid/hid-ite.c
>> +++ b/drivers/hid/hid-ite.c
>> @@ -42,6 +42,7 @@ 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) },
>>          { }
>>   };
>>   MODULE_DEVICE_TABLE(hid, ite_devices);
>> --
>> 2.19.1
>>
diff mbox series

Patch

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 5ae1db6fa5c8..86d137239117 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -17,6 +17,9 @@ 
 #ifndef HID_IDS_H_FILE
 #define HID_IDS_H_FILE
 
+#define USB_VENDOR_ID_258A		0x258a
+#define USB_DEVICE_ID_258A_6A88		0x6a88
+
 #define USB_VENDOR_ID_3M		0x0596
 #define USB_DEVICE_ID_3M1968		0x0500
 #define USB_DEVICE_ID_3M2256		0x0502
diff --git a/drivers/hid/hid-ite.c b/drivers/hid/hid-ite.c
index 1882a4ab0f29..98b059d79bc8 100644
--- a/drivers/hid/hid-ite.c
+++ b/drivers/hid/hid-ite.c
@@ -42,6 +42,7 @@  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) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ite_devices);