mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
V4L/DVB: drivers/media/IR - improve keytable code
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. [[email protected]: Fix a conflict with RC keytable breakup patches and input changes] Signed-off-by: David Härdeman <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
This commit is contained in:
parent
bdf1c98e42
commit
b3074c0a3f
2 changed files with 191 additions and 331 deletions
|
|
@ -47,7 +47,9 @@ struct ir_scancode {
|
|||
|
||||
struct ir_scancode_table {
|
||||
struct ir_scancode *scan;
|
||||
int size;
|
||||
unsigned int size; /* Max number of entries */
|
||||
unsigned int len; /* Used number of entries */
|
||||
unsigned int alloc; /* Size of *scan in bytes */
|
||||
u64 ir_type;
|
||||
char *name;
|
||||
spinlock_t lock;
|
||||
|
|
|
|||
Loading…
Reference in a new issue