HID: Add support for Toshiba WT10A tablet bluetooth keyboard
diff mbox series

Message ID 20190201151807.3454-1-hdegoede@redhat.com
State Mainlined
Commit aa2d495f0cac219d5be1d64f6bf16e7c24cfb148
Delegated to: Jiri Kosina
Headers show
Series
  • HID: Add support for Toshiba WT10A tablet bluetooth keyboard
Related show

Commit Message

Hans de Goede Feb. 1, 2019, 3:18 p.m. UTC
The bluetooth-keyboard which comes with the Toshiba WT10A tablet uses
a couple of usage codes in the vendor specific ffbc page.

The keyboard has a vendor-id of 04f2 which maps to Chicony.

Other then adding a few keymappings for the ffbc usages, no special
handling is necessary. So rather then adding a new hid-toshiba driver,
this commit adds the ID and 2 extra key-mappings to the hid-topseed
driver. The hid-topseed driver already contains mapping for some
ffbc usages (and does nothing else) and it already binds to another
Chicony manufactured keyboard.

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

Comments

Benjamin Tissoires Feb. 7, 2019, 4:15 p.m. UTC | #1
On Fri, Feb 1, 2019 at 4:18 PM Hans de Goede <hdegoede@redhat.com> wrote:
>
> The bluetooth-keyboard which comes with the Toshiba WT10A tablet uses
> a couple of usage codes in the vendor specific ffbc page.
>
> The keyboard has a vendor-id of 04f2 which maps to Chicony.
>
> Other then adding a few keymappings for the ffbc usages, no special
> handling is necessary. So rather then adding a new hid-toshiba driver,
> this commit adds the ID and 2 extra key-mappings to the hid-topseed
> driver. The hid-topseed driver already contains mapping for some
> ffbc usages (and does nothing else) and it already binds to another
> Chicony manufactured keyboard.
>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---

Applied to for-5.1/hid-topseed

Thanks.

Cheers,
Benjamin

>  drivers/hid/hid-ids.h     | 1 +
>  drivers/hid/hid-topseed.c | 3 +++
>  2 files changed, 4 insertions(+)
>
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 24f846d67478..644a9f2bf624 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -273,6 +273,7 @@
>  #define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE 0x1053
>  #define USB_DEVICE_ID_CHICONY_WIRELESS2        0x1123
>  #define USB_DEVICE_ID_ASUS_AK1D                0x1125
> +#define USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A    0x1408
>  #define USB_DEVICE_ID_CHICONY_ACER_SWITCH12    0x1421
>
>  #define USB_VENDOR_ID_CHUNGHWAT                0x2247
> diff --git a/drivers/hid/hid-topseed.c b/drivers/hid/hid-topseed.c
> index 8a5b843e9dd6..e9cdde840362 100644
> --- a/drivers/hid/hid-topseed.c
> +++ b/drivers/hid/hid-topseed.c
> @@ -34,7 +34,9 @@ static int ts_input_mapping(struct hid_device *hdev, struct hid_input *hi,
>                 return 0;
>
>         switch (usage->hid & HID_USAGE) {
> +       case 0x00c: ts_map_key_clear(KEY_WLAN);         break;
>         case 0x00d: ts_map_key_clear(KEY_MEDIA);        break;
> +       case 0x010: ts_map_key_clear(KEY_ZOOM);         break;
>         case 0x024: ts_map_key_clear(KEY_MENU);         break;
>         case 0x025: ts_map_key_clear(KEY_TV);           break;
>         case 0x027: ts_map_key_clear(KEY_MODE);         break;
> @@ -67,6 +69,7 @@ static const struct hid_device_id ts_devices[] = {
>         { HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_TOPSEED2, USB_DEVICE_ID_TOPSEED2_RF_COMBO) },
>         { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) },
> +       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A) },
>         { }
>  };
>  MODULE_DEVICE_TABLE(hid, ts_devices);
> --
> 2.20.1
>

Patch
diff mbox series

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 24f846d67478..644a9f2bf624 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -273,6 +273,7 @@ 
 #define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE	0x1053
 #define USB_DEVICE_ID_CHICONY_WIRELESS2	0x1123
 #define USB_DEVICE_ID_ASUS_AK1D		0x1125
+#define USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A	0x1408
 #define USB_DEVICE_ID_CHICONY_ACER_SWITCH12	0x1421
 
 #define USB_VENDOR_ID_CHUNGHWAT		0x2247
diff --git a/drivers/hid/hid-topseed.c b/drivers/hid/hid-topseed.c
index 8a5b843e9dd6..e9cdde840362 100644
--- a/drivers/hid/hid-topseed.c
+++ b/drivers/hid/hid-topseed.c
@@ -34,7 +34,9 @@  static int ts_input_mapping(struct hid_device *hdev, struct hid_input *hi,
 		return 0;
 
 	switch (usage->hid & HID_USAGE) {
+	case 0x00c: ts_map_key_clear(KEY_WLAN);		break;
 	case 0x00d: ts_map_key_clear(KEY_MEDIA);	break;
+	case 0x010: ts_map_key_clear(KEY_ZOOM);		break;
 	case 0x024: ts_map_key_clear(KEY_MENU);		break;
 	case 0x025: ts_map_key_clear(KEY_TV);		break;
 	case 0x027: ts_map_key_clear(KEY_MODE);		break;
@@ -67,6 +69,7 @@  static const struct hid_device_id ts_devices[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TOPSEED2, USB_DEVICE_ID_TOPSEED2_RF_COMBO) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ts_devices);