|
@@ -274,7 +274,6 @@ static unsigned int ir_update_mapping(struct rc_dev *dev,
|
|
|
unsigned int new_keycode)
|
|
|
{
|
|
|
int old_keycode = rc_map->scan[index].keycode;
|
|
|
- int i;
|
|
|
|
|
|
/* Did the user wish to remove the mapping? */
|
|
|
if (new_keycode == KEY_RESERVED || new_keycode == KEY_UNKNOWN) {
|
|
@@ -289,20 +288,9 @@ static unsigned int ir_update_mapping(struct rc_dev *dev,
|
|
|
old_keycode == KEY_RESERVED ? "New" : "Replacing",
|
|
|
rc_map->scan[index].scancode, new_keycode);
|
|
|
rc_map->scan[index].keycode = new_keycode;
|
|
|
- __set_bit(new_keycode, dev->input_dev->keybit);
|
|
|
}
|
|
|
|
|
|
if (old_keycode != KEY_RESERVED) {
|
|
|
- /* A previous mapping was updated... */
|
|
|
- __clear_bit(old_keycode, dev->input_dev->keybit);
|
|
|
- /* ... but another scancode might use the same keycode */
|
|
|
- for (i = 0; i < rc_map->len; i++) {
|
|
|
- if (rc_map->scan[i].keycode == old_keycode) {
|
|
|
- __set_bit(old_keycode, dev->input_dev->keybit);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/* Possibly shrink the keytable, failure is not a problem */
|
|
|
ir_resize_table(dev, rc_map, GFP_ATOMIC);
|
|
|
}
|
|
@@ -1759,6 +1747,8 @@ static int rc_prepare_rx_device(struct rc_dev *dev)
|
|
|
set_bit(EV_REP, dev->input_dev->evbit);
|
|
|
set_bit(EV_MSC, dev->input_dev->evbit);
|
|
|
set_bit(MSC_SCAN, dev->input_dev->mscbit);
|
|
|
+ bitmap_fill(dev->input_dev->keybit, KEY_CNT);
|
|
|
+
|
|
|
if (dev->open)
|
|
|
dev->input_dev->open = ir_open;
|
|
|
if (dev->close)
|