diff options
Diffstat (limited to 'drivers/media/IR/ir-keytable.c')
| -rw-r--r-- | drivers/media/IR/ir-keytable.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/IR/ir-keytable.c b/drivers/media/IR/ir-keytable.c index 7e82a9df726b..7961d59f5cac 100644 --- a/drivers/media/IR/ir-keytable.c +++ b/drivers/media/IR/ir-keytable.c | |||
| @@ -319,7 +319,7 @@ static void ir_timer_keyup(unsigned long cookie) | |||
| 319 | * a keyup event might follow immediately after the keydown. | 319 | * a keyup event might follow immediately after the keydown. |
| 320 | */ | 320 | */ |
| 321 | spin_lock_irqsave(&ir->keylock, flags); | 321 | spin_lock_irqsave(&ir->keylock, flags); |
| 322 | if (time_is_after_eq_jiffies(ir->keyup_jiffies)) | 322 | if (time_is_before_eq_jiffies(ir->keyup_jiffies)) |
| 323 | ir_keyup(ir); | 323 | ir_keyup(ir); |
| 324 | spin_unlock_irqrestore(&ir->keylock, flags); | 324 | spin_unlock_irqrestore(&ir->keylock, flags); |
| 325 | } | 325 | } |
| @@ -510,6 +510,13 @@ int __ir_input_register(struct input_dev *input_dev, | |||
| 510 | (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_IR_RAW) ? | 510 | (ir_dev->props && ir_dev->props->driver_type == RC_DRIVER_IR_RAW) ? |
| 511 | " in raw mode" : ""); | 511 | " in raw mode" : ""); |
| 512 | 512 | ||
| 513 | /* | ||
| 514 | * Default delay of 250ms is too short for some protocols, expecially | ||
| 515 | * since the timeout is currently set to 250ms. Increase it to 500ms, | ||
| 516 | * to avoid wrong repetition of the keycodes. | ||
| 517 | */ | ||
| 518 | input_dev->rep[REP_DELAY] = 500; | ||
| 519 | |||
| 513 | return 0; | 520 | return 0; |
| 514 | 521 | ||
| 515 | out_event: | 522 | out_event: |
