Changes from the patchset I sent last night are:
- rebased against current mm branch of hid.git
- fixed whitespace
- renamed 'equirks' to 'dquirks'
- renamed struct hid_quirk_name to hid_quirk_type
----
My application for this code is to switch quirks at runtime for a data
acquisition device. This device has at least two drivers written for it:
one kernel module driver requiring HID_QUIRK_IGNORE; one userspace driver
based on hiddev requiring HID_QUIRK_HIDDEV. Maybe others will find this
code useful.
Patches 1-2 are cleanup and reorganization. The primary changes move USB
HID quirk handling into its own files, hid-quirks.[ch]. There should be
no behavioral changes after 1-2 are applied. These patches touch the
Bluetooth HID code lightly, since it references HID quirk #defines.
Patches 3-5 implement dynamic quirk handling ("dquirks" for dynamic
quirks) and support changing these quirks with a module parameter,
'quirks'. Jiri, this uses a separate list as we discussed. Documentation
is in kernel-parameters.txt.
Patch 6 implements a ConfigFS-based interface to add/modify/remove dynamic
quirks while the usbhid module is loaded. We'd discussed using sysfs for
this, but upon further consideration, blacklists don't seem to fit into
the sysfs model very well. ConfigFS seemed like a better approach. Not
that I'm entirely happy with it - it requires a lot of code/data. oh
well. Documentation is included as part of the Kconfig option.
Patches against current mm branch of hid.git.
- Paul