• Benjamin Tissoires's avatar
    HID: core: remove the absolute need of hid_have_special_driver[] · e04a0442
    Benjamin Tissoires authored
    Most HID devices behave properly when they are used with hid-generic.
    Since kernel v4.12, we do not poll for input reports at plug in, so
    hid-generic should behave properly with all HID devices.
    
    There has been a long standing list of HID devices that have a special
    driver. It used to be just a few, but with time, this list went too big,
    and we can not ask users to know which HID special driver will pick up
    their device.
    
    We can teach hid-generic to be nice with others. If a device is not
    explicitly marked with HID_QUIRK_HAVE_SPECIAL_DRIVER, we can allow
    hid-generic to pick up the device as long as no other loaded HID driver
    will match the device.
    
    When the special driver appears, hid-generic can step back and let
    the special driver handling the device. In case this special driver
    is removed, this good old pal of hid-generic will rebind to the device.
    
    This basically makes the list hid_have_special_driver[] useless. It
    still allows to not see a hid-generic driver bound and removed during
    boot, so we can keep it around.
    
    This will also help other people to have a special HID driver without
    the need of recompiling hid-core.
    Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    e04a0442
hid-generic.c 2.6 KB