2019-05-27 09:55:01 +03:00
// SPDX-License-Identifier: GPL-2.0-or-later
2017-11-20 13:48:41 +03:00
/*
* HID quirks support for Linux
*
* Copyright ( c ) 1999 Andreas Gal
* Copyright ( c ) 2000 - 2005 Vojtech Pavlik < vojtech @ suse . cz >
* Copyright ( c ) 2005 Michael Haboustak < mike - @ cinci . rr . com > for Concept2 , Inc
* Copyright ( c ) 2006 - 2007 Jiri Kosina
* Copyright ( c ) 2007 Paul Walmsley
*/
/*
*/
# include <linux/hid.h>
# include <linux/export.h>
# include <linux/slab.h>
# include <linux/mutex.h>
2019-06-30 10:16:41 +03:00
# include <linux/input/elan-i2c-ids.h>
2017-11-20 13:48:41 +03:00
# include "hid-ids.h"
/*
* Alphabetically sorted by vendor then product .
*/
2017-12-04 14:19:10 +03:00
static const struct hid_device_id hid_quirks [ ] = {
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_AASHIMA , USB_DEVICE_ID_AASHIMA_GAMEPAD ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AASHIMA , USB_DEVICE_ID_AASHIMA_PREDATOR ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AFATECH , USB_DEVICE_ID_AFATECH_AF9016 ) , HID_QUIRK_FULLSPEED_INTERVAL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIREN , USB_DEVICE_ID_AIREN_SLIMPLUS ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AKAI_09E8 , USB_DEVICE_ID_AKAI_09E8_MIDIMIX ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AKAI , USB_DEVICE_ID_AKAI_MPKMINI2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ALPS , USB_DEVICE_ID_IBM_GAMEPAD ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AMI , USB_DEVICE_ID_AMI_VIRT_KEYBOARD_AND_MOUSE ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_2PORTKVM ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_4PORTKVMC ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_4PORTKVM ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_CS124U ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_CS1758 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_CS682 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_CS692 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ATEN , USB_DEVICE_ID_ATEN_UC100KM ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_MULTI_TOUCH ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE ) , HID_QUIRK_ALWAYS_POLL } ,
2019-06-21 12:17:36 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2 ) , HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_WIRELESS ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHIC , USB_DEVICE_ID_CHIC_GAMEPAD ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_AXIS_295 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_COMBATSTICK ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_FIGHTERSTICK ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_PRO_PEDALS ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CH , USB_DEVICE_ID_CH_PRO_THROTTLE ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K65RGB ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K65RGB_RAPIDFIRE ) , HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K70RGB ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K70RGB_RAPIDFIRE ) , HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K70R ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K95RGB ) , HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_M65RGB ) , HID_QUIRK_NO_INIT_REPORTS } ,
2018-02-10 20:12:12 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_GLAIVE_RGB ) , HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_SCIMITAR_PRO_RGB ) , HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_STRAFE ) , HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CREATIVELABS , USB_DEVICE_ID_CREATIVE_SB_OMNI_SURROUND_51 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DELL , USB_DEVICE_ID_DELL_PIXART_USB_OPTICAL_MOUSE ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DMI , USB_DEVICE_ID_DMI_ENC ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRACAL_RAPHNET , USB_DEVICE_ID_RAPHNET_2NES2SNES ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRACAL_RAPHNET , USB_DEVICE_ID_RAPHNET_4NES4SNES ) , HID_QUIRK_MULTI_INPUT } ,
2018-10-11 10:56:33 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_REDRAGON_SEYMUR2 ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_GAMECUBE1 ) , HID_QUIRK_MULTI_INPUT } ,
2020-11-17 11:48:00 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_GAMECUBE3 ) , HID_QUIRK_MULTI_INPUT } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_PS3 ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_WIIU ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DWAV , USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ) , HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELAN , HID_ANY_ID ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELO , USB_DEVICE_ID_ELO_TS2700 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_EMS , USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ETURBOTOUCH , USB_DEVICE_ID_ETURBOTOUCH_2968 ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ETURBOTOUCH , USB_DEVICE_ID_ETURBOTOUCH ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_FORMOSA , USB_DEVICE_ID_FORMOSA_IR_RECEIVER ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_FREESCALE , USB_DEVICE_ID_FREESCALE_MX28 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_FUTABA , USB_DEVICE_ID_LED_DISPLAY ) , HID_QUIRK_NO_INIT_REPORTS } ,
2020-09-30 23:52:31 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_GREENASIA , USB_DEVICE_ID_GREENASIA_DUAL_SAT_ADAPTOR ) , HID_QUIRK_MULTI_INPUT } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_GREENASIA , USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD ) , HID_QUIRK_MULTI_INPUT } ,
2020-11-01 22:34:52 +03:00
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_GAMEVICE , USB_DEVICE_ID_GAMEVICE_GV186 ) ,
HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GAMEVICE , USB_DEVICE_ID_GAMEVICE_KISHI ) ,
HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HAPP , USB_DEVICE_ID_UGCI_DRIVING ) , HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HAPP , USB_DEVICE_ID_UGCI_FIGHTING ) , HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HAPP , USB_DEVICE_ID_UGCI_FLYING ) , HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A096 ) , HID_QUIRK_NO_INIT_REPORTS } ,
2020-06-09 13:00:53 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD_A293 ) , HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE ) , HID_QUIRK_ALWAYS_POLL } ,
HID: add quirk for another PIXART OEM mouse used by HP
This mouse keep disconnecting in runleve 3 like below, add it needs the
quirk to mute the anoying messages.
[ 111.230555] usb 2-2: USB disconnect, device number 6
[ 112.718156] usb 2-2: new low-speed USB device number 7 using xhci_hcd
[ 112.941594] usb 2-2: New USB device found, idVendor=03f0, idProduct=094a
[ 112.984866] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 113.027731] usb 2-2: Product: HP USB Optical Mouse
[ 113.069977] usb 2-2: Manufacturer: PixArt
[ 113.113500] input: PixArt HP USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:03F0:094A.0002/input/input14
[ 113.156787] hid-generic 0003:03F0:094A.0002: input: USB HID v1.11 Mouse [PixArt HP USB Optical Mouse] on usb-0000:00:14.0-2/input0
[ 173.262642] usb 2-2: USB disconnect, device number 7
[ 174.750244] usb 2-2: new low-speed USB device number 8 using xhci_hcd
[ 174.935740] usb 2-2: New USB device found, idVendor=03f0, idProduct=094a
[ 174.990435] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 175.014984] usb 2-2: Product: HP USB Optical Mouse
[ 175.037886] usb 2-2: Manufacturer: PixArt
[ 175.061794] input: PixArt HP USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:03F0:094A.0003/input/input15
[ 175.084946] hid-generic 0003:03F0:094A.0003: input: USB HID v1.11 Mouse [PixArt HP USB Optical Mouse] on usb-0000:00:14.0-2/input0
Signed-off-by: Dave Young <dyoung@redhat.com>
Cc: stable@vger.kernel.org
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2017-12-01 15:19:34 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A ) , HID_QUIRK_ALWAYS_POLL } ,
2019-09-02 13:39:30 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0941 ) , HID_QUIRK_ALWAYS_POLL } ,
2019-07-24 21:40:03 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641 ) , HID_QUIRK_ALWAYS_POLL } ,
2019-11-13 06:38:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_HP , USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_1f4a ) , HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_IDEACOM , USB_DEVICE_ID_IDEACOM_IDC6680 ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_INNOMEDIA , USB_DEVICE_ID_INNEX_GENESIS_ATARI ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_EASYPEN_M610X ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_MOUSEPEN_I608X ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_MOUSEPEN_I608X_V2 ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_PENSKETCH_M912 ) , HID_QUIRK_MULTI_INPUT } ,
2019-02-10 13:13:47 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_EASYPEN_M406XE ) , HID_QUIRK_MULTI_INPUT } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2 ) , HID_QUIRK_ALWAYS_POLL } ,
2021-04-29 21:50:39 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_OPTICAL_USB_MOUSE_600E ) , HID_QUIRK_ALWAYS_POLL } ,
2020-03-12 19:16:06 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_608D ) , HID_QUIRK_ALWAYS_POLL } ,
2020-08-17 11:36:28 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6019 ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093 ) , HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_C007 ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_C077 ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_KEYBOARD_G710_PLUS ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_MOUSE_C01A ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_MOUSE_C05A ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_MOUSE_C06A ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MCS , USB_DEVICE_ID_MCS_GAMEPADBLOCK ) , HID_QUIRK_MULTI_INPUT } ,
2022-11-22 10:35:20 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_MOUSE_0783 ) , HID_QUIRK_ALWAYS_POLL } ,
2018-11-07 15:36:40 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_PIXART_MOUSE ) , HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_POWER_COVER ) , HID_QUIRK_NO_INIT_REPORTS } ,
2021-11-29 00:07:48 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_SURFACE3_COVER ) , HID_QUIRK_NO_INIT_REPORTS } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_SURFACE_PRO_2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_TOUCH_COVER_2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_TYPE_COVER_2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MOJO , USB_DEVICE_ID_RETRO_ADAPTER ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MSI , USB_DEVICE_ID_MSI_GT683R_LED_PANEL ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MULTIPLE_1781 , USB_DEVICE_ID_RAPHNET_4NES4SNES_OLD ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NATSU , USB_DEVICE_ID_NATSU_GAMEPAD ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NEC , USB_DEVICE_ID_NEC_USB_GAME_PAD ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NEXIO , USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NEXTWINDOW , USB_DEVICE_ID_NEXTWINDOW_TOUCHSCREEN ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NOVATEK , USB_DEVICE_ID_NOVATEK_MOUSE ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_DUOSENSE ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PANTHERLORD , USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK ) , HID_QUIRK_MULTI_INPUT | HID_QUIRK_SKIP_OUTPUT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PENMOUNT , USB_DEVICE_ID_PENMOUNT_1610 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PENMOUNT , USB_DEVICE_ID_PENMOUNT_1640 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PI_ENGINEERING , USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL ) , HID_QUIRK_HIDINPUT_FORCE } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PIXART , USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PIXART , USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PIXART , USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PIXART , USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE ) , HID_QUIRK_ALWAYS_POLL } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_MOUSE_4D22 ) , HID_QUIRK_ALWAYS_POLL } ,
2022-11-22 10:35:20 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_MOUSE_4E2A ) , HID_QUIRK_ALWAYS_POLL } ,
2018-11-20 09:25:08 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F ) , HID_QUIRK_ALWAYS_POLL } ,
2019-07-01 08:48:17 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D65 ) , HID_QUIRK_ALWAYS_POLL } ,
2018-11-20 09:25:08 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4E22 ) , HID_QUIRK_ALWAYS_POLL } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRODIGE , USB_DEVICE_ID_PRODIGE_CORDLESS ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_QUANTA , USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_QUANTA , USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3003 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_QUANTA , USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_REALTEK , USB_DEVICE_ID_REALTEK_READER ) , HID_QUIRK_NO_INIT_REPORTS } ,
2018-12-06 19:59:25 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_RETROUSB , USB_DEVICE_ID_RETROUSB_SNES_RETROPAD ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_RETROUSB , USB_DEVICE_ID_RETROUSB_SNES_RETROPORT ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_RUMBLEPAD ) , HID_QUIRK_BADPAD } ,
2019-07-24 21:09:18 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_X52 ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
2020-08-31 03:48:59 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_X52_2 ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_X52_PRO ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
2021-03-29 19:10:02 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_X65 ) , HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SEMICO , USB_DEVICE_ID_SEMICO_USB_KEYKOARD2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SEMICO , USB_DEVICE_ID_SEMICO_USB_KEYKOARD ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SENNHEISER , USB_DEVICE_ID_SENNHEISER_BTD500USB ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SIGMA_MICRO , USB_DEVICE_ID_SIGMA_MICRO_KEYBOARD ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SIGMATEL , USB_DEVICE_ID_SIGMATEL_STMP3780 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SIS_TOUCH , USB_DEVICE_ID_SIS1030_TOUCH ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SIS_TOUCH , USB_DEVICE_ID_SIS817_TOUCH ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SIS_TOUCH , USB_DEVICE_ID_SIS9200_TOUCH ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SIS_TOUCH , USB_DEVICE_ID_SIS_TS ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SUN , USB_DEVICE_ID_RARITAN_KVM_DONGLE ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYMBOL , USB_DEVICE_ID_SYMBOL_SCANNER_1 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYMBOL , USB_DEVICE_ID_SYMBOL_SCANNER_2 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_HD ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_LTS1 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_LTS2 ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_QUAD_HD ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_TP_V103 ) , HID_QUIRK_NO_INIT_REPORTS } ,
2020-05-02 21:18:42 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_DELL_K12A ) , HID_QUIRK_NO_INIT_REPORTS } ,
2021-04-04 18:40:54 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_DELL_K15A ) , HID_QUIRK_NO_INIT_REPORTS } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_TOPMAX , USB_DEVICE_ID_TOPMAX_COBRAPAD ) , HID_QUIRK_BADPAD } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TOUCHPACK , USB_DEVICE_ID_TOUCHPACK_RTS ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TPV , USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8882 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TPV , USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN_8883 ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TURBOX , USB_DEVICE_ID_TURBOX_KEYBOARD ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_KNA5 ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_TWA60 ) , HID_QUIRK_MULTI_INPUT } ,
2022-02-04 12:01:17 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_UGTIZER , USB_DEVICE_ID_UGTIZER_TABLET_WP5540 ) , HID_QUIRK_MULTI_INPUT } ,
2017-11-20 13:48:41 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET ) , HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP_LTD2 , USB_DEVICE_ID_SMARTJOY_DUAL_PLUS ) , HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP , USB_DEVICE_ID_QUAD_USB_JOYPAD ) , HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT } ,
2019-12-01 01:22:09 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_XIN_MO , USB_DEVICE_ID_XIN_MO_DUAL_ARCADE ) , HID_QUIRK_MULTI_INPUT } ,
2020-07-21 09:54:09 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_GROUP_AUDIO ) , HID_QUIRK_NOGET } ,
2017-11-20 13:48:41 +03:00
{ 0 }
} ;
2017-11-20 13:48:42 +03:00
/*
* A list of devices for which there is a specialized driver on HID bus .
*
* Please note that for multitouch devices ( driven by hid - multitouch driver ) ,
* there is a proper autodetection and autoloading in place ( based on presence
* of HID_DG_CONTACTID ) , so those devices don ' t need to be added to this list ,
* as we are doing the right thing in hid_scan_usage ( ) .
*
* Autodetection for ( USB ) HID sensor hubs exists too . If a collection of type
* physical is found inside a usage page of type sensor , hid - sensor - hub will be
* used as a driver . See hid_scan_report ( ) .
*/
static const struct hid_device_id hid_have_special_driver [ ] = {
# if IS_ENABLED(CONFIG_HID_A4TECH)
{ HID_USB_DEVICE ( USB_VENDOR_ID_A4TECH , USB_DEVICE_ID_A4TECH_WCP32PU ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_A4TECH , USB_DEVICE_ID_A4TECH_X5_005D ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_A4TECH , USB_DEVICE_ID_A4TECH_RP_649 ) } ,
2021-04-06 21:25:38 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_A4TECH , USB_DEVICE_ID_A4TECH_NB_95 ) } ,
2017-11-20 13:48:42 +03:00
# endif
# if IS_ENABLED(CONFIG_HID_ACCUTOUCH)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELO , USB_DEVICE_ID_ELO_ACCUTOUCH_2216 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ACRUX)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ACRUX , 0x0802 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ACRUX , 0xf705 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ALPS)
{ HID_DEVICE ( HID_BUS_ANY , HID_GROUP_ANY , USB_VENDOR_ID_ALPS_JP , HID_DEVICE_ID_ALPS_U1_DUAL ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_APPLE)
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MIGHTYMOUSE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_MINI_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_MINI_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_MINI_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_REVB_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_REVB_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_REVB_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_JIS ) } ,
2022-02-03 15:22:09 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J140K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J214K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J223 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J230K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J152F ) } ,
2017-11-20 13:48:42 +03:00
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS ) } ,
2021-10-08 10:37:00 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2015 ) } ,
2017-11-20 13:48:42 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY ) } ,
2021-10-08 10:37:01 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 ) } ,
2021-12-02 09:16:50 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 ) } ,
2022-08-21 11:04:45 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY ) } ,
2017-11-20 13:48:42 +03:00
# endif
# if IS_ENABLED(CONFIG_HID_APPLEIR)
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_IRCONTROL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_IRCONTROL2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_IRCONTROL3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_IRCONTROL4 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_IRCONTROL5 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ASUS)
{ HID_I2C_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_I2C_KEYBOARD ) } ,
{ HID_I2C_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_I2C_TOUCHPAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_JESS , USB_DEVICE_ID_ASUS_MD_5112 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TURBOX , USB_DEVICE_ID_ASUS_MD_5110 ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_AUREAL)
{ HID_USB_DEVICE ( USB_VENDOR_ID_AUREAL , USB_DEVICE_ID_AUREAL_W01RN ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_BELKIN)
{ HID_USB_DEVICE ( USB_VENDOR_ID_BELKIN , USB_DEVICE_ID_FLIP_KVM ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LABTEC , USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_BETOP_FF)
{ HID_USB_DEVICE ( USB_VENDOR_ID_BETOP_2185BFM , 0x2208 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_BETOP_2185PC , 0x5506 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_BETOP_2185V2PC , 0x1850 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_BETOP_2185V2BFM , 0x5500 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_CHERRY)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHERRY , USB_DEVICE_ID_CHERRY_CYMOTION ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHERRY , USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_CHICONY)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_TACTICAL_PAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_WIRELESS2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_ASUS_AK1D ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_ACER_SWITCH12 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_CMEDIA)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CMEDIA , USB_DEVICE_ID_CM6533 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_CORSAIR)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_K90 ) } ,
2018-02-10 20:12:12 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_GLAIVE_RGB ) } ,
2017-11-20 13:48:42 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_CORSAIR , USB_DEVICE_ID_CORSAIR_SCIMITAR_PRO_RGB ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_CP2112)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYGNAL , USB_DEVICE_ID_CYGNAL_CP2112 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_CYPRESS)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_BARCODE_1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_BARCODE_2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_BARCODE_3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_BARCODE_4 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_MOUSE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_DRAGONRISE)
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , 0x0006 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , 0x0011 ) } ,
# endif
2018-01-14 02:33:49 +03:00
# if IS_ENABLED(CONFIG_HID_ELAN)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELAN , USB_DEVICE_ID_HP_X2_10_COVER ) } ,
# endif
2017-11-20 13:48:42 +03:00
# if IS_ENABLED(CONFIG_HID_ELECOM)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_BM084 ) } ,
2020-11-21 23:54:38 +03:00
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_XGL20DLBK ) } ,
2018-03-01 20:22:23 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_XT3URBK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_XT3DRBK ) } ,
2018-03-01 20:22:24 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_XT4DRBK ) } ,
2018-03-01 20:22:23 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_DT1URBK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_DT1DRBK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_HT1URBK ) } ,
2023-01-19 21:30:02 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_HT1DRBK_010D ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_M_HT1DRBK_011C ) } ,
2017-11-20 13:48:42 +03:00
# endif
# if IS_ENABLED(CONFIG_HID_ELO)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELO , 0x0009 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELO , 0x0030 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_EMS_FF)
{ HID_USB_DEVICE ( USB_VENDOR_ID_EMS , USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_EZKEY)
{ HID_USB_DEVICE ( USB_VENDOR_ID_EZKEY , USB_DEVICE_ID_BTC_8193 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_GEMBIRD)
{ HID_USB_DEVICE ( USB_VENDOR_ID_GEMBIRD , USB_DEVICE_ID_GEMBIRD_JPD_DUALFORCE2 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_GFRM)
{ HID_BLUETOOTH_DEVICE ( 0x58 , 0x2000 ) } ,
{ HID_BLUETOOTH_DEVICE ( 0x471 , 0x2210 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_GREENASIA)
{ HID_USB_DEVICE ( USB_VENDOR_ID_GREENASIA , 0x0012 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_GT683R)
{ HID_USB_DEVICE ( USB_VENDOR_ID_MSI , USB_DEVICE_ID_MSI_GT683R_LED_PANEL ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_GYRATION)
{ HID_USB_DEVICE ( USB_VENDOR_ID_GYRATION , USB_DEVICE_ID_GYRATION_REMOTE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GYRATION , USB_DEVICE_ID_GYRATION_REMOTE_2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GYRATION , USB_DEVICE_ID_GYRATION_REMOTE_3 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_HOLTEK)
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK , USB_DEVICE_ID_HOLTEK_ON_LINE_GRIP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A070 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A072 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_HOLTEK_ALT , USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A0C2 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ICADE)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_ION , USB_DEVICE_ID_ICADE ) } ,
# endif
2017-10-04 13:31:22 +03:00
# if IS_ENABLED(CONFIG_HID_JABRA)
{ HID_USB_DEVICE ( USB_VENDOR_ID_JABRA , HID_ANY_ID ) } ,
# endif
2017-11-20 13:48:42 +03:00
# if IS_ENABLED(CONFIG_HID_KENSINGTON)
{ HID_USB_DEVICE ( USB_VENDOR_ID_KENSINGTON , USB_DEVICE_ID_KS_SLIMBLADE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_KEYTOUCH)
{ HID_USB_DEVICE ( USB_VENDOR_ID_KEYTOUCH , USB_DEVICE_ID_KEYTOUCH_IEC ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_KYE)
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_GENIUS_MANTICORE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_GENIUS_GX_IMPERATOR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_ERGO_525V ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_LCPOWER)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LCPOWER , USB_DEVICE_ID_LCPOWER_LC1000 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_LENOVO)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_TPKBD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_CUSBKBD ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_CBTKBD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_TPPRODOCK ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_LOGITECH)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_MX3000_RECEIVER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_S510_RECEIVER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_RECEIVER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_DINOVO_DESKTOP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_ELITE_KBD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_EXTREME_3D ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_DUAL_ACTION ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_RUMBLEPAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_G29_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_WINGMAN_F3D ) } ,
2019-01-24 14:40:50 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_WINGMAN_FG ) } ,
2017-11-20 13:48:42 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_WINGMAN_FFG ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_FORCE3D_PRO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_FLIGHT_SYSTEM_G940 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_MOMO_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_VIBRATION_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_DFP_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_DFGT_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_G25_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_G27_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_WII_WHEEL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_RUMBLEPAD2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_SPACETRAVELLER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_SPACENAVIGATOR ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_LOGITECH_HIDPP)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_G920_WHEEL ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_MAGICMOUSE)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MAGICMOUSE ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MAGICTRACKPAD ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_MAYFLASH)
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_PS3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_GAMECUBE1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_GAMECUBE2 ) } ,
2020-11-17 11:48:00 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_DRAGONRISE , USB_DEVICE_ID_DRAGONRISE_GAMECUBE3 ) } ,
2017-11-20 13:48:42 +03:00
# endif
# if IS_ENABLED(CONFIG_HID_MICROSOFT)
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_COMFORT_KEYBOARD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_SIDEWINDER_GV ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_NE4K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_NE4K_JP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_NE7K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_LK6K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_PRESENTER_8K_USB ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_OFFICE_KB ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_DIGITAL_MEDIA_7K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_DIGITAL_MEDIA_600 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_POWER_COVER ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_PRESENTER_8K_BT ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_MONTEREY)
{ HID_USB_DEVICE ( USB_VENDOR_ID_MONTEREY , USB_DEVICE_ID_GENIUS_KB29E ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_MULTITOUCH)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LG , USB_DEVICE_ID_LG_MELFAS_MT ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_WIIMOTE)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_NINTENDO , USB_DEVICE_ID_NINTENDO_WIIMOTE ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_NINTENDO , USB_DEVICE_ID_NINTENDO_WIIMOTE2 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_NTI)
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTI , USB_DEVICE_ID_USB_SUN ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_NTRIG)
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_4 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_5 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_6 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_7 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_8 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_9 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_10 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_11 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_12 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_13 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_14 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_15 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NTRIG , USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ORTEK)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ORTEK , USB_DEVICE_ID_ORTEK_PKB1700 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ORTEK , USB_DEVICE_ID_ORTEK_WKB2000 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ORTEK , USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SKYCABLE , USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PANTHERLORD)
{ HID_USB_DEVICE ( USB_VENDOR_ID_GAMERON , USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GAMERON , USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GREENASIA , 0x0003 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_JESS2 , USB_DEVICE_ID_JESS2_COLOR_RUMBLE_PAD ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PENMOUNT)
{ HID_USB_DEVICE ( USB_VENDOR_ID_PENMOUNT , USB_DEVICE_ID_PENMOUNT_6000 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PETALYNX)
{ HID_USB_DEVICE ( USB_VENDOR_ID_PETALYNX , USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PICOLCD)
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_PICOLCD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_PICOLCD_BOOTLOADER ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PLANTRONICS)
{ HID_USB_DEVICE ( USB_VENDOR_ID_PLANTRONICS , HID_ANY_ID ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PRIMAX)
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_KEYBOARD ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_PRODIKEYS)
{ HID_USB_DEVICE ( USB_VENDOR_ID_CREATIVELABS , USB_DEVICE_ID_PRODIKEYS_PCMIDI ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_RETRODE)
{ HID_USB_DEVICE ( USB_VENDOR_ID_FUTURE_TECHNOLOGY , USB_DEVICE_ID_RETRODE2 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_RMI)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LENOVO , USB_DEVICE_ID_LENOVO_X1_COVER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_RAZER , USB_DEVICE_ID_RAZER_BLADE_14 ) } ,
2017-11-18 04:21:30 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_PRIMAX , USB_DEVICE_ID_PRIMAX_REZEL ) } ,
2017-11-20 13:48:42 +03:00
# endif
# if IS_ENABLED(CONFIG_HID_ROCCAT)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_ARVO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_ISKU ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_ISKUFX ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_KONE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_KONEPLUS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_KONEPURE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_KONEXTD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_KOVAPLUS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_LUA ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_PYRA_WIRED ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_PYRA_WIRELESS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_RYOS_MK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_RYOS_MK_GLOW ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_RYOS_MK_PRO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ROCCAT , USB_DEVICE_ID_ROCCAT_SAVU ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_SAITEK)
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_PS1000 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_RAT7_OLD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_RAT7 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_RAT9 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_MMO7 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MADCATZ , USB_DEVICE_ID_MADCATZ_RAT5 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MADCATZ , USB_DEVICE_ID_MADCATZ_RAT9 ) } ,
2022-10-05 21:51:23 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_MADCATZ , USB_DEVICE_ID_MADCATZ_MMO7 ) } ,
2017-11-20 13:48:42 +03:00
# endif
# if IS_ENABLED(CONFIG_HID_SAMSUNG)
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAMSUNG , USB_DEVICE_ID_SAMSUNG_IR_REMOTE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAMSUNG , USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_SMARTJOYPLUS)
{ HID_USB_DEVICE ( USB_VENDOR_ID_PLAYDOTCOM , USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP , USB_DEVICE_ID_SMARTJOY_PLUS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP , USB_DEVICE_ID_SUPER_JOY_BOX_3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP , USB_DEVICE_ID_DUAL_USB_JOYPAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP_LTD , USB_DEVICE_ID_SUPER_JOY_BOX_3_PRO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP_LTD , USB_DEVICE_ID_SUPER_DUAL_BOX_PRO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WISEGROUP_LTD , USB_DEVICE_ID_SUPER_JOY_BOX_5_PRO ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_SONY)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_HARMONY_PS3 ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SMK , USB_DEVICE_ID_SMK_PS3_BDREMOTE ) } ,
2018-02-18 02:47:10 +03:00
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SMK , USB_DEVICE_ID_SMK_NSG_MR5U_REMOTE ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SMK , USB_DEVICE_ID_SMK_NSG_MR7U_REMOTE ) } ,
2017-11-20 13:48:42 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_BUZZ_CONTROLLER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_WIRELESS_BUZZ_CONTROLLER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_MOTION_CONTROLLER ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_MOTION_CONTROLLER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS3_BDREMOTE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS3_CONTROLLER ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS3_CONTROLLER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS4_CONTROLLER ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS4_CONTROLLER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS4_CONTROLLER_2 ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS4_CONTROLLER_2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SONY , USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SINO_LITE , USB_DEVICE_ID_SINO_LITE_CONTROLLER ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_SPEEDLINK)
{ HID_USB_DEVICE ( USB_VENDOR_ID_X_TENSIONS , USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_STEELSERIES)
{ HID_USB_DEVICE ( USB_VENDOR_ID_STEELSERIES , USB_DEVICE_ID_STEELSERIES_SRWS1 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_SUNPLUS)
{ HID_USB_DEVICE ( USB_VENDOR_ID_SUNPLUS , USB_DEVICE_ID_SUNPLUS_WDESKTOP ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_THRUSTMASTER)
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb300 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb304 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb323 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb324 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb605 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb651 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb653 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb654 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb65a ) } ,
2021-01-31 12:00:45 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_THRUSTMASTER , 0xb65d ) } ,
# endif
2017-11-20 13:48:42 +03:00
# if IS_ENABLED(CONFIG_HID_TIVO)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_TIVO , USB_DEVICE_ID_TIVO_SLIDE_BT ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TIVO , USB_DEVICE_ID_TIVO_SLIDE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TIVO , USB_DEVICE_ID_TIVO_SLIDE_PRO ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_TOPSEED)
{ HID_USB_DEVICE ( USB_VENDOR_ID_BTC , USB_DEVICE_ID_BTC_EMPREX_REMOTE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_BTC , USB_DEVICE_ID_BTC_EMPREX_REMOTE_2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CHICONY , USB_DEVICE_ID_CHICONY_WIRELESS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TOPSEED , USB_DEVICE_ID_TOPSEED_CYBERLINK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_TOPSEED2 , USB_DEVICE_ID_TOPSEED2_RF_COMBO ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_TWINHAN)
{ HID_USB_DEVICE ( USB_VENDOR_ID_TWINHAN , USB_DEVICE_ID_TWINHAN_IR_REMOTE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_UDRAW_PS3)
{ HID_USB_DEVICE ( USB_VENDOR_ID_THQ , USB_DEVICE_ID_THQ_PS3_UDRAW ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_XINMO)
{ HID_USB_DEVICE ( USB_VENDOR_ID_XIN_MO , USB_DEVICE_ID_XIN_MO_DUAL_ARCADE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_XIN_MO , USB_DEVICE_ID_THT_2P_ARCADE ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ZEROPLUS)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ZEROPLUS , 0x0005 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ZEROPLUS , 0x0030 ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_ZYDACRON)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ZYDACRON , USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL ) } ,
# endif
{ }
} ;
2017-11-20 13:48:43 +03:00
/* a list of devices that shouldn't be handled by HID core at all */
static const struct hid_device_id hid_ignore_list [ ] = {
{ HID_USB_DEVICE ( USB_VENDOR_ID_ACECAD , USB_DEVICE_ID_ACECAD_FLAIR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ACECAD , USB_DEVICE_ID_ACECAD_302 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ADS_TECH , USB_DEVICE_ID_ADS_TECH_RADIO_SI470X ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_01 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_10 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_20 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_21 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_22 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_23 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIPTEK , USB_DEVICE_ID_AIPTEK_24 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AIRCABLE , USB_DEVICE_ID_AIRCABLE1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ALCOR , USB_DEVICE_ID_ALCOR_USBRS232 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_LCM ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ASUSTEK , USB_DEVICE_ID_ASUSTEK_LCM2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AVERMEDIA , USB_DEVICE_ID_AVER_FM_MR800 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_AXENTIA , USB_DEVICE_ID_AXENTIA_FM_RADIO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_BERKSHIRE , USB_DEVICE_ID_BERKSHIRE_PCWD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CIDC , 0x0103 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYGNAL , USB_DEVICE_ID_CYGNAL_RADIO_SI470X ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYGNAL , USB_DEVICE_ID_CYGNAL_RADIO_SI4713 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CMEDIA , USB_DEVICE_ID_CM109 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_HIDCOM ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_CYPRESS , USB_DEVICE_ID_CYPRESS_ULTRAMOUSE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DEALEXTREAME , USB_DEVICE_ID_DEALEXTREAME_RADIO_SI4701 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DELORME , USB_DEVICE_ID_DELORME_EARTHMATE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DELORME , USB_DEVICE_ID_DELORME_EM_LT20 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ESSENTIAL_REALITY , USB_DEVICE_ID_ESSENTIAL_REALITY_P5 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ETT , USB_DEVICE_ID_TC5UH ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ETT , USB_DEVICE_ID_TC4UM ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GENERAL_TOUCH , 0x0001 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GENERAL_TOUCH , 0x0002 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GENERAL_TOUCH , 0x0004 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GOTOP , USB_DEVICE_ID_SUPER_Q2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GOTOP , USB_DEVICE_ID_GOGOPEN ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GOTOP , USB_DEVICE_ID_PENPOWER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GRETAGMACBETH , USB_DEVICE_ID_GRETAGMACBETH_HUEY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GRIFFIN , USB_DEVICE_ID_POWERMATE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GRIFFIN , USB_DEVICE_ID_SOUNDKNOB ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GRIFFIN , USB_DEVICE_ID_RADIOSHARK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_90 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_100 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_101 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_103 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_104 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_105 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_106 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_107 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_108 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_200 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_201 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_202 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_203 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_204 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_205 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_206 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_207 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_300 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_301 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_302 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_303 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_304 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_305 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_306 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_307 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_308 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_309 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_400 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_401 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_402 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_403 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_404 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_405 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_500 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_501 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_502 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_503 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_504 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1000 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1001 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1002 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1003 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1004 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1005 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1006 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GTCO , USB_DEVICE_ID_GTCO_1007 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_IMATION , USB_DEVICE_ID_DISC_STAKKA ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_JABRA , USB_DEVICE_ID_JABRA_GN9350E ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KBGEAR , USB_DEVICE_ID_KBGEAR_JAMSTUDIO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KWORLD , USB_DEVICE_ID_KWORLD_RADIO_FM700 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_GPEN_560 ) } ,
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_KYE , 0x0058 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_CASSY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_CASSY2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_POCKETCASSY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_POCKETCASSY2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MOBILECASSY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MOBILECASSY2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MICROCASSYVOLTAGE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MICROCASSYCURRENT ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MICROCASSYTIME ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MICROCASSYTEMPERATURE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MICROCASSYPH ) } ,
2018-02-09 12:12:06 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_POWERANALYSERCASSY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_CONVERTERCONTROLLERCASSY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MACHINETESTCASSY ) } ,
2017-11-20 13:48:43 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_JWM ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_DMMP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_UMIP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_UMIC ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_UMIB ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_XRAY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_XRAY2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_VIDEOCOM ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MOTOR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_COM3LAB ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_TELEPORT ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_NETWORKANALYSER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_POWERCONTROL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MACHINETEST ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MOSTANALYSER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MOSTANALYSER2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_ABSESP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_AUTODATABUS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_MCT ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_HYBRID ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LD , USB_DEVICE_ID_LD_HEATCONTROL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MADCATZ , USB_DEVICE_ID_MADCATZ_BEATPAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MCC , USB_DEVICE_ID_MCC_PMD1024LS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MCC , USB_DEVICE_ID_MCC_PMD1208LS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_PICKIT1 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_PICKIT2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_PICK16F1454 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_PICK16F1454_V2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR , USB_DEVICE_ID_N_S_HARMONY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 20 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 30 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 100 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 108 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 118 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 200 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 300 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 400 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ONTRAK , USB_DEVICE_ID_ONTRAK_ADU100 + 500 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PANJIT , 0x0001 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PANJIT , 0x0002 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PANJIT , 0x0003 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PANJIT , 0x0004 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PETZL , USB_DEVICE_ID_PETZL_HEADLAMP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_PHILIPS , USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_POWERCOM , USB_DEVICE_ID_POWERCOM_UPS ) } ,
2020-06-23 22:24:15 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAI , USB_DEVICE_ID_CYPRESS_HIDCOM ) } ,
2017-11-20 13:48:43 +03:00
# if IS_ENABLED(CONFIG_MOUSE_SYNAPTICS_USB)
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_TP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_INT_TP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_CPAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_STICK ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_WP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_COMP_TP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_WTP ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SYNAPTICS , USB_DEVICE_ID_SYNAPTICS_DPAD ) } ,
# endif
{ HID_USB_DEVICE ( USB_VENDOR_ID_YEALINK , USB_DEVICE_ID_YEALINK_P1K_P4K_B2K ) } ,
{ }
} ;
2019-03-05 14:15:25 +03:00
/*
2017-11-20 13:48:43 +03:00
* hid_mouse_ignore_list - mouse devices which should not be handled by the hid layer
*
* There are composite devices for which we want to ignore only a certain
* interface . This is a list of devices for which only the mouse interface will
* be ignored . This allows a dedicated driver to take care of the interface .
*/
static const struct hid_device_id hid_mouse_ignore_list [ ] = {
/* appletouch driver */
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER3_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING2_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING3_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING8_JIS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_ANSI ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_ISO ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRING9_JIS ) } ,
2022-02-03 15:22:09 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J140K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J214K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J223 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J230K ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_WELLSPRINGT2_J152F ) } ,
2017-11-20 13:48:43 +03:00
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY ) } ,
{ }
} ;
bool hid_ignore ( struct hid_device * hdev )
{
2019-06-30 10:16:41 +03:00
int i ;
2017-11-20 13:48:43 +03:00
if ( hdev - > quirks & HID_QUIRK_NO_IGNORE )
return false ;
if ( hdev - > quirks & HID_QUIRK_IGNORE )
return true ;
switch ( hdev - > vendor ) {
case USB_VENDOR_ID_CODEMERCS :
/* ignore all Code Mercenaries IOWarrior devices */
if ( hdev - > product > = USB_DEVICE_ID_CODEMERCS_IOW_FIRST & &
hdev - > product < = USB_DEVICE_ID_CODEMERCS_IOW_LAST )
return true ;
break ;
case USB_VENDOR_ID_LOGITECH :
if ( hdev - > product > = USB_DEVICE_ID_LOGITECH_HARMONY_FIRST & &
hdev - > product < = USB_DEVICE_ID_LOGITECH_HARMONY_LAST )
return true ;
/*
* The Keene FM transmitter USB device has the same USB ID as
* the Logitech AudioHub Speaker , but it should ignore the hid .
* Check if the name is that of the Keene device .
* For reference : the name of the AudioHub is
* " HOLTEK AudioHub Speaker " .
*/
if ( hdev - > product = = USB_DEVICE_ID_LOGITECH_AUDIOHUB & &
! strcmp ( hdev - > name , " HOLTEK B-LINK USB Audio " ) )
return true ;
break ;
case USB_VENDOR_ID_SOUNDGRAPH :
if ( hdev - > product > = USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST & &
hdev - > product < = USB_DEVICE_ID_SOUNDGRAPH_IMON_LAST )
return true ;
break ;
case USB_VENDOR_ID_HANWANG :
if ( hdev - > product > = USB_DEVICE_ID_HANWANG_TABLET_FIRST & &
hdev - > product < = USB_DEVICE_ID_HANWANG_TABLET_LAST )
return true ;
break ;
case USB_VENDOR_ID_JESS :
if ( hdev - > product = = USB_DEVICE_ID_JESS_YUREX & &
hdev - > type = = HID_TYPE_USBNONE )
return true ;
break ;
case USB_VENDOR_ID_VELLEMAN :
/* These are not HID devices. They are handled by comedi. */
if ( ( hdev - > product > = USB_DEVICE_ID_VELLEMAN_K8055_FIRST & &
hdev - > product < = USB_DEVICE_ID_VELLEMAN_K8055_LAST ) | |
( hdev - > product > = USB_DEVICE_ID_VELLEMAN_K8061_FIRST & &
hdev - > product < = USB_DEVICE_ID_VELLEMAN_K8061_LAST ) )
return true ;
break ;
case USB_VENDOR_ID_ATMEL_V_USB :
/* Masterkit MA901 usb radio based on Atmel tiny85 chip and
* it has the same USB ID as many Atmel V - USB devices . This
* usb radio is handled by radio - ma901 . c driver so we want
* ignore the hid . Check the name , bus , product and ignore
* if we have MA901 usb radio .
*/
if ( hdev - > product = = USB_DEVICE_ID_ATMEL_V_USB & &
hdev - > bus = = BUS_USB & &
strncmp ( hdev - > name , " www.masterkit.ru MA901 " , 22 ) = = 0 )
return true ;
break ;
2018-01-17 23:05:55 +03:00
case USB_VENDOR_ID_ELAN :
/*
2019-06-30 10:16:41 +03:00
* Blacklist of everything that gets handled by the elan_i2c
* input driver . This avoids disabling valid touchpads and
* other ELAN devices .
2018-01-17 23:05:55 +03:00
*/
2019-06-30 10:16:41 +03:00
if ( ( hdev - > product = = 0x0401 | | hdev - > product = = 0x0400 ) )
for ( i = 0 ; strlen ( elan_acpi_id [ i ] . id ) ; + + i )
if ( ! strncmp ( hdev - > name , elan_acpi_id [ i ] . id ,
strlen ( elan_acpi_id [ i ] . id ) ) )
return true ;
2018-01-17 23:05:55 +03:00
break ;
2017-11-20 13:48:43 +03:00
}
if ( hdev - > type = = HID_TYPE_USBMOUSE & &
hid_match_id ( hdev , hid_mouse_ignore_list ) )
return true ;
return ! ! hid_match_id ( hdev , hid_ignore_list ) ;
}
EXPORT_SYMBOL_GPL ( hid_ignore ) ;
2017-11-20 13:48:41 +03:00
/* Dynamic HID quirks list - specified at runtime */
struct quirks_list_struct {
struct hid_device_id hid_bl_item ;
struct list_head node ;
} ;
static LIST_HEAD ( dquirks_list ) ;
static DEFINE_MUTEX ( dquirks_lock ) ;
/* Runtime ("dynamic") quirks manipulation functions */
/**
2021-01-19 23:07:23 +03:00
* hid_exists_dquirk - find any dynamic quirks for a HID device
2017-11-20 13:48:41 +03:00
* @ hdev : the HID device to match
*
* Description :
* Scans dquirks_list for a matching dynamic quirk and returns
* the pointer to the relevant struct hid_device_id if found .
* Must be called with a read lock held on dquirks_lock .
*
2021-01-19 23:07:23 +03:00
* Return : NULL if no quirk found , struct hid_device_id * if found .
2017-11-20 13:48:41 +03:00
*/
static struct hid_device_id * hid_exists_dquirk ( const struct hid_device * hdev )
{
struct quirks_list_struct * q ;
struct hid_device_id * bl_entry = NULL ;
list_for_each_entry ( q , & dquirks_list , node ) {
if ( hid_match_one_id ( hdev , & q - > hid_bl_item ) ) {
bl_entry = & q - > hid_bl_item ;
break ;
}
}
if ( bl_entry ! = NULL )
HID: quirks: use correct format chars in dbg_hid
When building with -Wformat, clang warns:
drivers/hid/hid-quirks.c:1075:27: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
bl_entry->driver_data, bl_entry->vendor,
^~~~~~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
drivers/hid/hid-quirks.c:1076:4: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
bl_entry->product);
^~~~~~~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
drivers/hid/hid-quirks.c:1242:12: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
quirks, hdev->vendor, hdev->product);
^~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
drivers/hid/hid-quirks.c:1242:26: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
quirks, hdev->vendor, hdev->product);
^~~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
4 warnings generated.
This patch fixes the format strings to use the correct format type for unsigned
ints.
Link: https://github.com/ClangBuiltLinux/linux/issues/378
Signed-off-by: Louis Taylor <louis@kragniz.eu>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
2019-02-27 14:07:20 +03:00
dbg_hid ( " Found dynamic quirk 0x%lx for HID device 0x%04x:0x%04x \n " ,
2017-11-20 13:48:41 +03:00
bl_entry - > driver_data , bl_entry - > vendor ,
bl_entry - > product ) ;
return bl_entry ;
}
/**
2021-01-19 23:07:23 +03:00
* hid_modify_dquirk - add / replace a HID quirk
2017-11-20 13:48:41 +03:00
* @ id : the HID device to match
* @ quirks : the unsigned long quirks value to add / replace
*
* Description :
* If an dynamic quirk exists in memory for this device , replace its
* quirks value with what was provided . Otherwise , add the quirk
* to the dynamic quirks list .
*
2021-01-19 23:07:23 +03:00
* Return : 0 OK , - error on failure .
2017-11-20 13:48:41 +03:00
*/
static int hid_modify_dquirk ( const struct hid_device_id * id ,
const unsigned long quirks )
{
struct hid_device * hdev ;
struct quirks_list_struct * q_new , * q ;
int list_edited = 0 ;
int ret = 0 ;
hdev = kzalloc ( sizeof ( * hdev ) , GFP_KERNEL ) ;
if ( ! hdev )
return - ENOMEM ;
q_new = kmalloc ( sizeof ( struct quirks_list_struct ) , GFP_KERNEL ) ;
if ( ! q_new ) {
ret = - ENOMEM ;
goto out ;
}
hdev - > bus = q_new - > hid_bl_item . bus = id - > bus ;
hdev - > group = q_new - > hid_bl_item . group = id - > group ;
hdev - > vendor = q_new - > hid_bl_item . vendor = id - > vendor ;
hdev - > product = q_new - > hid_bl_item . product = id - > product ;
q_new - > hid_bl_item . driver_data = quirks ;
mutex_lock ( & dquirks_lock ) ;
list_for_each_entry ( q , & dquirks_list , node ) {
if ( hid_match_one_id ( hdev , & q - > hid_bl_item ) ) {
list_replace ( & q - > node , & q_new - > node ) ;
kfree ( q ) ;
list_edited = 1 ;
break ;
}
}
if ( ! list_edited )
list_add_tail ( & q_new - > node , & dquirks_list ) ;
mutex_unlock ( & dquirks_lock ) ;
out :
kfree ( hdev ) ;
return ret ;
}
/**
2021-01-19 23:07:23 +03:00
* hid_remove_all_dquirks - remove all runtime HID quirks from memory
2017-11-20 13:48:41 +03:00
* @ bus : bus to match against . Use HID_BUS_ANY if all need to be removed .
*
* Description :
* Free all memory associated with dynamic quirks - called before
* module unload .
*
*/
static void hid_remove_all_dquirks ( __u16 bus )
{
struct quirks_list_struct * q , * temp ;
mutex_lock ( & dquirks_lock ) ;
list_for_each_entry_safe ( q , temp , & dquirks_list , node ) {
if ( bus = = HID_BUS_ANY | | bus = = q - > hid_bl_item . bus ) {
list_del ( & q - > node ) ;
kfree ( q ) ;
}
}
mutex_unlock ( & dquirks_lock ) ;
}
/**
2021-01-19 23:07:23 +03:00
* hid_quirks_init - apply HID quirks specified at module load time
* @ quirks_param : array of quirks strings ( vendor : product : quirks )
* @ bus : bus type
* @ count : number of quirks to check
2017-11-20 13:48:41 +03:00
*/
int hid_quirks_init ( char * * quirks_param , __u16 bus , int count )
{
struct hid_device_id id = { 0 } ;
int n = 0 , m ;
unsigned short int vendor , product ;
u32 quirks ;
id . bus = bus ;
for ( ; n < count & & quirks_param [ n ] ; n + + ) {
m = sscanf ( quirks_param [ n ] , " 0x%hx:0x%hx:0x%x " ,
& vendor , & product , & quirks ) ;
id . vendor = ( __u16 ) vendor ;
id . product = ( __u16 ) product ;
if ( m ! = 3 | |
hid_modify_dquirk ( & id , quirks ) ! = 0 ) {
pr_warn ( " Could not parse HID quirk module param %s \n " ,
quirks_param [ n ] ) ;
}
}
return 0 ;
}
EXPORT_SYMBOL_GPL ( hid_quirks_init ) ;
/**
2021-01-19 23:07:23 +03:00
* hid_quirks_exit - release memory associated with dynamic_quirks
2017-11-20 13:48:41 +03:00
* @ bus : a bus to match against
*
* Description :
* Release all memory associated with dynamic quirks for a given bus .
* Called upon module unload .
* Use HID_BUS_ANY to remove all dynamic quirks .
*
* Returns : nothing
*/
void hid_quirks_exit ( __u16 bus )
{
hid_remove_all_dquirks ( bus ) ;
}
EXPORT_SYMBOL_GPL ( hid_quirks_exit ) ;
/**
2021-01-19 23:07:23 +03:00
* hid_gets_squirk - return any static quirks for a HID device
2017-11-20 13:48:41 +03:00
* @ hdev : the HID device to match
*
* Description :
* Given a HID device , return a pointer to the quirked hid_device_id entry
* associated with that device .
*
2021-01-19 23:07:23 +03:00
* Return : the quirks .
2017-11-20 13:48:41 +03:00
*/
2017-11-20 13:48:42 +03:00
static unsigned long hid_gets_squirk ( const struct hid_device * hdev )
2017-11-20 13:48:41 +03:00
{
const struct hid_device_id * bl_entry ;
2023-02-08 02:03:30 +03:00
unsigned long quirks = hdev - > initial_quirks ;
2017-11-20 13:48:41 +03:00
2017-11-20 13:48:43 +03:00
if ( hid_match_id ( hdev , hid_ignore_list ) )
quirks | = HID_QUIRK_IGNORE ;
2017-11-20 13:48:42 +03:00
if ( hid_match_id ( hdev , hid_have_special_driver ) )
quirks | = HID_QUIRK_HAVE_SPECIAL_DRIVER ;
2017-11-20 13:48:41 +03:00
2017-11-20 13:48:42 +03:00
bl_entry = hid_match_id ( hdev , hid_quirks ) ;
2017-11-20 13:48:41 +03:00
if ( bl_entry ! = NULL )
2017-11-20 13:48:42 +03:00
quirks | = bl_entry - > driver_data ;
if ( quirks )
HID: quirks: use correct format chars in dbg_hid
When building with -Wformat, clang warns:
drivers/hid/hid-quirks.c:1075:27: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
bl_entry->driver_data, bl_entry->vendor,
^~~~~~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
drivers/hid/hid-quirks.c:1076:4: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
bl_entry->product);
^~~~~~~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
drivers/hid/hid-quirks.c:1242:12: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
quirks, hdev->vendor, hdev->product);
^~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
drivers/hid/hid-quirks.c:1242:26: warning: format specifies type
'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
[-Wformat]
quirks, hdev->vendor, hdev->product);
^~~~~~~~~~~~~
./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
~~~~~~ ^~~
4 warnings generated.
This patch fixes the format strings to use the correct format type for unsigned
ints.
Link: https://github.com/ClangBuiltLinux/linux/issues/378
Signed-off-by: Louis Taylor <louis@kragniz.eu>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
2019-02-27 14:07:20 +03:00
dbg_hid ( " Found squirk 0x%lx for HID device 0x%04x:0x%04x \n " ,
2017-11-20 13:48:42 +03:00
quirks , hdev - > vendor , hdev - > product ) ;
return quirks ;
2017-11-20 13:48:41 +03:00
}
/**
2021-01-19 23:07:23 +03:00
* hid_lookup_quirk - return any quirks associated with a HID device
2017-11-20 13:48:41 +03:00
* @ hdev : the HID device to look for
*
* Description :
* Given a HID device , return any quirks associated with that device .
*
2021-01-19 23:07:23 +03:00
* Return : an unsigned long quirks value .
2017-11-20 13:48:41 +03:00
*/
unsigned long hid_lookup_quirk ( const struct hid_device * hdev )
{
unsigned long quirks = 0 ;
const struct hid_device_id * quirk_entry = NULL ;
/* NCR devices must not be queried for reports */
if ( hdev - > bus = = BUS_USB & &
hdev - > vendor = = USB_VENDOR_ID_NCR & &
hdev - > product > = USB_DEVICE_ID_NCR_FIRST & &
hdev - > product < = USB_DEVICE_ID_NCR_LAST )
return HID_QUIRK_NO_INIT_REPORTS ;
2017-10-04 13:29:57 +03:00
/* These devices must be ignored if version (bcdDevice) is too old */
if ( hdev - > bus = = BUS_USB & & hdev - > vendor = = USB_VENDOR_ID_JABRA ) {
switch ( hdev - > product ) {
case USB_DEVICE_ID_JABRA_SPEAK_410 :
if ( hdev - > version < 0x0111 )
return HID_QUIRK_IGNORE ;
break ;
case USB_DEVICE_ID_JABRA_SPEAK_510 :
if ( hdev - > version < 0x0214 )
return HID_QUIRK_IGNORE ;
break ;
}
}
2017-11-20 13:48:41 +03:00
mutex_lock ( & dquirks_lock ) ;
quirk_entry = hid_exists_dquirk ( hdev ) ;
if ( quirk_entry )
quirks = quirk_entry - > driver_data ;
2017-11-20 13:48:42 +03:00
else
quirks = hid_gets_squirk ( hdev ) ;
2017-11-20 13:48:41 +03:00
mutex_unlock ( & dquirks_lock ) ;
return quirks ;
}
EXPORT_SYMBOL_GPL ( hid_lookup_quirk ) ;