summaryrefslogtreecommitdiff
path: root/drivers/media/IR/ir-raw-event.c
diff options
context:
space:
mode:
authorDavid Härdeman <david@hardeman.nu>2010-04-02 22:58:29 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-19 19:56:54 +0400
commita374fef4437abd0a1ee27afe0cca7a55425c1c3c (patch)
tree652e36573ac29d360d7f59cfb64a160c08390a54 /drivers/media/IR/ir-raw-event.c
parent354389467b6b2a3b36666b6e933d78bbd9e23577 (diff)
downloadlinux-a374fef4437abd0a1ee27afe0cca7a55425c1c3c.tar.xz
V4L/DVB: ir-core: improve keyup/keydown logic
Rewrites the keyup/keydown logic in drivers/media/IR/ir-keytable.c. All knowledge of keystates etc is now internal to ir-keytable.c and not scattered around ir-raw-event.c and ir-nec-decoder.c (where it doesn't belong). In addition, I've changed the API slightly so that ir_input_dev is passed as the first argument rather than input_dev. If we're ever going to support multiple keytables we need to move towards making ir_input_dev the main interface from a driver POV and obscure away the input_dev as an implementational detail in ir-core. Signed-off-by: David Härdeman <david@hardeman.nu> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/IR/ir-raw-event.c')
-rw-r--r--drivers/media/IR/ir-raw-event.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/drivers/media/IR/ir-raw-event.c b/drivers/media/IR/ir-raw-event.c
index 371d88e5a586..59f20541b03e 100644
--- a/drivers/media/IR/ir-raw-event.c
+++ b/drivers/media/IR/ir-raw-event.c
@@ -53,13 +53,6 @@ static spinlock_t ir_raw_handler_lock;
/* Used to load the decoders */
static struct work_struct wq_load;
-static void ir_keyup_timer(unsigned long data)
-{
- struct input_dev *input_dev = (struct input_dev *)data;
-
- ir_keyup(input_dev);
-}
-
int ir_raw_event_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir = input_get_drvdata(input_dev);
@@ -72,11 +65,6 @@ int ir_raw_event_register(struct input_dev *input_dev)
size = sizeof(struct ir_raw_event) * MAX_IR_EVENT_SIZE * 2;
size = roundup_pow_of_two(size);
- init_timer(&ir->raw->timer_keyup);
- ir->raw->timer_keyup.function = ir_keyup_timer;
- ir->raw->timer_keyup.data = (unsigned long)input_dev;
- set_bit(EV_REP, input_dev->evbit);
-
rc = kfifo_alloc(&ir->raw->kfifo, size, GFP_KERNEL);
if (rc < 0) {
kfree(ir->raw);
@@ -103,8 +91,6 @@ void ir_raw_event_unregister(struct input_dev *input_dev)
if (!ir->raw)
return;
- del_timer_sync(&ir->raw->timer_keyup);
-
RUN_DECODER(raw_unregister, input_dev);
kfifo_free(&ir->raw->kfifo);