diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-input.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-input.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c index c53fd5f9f6b5..d2124f64e4e2 100644 --- a/drivers/media/video/saa7134/saa7134-input.c +++ b/drivers/media/video/saa7134/saa7134-input.c | |||
@@ -97,6 +97,15 @@ static int build_key(struct saa7134_dev *dev) | |||
97 | dprintk("build_key gpio=0x%x mask=0x%x data=%d\n", | 97 | dprintk("build_key gpio=0x%x mask=0x%x data=%d\n", |
98 | gpio, ir->mask_keycode, data); | 98 | gpio, ir->mask_keycode, data); |
99 | 99 | ||
100 | switch (dev->board) { | ||
101 | case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG: | ||
102 | if (data == ir->mask_keycode) | ||
103 | ir_input_nokey(ir->dev, &ir->ir); | ||
104 | else | ||
105 | ir_input_keydown(ir->dev, &ir->ir, data, data); | ||
106 | return 0; | ||
107 | } | ||
108 | |||
100 | if (ir->polling) { | 109 | if (ir->polling) { |
101 | if ((ir->mask_keydown && (0 != (gpio & ir->mask_keydown))) || | 110 | if ((ir->mask_keydown && (0 != (gpio & ir->mask_keydown))) || |
102 | (ir->mask_keyup && (0 == (gpio & ir->mask_keyup)))) { | 111 | (ir->mask_keyup && (0 == (gpio & ir->mask_keyup)))) { |
@@ -586,6 +595,11 @@ int saa7134_input_init1(struct saa7134_dev *dev) | |||
586 | mask_keyup = 0x4000; | 595 | mask_keyup = 0x4000; |
587 | polling = 50; /* ms */ | 596 | polling = 50; /* ms */ |
588 | break; | 597 | break; |
598 | case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG: | ||
599 | ir_codes = ir_codes_kworld_plus_tv_analog; | ||
600 | mask_keycode = 0x7f; | ||
601 | polling = 40; /* ms */ | ||
602 | break; | ||
589 | } | 603 | } |
590 | if (NULL == ir_codes) { | 604 | if (NULL == ir_codes) { |
591 | printk("%s: Oops: IR config error [card=%d]\n", | 605 | printk("%s: Oops: IR config error [card=%d]\n", |