Commit 8222fbe6 authored by Paul Walmsley's avatar Paul Walmsley Committed by Jiri Kosina

USB HID: clarify static quirk handling as squirks

Rename existing quirks handling code that operates over a static array
to "squirks" (short for static quirks) to differentiate it from the
dynamically-allocated quirks that will be introduced in the
next patch.  Add an accessor function specifically for static quirks,
usbhid_exists_squirk().
Signed-off-by: default avatarPaul Walmsley <paul@booyaka.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 2eb5dc30
...@@ -447,6 +447,34 @@ static const struct hid_blacklist { ...@@ -447,6 +447,34 @@ static const struct hid_blacklist {
{ 0, 0 } { 0, 0 }
}; };
/**
* usbhid_exists_squirk: return any static quirks for a USB HID device
* @idVendor: the 16-bit USB vendor ID, in native byteorder
* @idProduct: the 16-bit USB product ID, in native byteorder
*
* Description:
* Given a USB vendor ID and product ID, return a pointer to
* the hid_blacklist entry associated with that device.
*
* Returns: pointer if quirk found, or NULL if no quirks found.
*/
static const struct hid_blacklist *usbhid_exists_squirk(const u16 idVendor,
const u16 idProduct)
{
const struct hid_blacklist *bl_entry = NULL;
int n = 0;
for (; hid_blacklist[n].idVendor; n++)
if (hid_blacklist[n].idVendor == idVendor &&
hid_blacklist[n].idProduct == idProduct)
bl_entry = &hid_blacklist[n];
if (bl_entry != NULL)
dbg("Found squirk 0x%x for USB HID vendor 0x%hx prod 0x%hx\n",
bl_entry->quirks, bl_entry->idVendor,
bl_entry->idProduct);
return bl_entry;
}
/** /**
* usbhid_lookup_quirk: return any quirks associated with a USB HID device * usbhid_lookup_quirk: return any quirks associated with a USB HID device
...@@ -462,7 +490,7 @@ static const struct hid_blacklist { ...@@ -462,7 +490,7 @@ static const struct hid_blacklist {
u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct) u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct)
{ {
u32 quirks = 0; u32 quirks = 0;
int n = 0; const struct hid_blacklist *bl_entry = NULL;
/* Ignore all Wacom devices */ /* Ignore all Wacom devices */
if (idVendor == USB_VENDOR_ID_WACOM) if (idVendor == USB_VENDOR_ID_WACOM)
...@@ -474,10 +502,9 @@ u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct) ...@@ -474,10 +502,9 @@ u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct)
idProduct <= USB_DEVICE_ID_CODEMERCS_IOW_LAST) idProduct <= USB_DEVICE_ID_CODEMERCS_IOW_LAST)
return HID_QUIRK_IGNORE; return HID_QUIRK_IGNORE;
for (; hid_blacklist[n].idVendor; n++) bl_entry = usbhid_exists_squirk(idVendor, idProduct);
if (hid_blacklist[n].idVendor == idVendor && if (bl_entry)
hid_blacklist[n].idProduct == idProduct) quirks = bl_entry->quirks;
quirks = hid_blacklist[n].quirks;
return quirks; return quirks;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment