• Pekka Sarnila's avatar
    HID: fixup fullspeed interval on highspeed Afatech DVB-T IR kbd · f345c37c
    Pekka Sarnila authored
    Many vendors highspeed devices give erroneously fullspeed interval value in
    endpoint descriptor for interrupt endpoints. This quirk fixes up that by
    recalculating the right value for highspeed device.
    
    At the time of hid configuration this quirk calculates which highspeed interval
    value gives same interval delay as, or next smaller then, what it would be if
    the original value would be interpreted as fullspeed value. In subsequent urbs
    that new value is used instead.
    
    Forming the 'hid->name' in usb_hid_config() was moved up to accommodate more
    descriptive printk reporting the fixup.
    
    In this patch the quirk is set for one such device: Afatech DVB-T 2 infrared
    HID-keyboard. It reports value 16 which means 4,069s in highspeed while
    obviously 16ms was intended. In this case quirk calculates new value to be 8
    which gives when interpreted as highspeed value 16ms as wanted. The behavior of
    the device was verified to be what expected both before and after the patch.
    Signed-off-by: default avatarPekka Sarnila <sarnila@adit.fi>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    f345c37c
hid-quirks.c 48 KB