diff options
Diffstat (limited to 'drivers/hid/hid-input-quirks.c')
| -rw-r--r-- | drivers/hid/hid-input-quirks.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/drivers/hid/hid-input-quirks.c b/drivers/hid/hid-input-quirks.c index dceadd0c1419..4c2052c658f1 100644 --- a/drivers/hid/hid-input-quirks.c +++ b/drivers/hid/hid-input-quirks.c | |||
| @@ -276,6 +276,21 @@ static int quirk_btc_8193(struct hid_usage *usage, struct input_dev *input, | |||
| 276 | return 1; | 276 | return 1; |
| 277 | } | 277 | } |
| 278 | 278 | ||
| 279 | static int quirk_sunplus_wdesktop(struct hid_usage *usage, struct input_dev *input, | ||
| 280 | unsigned long **bit, int *max) | ||
| 281 | { | ||
| 282 | if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER) | ||
| 283 | return 0; | ||
| 284 | |||
| 285 | switch (usage->hid & HID_USAGE) { | ||
| 286 | case 0x2003: map_key_clear(KEY_ZOOMIN); break; | ||
| 287 | case 0x2103: map_key_clear(KEY_ZOOMOUT); break; | ||
| 288 | default: | ||
| 289 | return 0; | ||
| 290 | } | ||
| 291 | return 1; | ||
| 292 | } | ||
| 293 | |||
| 279 | #define VENDOR_ID_BELKIN 0x1020 | 294 | #define VENDOR_ID_BELKIN 0x1020 |
| 280 | #define DEVICE_ID_BELKIN_WIRELESS_KEYBOARD 0x0006 | 295 | #define DEVICE_ID_BELKIN_WIRELESS_KEYBOARD 0x0006 |
| 281 | 296 | ||
| @@ -306,6 +321,9 @@ static int quirk_btc_8193(struct hid_usage *usage, struct input_dev *input, | |||
| 306 | #define VENDOR_ID_PETALYNX 0x18b1 | 321 | #define VENDOR_ID_PETALYNX 0x18b1 |
| 307 | #define DEVICE_ID_PETALYNX_MAXTER_REMOTE 0x0037 | 322 | #define DEVICE_ID_PETALYNX_MAXTER_REMOTE 0x0037 |
| 308 | 323 | ||
| 324 | #define VENDOR_ID_SUNPLUS 0x04fc | ||
| 325 | #define DEVICE_ID_SUNPLUS_WDESKTOP 0x05d8 | ||
| 326 | |||
| 309 | static const struct hid_input_blacklist { | 327 | static const struct hid_input_blacklist { |
| 310 | __u16 idVendor; | 328 | __u16 idVendor; |
| 311 | __u16 idProduct; | 329 | __u16 idProduct; |
| @@ -332,8 +350,10 @@ static const struct hid_input_blacklist { | |||
| 332 | { VENDOR_ID_MONTEREY, DEVICE_ID_GENIUS_KB29E, quirk_cherry_genius_29e }, | 350 | { VENDOR_ID_MONTEREY, DEVICE_ID_GENIUS_KB29E, quirk_cherry_genius_29e }, |
| 333 | 351 | ||
| 334 | { VENDOR_ID_PETALYNX, DEVICE_ID_PETALYNX_MAXTER_REMOTE, quirk_petalynx_remote }, | 352 | { VENDOR_ID_PETALYNX, DEVICE_ID_PETALYNX_MAXTER_REMOTE, quirk_petalynx_remote }, |
| 335 | 353 | ||
| 336 | { 0, 0, 0 } | 354 | { VENDOR_ID_SUNPLUS, DEVICE_ID_SUNPLUS_WDESKTOP, quirk_sunplus_wdesktop }, |
| 355 | |||
| 356 | { 0, 0, NULL } | ||
| 337 | }; | 357 | }; |
| 338 | 358 | ||
| 339 | int hidinput_mapping_quirks(struct hid_usage *usage, | 359 | int hidinput_mapping_quirks(struct hid_usage *usage, |
