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
*/
/*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation ; either version 2 of the License , or ( at your option )
* any later version .
*/
# include <linux/hid.h>
# include <linux/export.h>
# include <linux/slab.h>
# include <linux/mutex.h>
# 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 } ,
{ 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 } ,
{ 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 } ,
{ 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 } ,
{ 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 } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_GREENASIA , USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD ) , HID_QUIRK_MULTI_INPUT } ,
{ 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 } ,
{ 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 } ,
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 } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2 ) , HID_QUIRK_ALWAYS_POLL } ,
{ 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 } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MGE , USB_DEVICE_ID_MGE_UPS ) , HID_QUIRK_NOGET } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROSOFT , USB_DEVICE_ID_MS_POWER_COVER ) , HID_QUIRK_NO_INIT_REPORTS } ,
{ 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 } ,
{ 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 } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_SAITEK , USB_DEVICE_ID_SAITEK_RUMBLEPAD ) , HID_QUIRK_BADPAD } ,
{ 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 } ,
{ 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 } ,
{ 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 } ,
{ 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 ) } ,
# 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 ) } ,
{ 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 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_APPLE , USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI ) } ,
{ 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 ) } ,
# 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_ASUSTEK , USB_DEVICE_ID_ASUSTEK_T100_KEYBOARD ) } ,
{ 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 ) } ,
{ 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
# if IS_ENABLED(CONFIG_HID_ELECOM)
{ HID_BLUETOOTH_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_BM084 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_DEFT_WIRED ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_DEFT_WIRELESS ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_HUGE_WIRED ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_ELECOM , USB_DEVICE_ID_ELECOM_HUGE_WIRELESS ) } ,
# 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_ITE)
{ HID_USB_DEVICE ( USB_VENDOR_ID_ITE , USB_DEVICE_ID_ITE8595 ) } ,
# 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 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_EASYPEN_I405X ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_MOUSEPEN_I608X ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_MOUSEPEN_I608X_V2 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_EASYPEN_M610X ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_KYE , USB_DEVICE_ID_KYE_PENSKETCH_M912 ) } ,
# 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_LED)
{ HID_USB_DEVICE ( USB_VENDOR_ID_DELCOM , USB_DEVICE_ID_DELCOM_VISUAL_IND ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DREAM_CHEEKY , USB_DEVICE_ID_DREAM_CHEEKY_WN ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_DREAM_CHEEKY , USB_DEVICE_ID_DREAM_CHEEKY_FA ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_MICROCHIP , USB_DEVICE_ID_LUXAFOR ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_RISO_KAGAKU , USB_DEVICE_ID_RI_KA_WEBMAIL ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_THINGM , USB_DEVICE_ID_BLINK1 ) } ,
# 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_S510_RECEIVER_2 ) } ,
{ 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_DINOVO_EDGE ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_DINOVO_MINI ) } ,
{ 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 ) } ,
{ 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_BLUETOOTH_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_T651 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_G920_WHEEL ) } ,
# endif
# if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_LOGITECH , USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2 ) } ,
# 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 ) } ,
# 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 ) } ,
# 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 ) } ,
# 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 ) } ,
{ 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 ) } ,
# endif
# 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_UCLOGIC)
{ HID_USB_DEVICE ( USB_VENDOR_ID_HUION , USB_DEVICE_ID_HUION_TABLET ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_HUION_TABLET ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_PF1209 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_WP5540U ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_WP8060U ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_WP1062 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_WIRELESS_TABLET_TWHL850 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_YIYNOVA_TABLET ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UGEE_TABLET_81 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UGEE_TABLET_45 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UCLOGIC , USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UGEE , USB_DEVICE_ID_UGEE_TABLET_EX07S ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_UGTIZER , USB_DEVICE_ID_UGTIZER_TABLET_GP0610 ) } ,
# 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_WALTOP)
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_SLIM_TABLET_5_8_INCH ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_SLIM_TABLET_12_1_INCH ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_Q_PAD ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_PID_0038 ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH ) } ,
{ HID_USB_DEVICE ( USB_VENDOR_ID_WALTOP , USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET ) } ,
# 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_I2C_DEVICE ( USB_VENDOR_ID_ELAN , 0x0400 ) } ,
{ HID_I2C_DEVICE ( USB_VENDOR_ID_ELAN , 0x0401 ) } ,
{ 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 ) } ,
{ 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 ) } ,
# 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 ) } ,
{ }
} ;
/**
* 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 ) } ,
{ 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 )
{
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 ;
}
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 */
/**
* hid_exists_dquirk : find any dynamic quirks for a HID device
* @ 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 .
*
* Returns : NULL if no quirk found , struct hid_device_id * if found .
*/
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 )
dbg_hid ( " Found dynamic quirk 0x%lx for HID device 0x%hx:0x%hx \n " ,
bl_entry - > driver_data , bl_entry - > vendor ,
bl_entry - > product ) ;
return bl_entry ;
}
/**
* hid_modify_dquirk : add / replace a HID quirk
* @ 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 .
*
* Returns : 0 OK , - error on failure .
*/
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 ;
}
/**
* hid_remove_all_dquirks : remove all runtime HID quirks from memory
* @ 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 ) ;
}
/**
* hid_quirks_init : apply HID quirks specified at module load time
*/
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 ) ;
/**
* hid_quirks_exit : release memory associated with dynamic_quirks
* @ 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 ) ;
/**
2017-11-20 13:48:42 +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 .
*
2017-11-20 13:48:42 +03:00
* Returns : 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 ;
2017-11-20 13:48:42 +03:00
unsigned long quirks = 0 ;
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 )
2017-11-20 13:48:41 +03:00
dbg_hid ( " Found squirk 0x%lx for HID device 0x%hx:0x%hx \n " ,
2017-11-20 13:48:42 +03:00
quirks , hdev - > vendor , hdev - > product ) ;
return quirks ;
2017-11-20 13:48:41 +03:00
}
/**
* hid_lookup_quirk : return any quirks associated with a HID device
* @ hdev : the HID device to look for
*
* Description :
* Given a HID device , return any quirks associated with that device .
*
* Returns : an unsigned long quirks value .
*/
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 ) ;