• David Härdeman's avatar
    V4L/DVB: drivers/media/IR - improve keytable code · b3074c0a
    David Härdeman authored
    The attached patch rewrites much of the keytable code in
    drivers/media/IR/ir-keytable.c.
    
    The scancodes are now inserted into the array in sorted
    order which allows for a binary search on lookup.
    
    The code has also been shrunk by about 150 lines.
    
    In addition it fixes the following bugs:
    
    Any use of ir_seek_table() was racy.
    
    ir_dev->driver_name is leaked between ir_input_register() and
    ir_input_unregister().
    
    ir_setkeycode() unconditionally does clear_bit() on dev->keybit
    when removing a mapping, but there might be another mapping with
    a different scancode and the same keycode.
    
    This version has been updated to incorporate patch feedback from
    Mauro Carvalho Chehab.
    
    [mchehab@redhat.com: Fix a conflict with RC keytable breakup patches and input changes]
    Signed-off-by: default avatarDavid Härdeman <david@hardeman.nu>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    b3074c0a
ir-keytable.c 12 KB