Lines Matching +full:product +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0-or-later
6 * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
7 * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc
8 * Copyright (c) 2006-2007 Jiri Kosina
19 #include <linux/input/elan-i2c-ids.h>
21 #include "hid-ids.h"
24 * Alphabetically sorted by vendor then product.
221 * Please note that for multitouch devices (driven by hid-multitouch driver),
227 * physical is found inside a usage page of type sensor, hid-sensor-hub will be
916 * hid_mouse_ignore_list - mouse devices which should not be handled by the hid layer
986 if (hdev->quirks & HID_QUIRK_NO_IGNORE) in hid_ignore()
988 if (hdev->quirks & HID_QUIRK_IGNORE) in hid_ignore()
991 switch (hdev->vendor) { in hid_ignore()
994 if (hdev->product >= USB_DEVICE_ID_CODEMERCS_IOW_FIRST && in hid_ignore()
995 hdev->product <= USB_DEVICE_ID_CODEMERCS_IOW_LAST) in hid_ignore()
999 if (hdev->product >= USB_DEVICE_ID_LOGITECH_HARMONY_FIRST && in hid_ignore()
1000 hdev->product <= USB_DEVICE_ID_LOGITECH_HARMONY_LAST) in hid_ignore()
1003 * The Keene FM transmitter USB device has the same USB ID as in hid_ignore()
1009 if (hdev->product == USB_DEVICE_ID_LOGITECH_AUDIOHUB && in hid_ignore()
1010 !strcmp(hdev->name, "HOLTEK B-LINK USB Audio ")) in hid_ignore()
1014 if (hdev->product >= USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST && in hid_ignore()
1015 hdev->product <= USB_DEVICE_ID_SOUNDGRAPH_IMON_LAST) in hid_ignore()
1019 if (hdev->product >= USB_DEVICE_ID_HANWANG_TABLET_FIRST && in hid_ignore()
1020 hdev->product <= USB_DEVICE_ID_HANWANG_TABLET_LAST) in hid_ignore()
1024 if (hdev->product == USB_DEVICE_ID_JESS_YUREX && in hid_ignore()
1025 hdev->type == HID_TYPE_USBNONE) in hid_ignore()
1030 if ((hdev->product >= USB_DEVICE_ID_VELLEMAN_K8055_FIRST && in hid_ignore()
1031 hdev->product <= USB_DEVICE_ID_VELLEMAN_K8055_LAST) || in hid_ignore()
1032 (hdev->product >= USB_DEVICE_ID_VELLEMAN_K8061_FIRST && in hid_ignore()
1033 hdev->product <= USB_DEVICE_ID_VELLEMAN_K8061_LAST)) in hid_ignore()
1038 * it has the same USB ID as many Atmel V-USB devices. This in hid_ignore()
1039 * usb radio is handled by radio-ma901.c driver so we want in hid_ignore()
1040 * ignore the hid. Check the name, bus, product and ignore in hid_ignore()
1043 if (hdev->product == USB_DEVICE_ID_ATMEL_V_USB && in hid_ignore()
1044 hdev->bus == BUS_USB && in hid_ignore()
1045 strncmp(hdev->name, "www.masterkit.ru MA901", 22) == 0) in hid_ignore()
1054 if ((hdev->product == 0x0401 || hdev->product == 0x0400)) in hid_ignore()
1055 for (i = 0; strlen(elan_acpi_id[i].id); ++i) in hid_ignore()
1056 if (!strncmp(hdev->name, elan_acpi_id[i].id, in hid_ignore()
1057 strlen(elan_acpi_id[i].id))) in hid_ignore()
1062 if (hdev->type == HID_TYPE_USBMOUSE && in hid_ignore()
1063 hdev->quirks & HID_QUIRK_IGNORE_MOUSE) in hid_ignore()
1070 /* Dynamic HID quirks list - specified at runtime */
1082 * hid_exists_dquirk - find any dynamic quirks for a HID device
1098 if (hid_match_one_id(hdev, &q->hid_bl_item)) { in hid_exists_dquirk()
1099 bl_entry = &q->hid_bl_item; in hid_exists_dquirk()
1106 bl_entry->driver_data, bl_entry->vendor, in hid_exists_dquirk()
1107 bl_entry->product); in hid_exists_dquirk()
1114 * hid_modify_dquirk - add/replace a HID quirk
1115 * @id: the HID device to match
1123 * Return: 0 OK, -error on failure.
1125 static int hid_modify_dquirk(const struct hid_device_id *id, in hid_modify_dquirk() argument
1135 return -ENOMEM; in hid_modify_dquirk()
1139 ret = -ENOMEM; in hid_modify_dquirk()
1143 hdev->bus = q_new->hid_bl_item.bus = id->bus; in hid_modify_dquirk()
1144 hdev->group = q_new->hid_bl_item.group = id->group; in hid_modify_dquirk()
1145 hdev->vendor = q_new->hid_bl_item.vendor = id->vendor; in hid_modify_dquirk()
1146 hdev->product = q_new->hid_bl_item.product = id->product; in hid_modify_dquirk()
1147 q_new->hid_bl_item.driver_data = quirks; in hid_modify_dquirk()
1153 if (hid_match_one_id(hdev, &q->hid_bl_item)) { in hid_modify_dquirk()
1155 list_replace(&q->node, &q_new->node); in hid_modify_dquirk()
1165 list_add_tail(&q_new->node, &dquirks_list); in hid_modify_dquirk()
1175 * hid_remove_all_dquirks - remove all runtime HID quirks from memory
1179 * Free all memory associated with dynamic quirks - called before
1189 if (bus == HID_BUS_ANY || bus == q->hid_bl_item.bus) { in hid_remove_all_dquirks()
1190 list_del(&q->node); in hid_remove_all_dquirks()
1199 * hid_quirks_init - apply HID quirks specified at module load time
1200 * @quirks_param: array of quirks strings (vendor:product:quirks)
1206 struct hid_device_id id = { 0 }; in hid_quirks_init() local
1208 unsigned short int vendor, product; in hid_quirks_init() local
1211 id.bus = bus; in hid_quirks_init()
1216 &vendor, &product, &quirks); in hid_quirks_init()
1218 id.vendor = (__u16)vendor; in hid_quirks_init()
1219 id.product = (__u16)product; in hid_quirks_init()
1222 hid_modify_dquirk(&id, quirks) != 0) { in hid_quirks_init()
1233 * hid_quirks_exit - release memory associated with dynamic_quirks
1250 * hid_gets_squirk - return any static quirks for a HID device
1262 unsigned long quirks = hdev->initial_quirks; in hid_gets_squirk()
1275 quirks |= bl_entry->driver_data; in hid_gets_squirk()
1279 quirks, hdev->vendor, hdev->product); in hid_gets_squirk()
1284 * hid_lookup_quirk - return any quirks associated with a HID device
1298 if (hdev->bus == BUS_USB && in hid_lookup_quirk()
1299 hdev->vendor == USB_VENDOR_ID_NCR && in hid_lookup_quirk()
1300 hdev->product >= USB_DEVICE_ID_NCR_FIRST && in hid_lookup_quirk()
1301 hdev->product <= USB_DEVICE_ID_NCR_LAST) in hid_lookup_quirk()
1305 if (hdev->bus == BUS_USB && hdev->vendor == USB_VENDOR_ID_JABRA) { in hid_lookup_quirk()
1306 switch (hdev->product) { in hid_lookup_quirk()
1308 if (hdev->version < 0x0111) in hid_lookup_quirk()
1312 if (hdev->version < 0x0214) in hid_lookup_quirk()
1321 quirks = quirk_entry->driver_data; in hid_lookup_quirk()