diff options
author | Michael Krufky <mkrufky@kernellabs.com> | 2009-11-11 13:46:09 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-05 15:41:27 -0500 |
commit | 7fec6fee56def62a53e3bc4db5baf6bca12c3474 (patch) | |
tree | bcfb33cb001b264fd9ad7f0fc2262f7627ef7888 /drivers/media/video/cx23885 | |
parent | 73a5f4196dcdf1f5b0bcfa208cb485c4fde840cc (diff) |
V4L/DVB (13349): cx23885: Enable IR input keypress handling for the Hauppauge WinTV HVR-1290
The IR on the HVR-1290 is identical to that of the HVR-1850
Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 3 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-input.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 632d76a432af..d9d71c8c7941 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
@@ -881,6 +881,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) | |||
881 | /* FIXME: Implement me */ | 881 | /* FIXME: Implement me */ |
882 | break; | 882 | break; |
883 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 883 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
884 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
884 | ret = cx23888_ir_probe(dev); | 885 | ret = cx23888_ir_probe(dev); |
885 | if (ret) | 886 | if (ret) |
886 | break; | 887 | break; |
@@ -899,6 +900,7 @@ void cx23885_ir_fini(struct cx23885_dev *dev) | |||
899 | { | 900 | { |
900 | switch (dev->board) { | 901 | switch (dev->board) { |
901 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 902 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
903 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
902 | dev->pci_irqmask &= ~PCI_MSK_IR; | 904 | dev->pci_irqmask &= ~PCI_MSK_IR; |
903 | cx_clear(PCI_INT_MSK, PCI_MSK_IR); | 905 | cx_clear(PCI_INT_MSK, PCI_MSK_IR); |
904 | cx23888_ir_remove(dev); | 906 | cx23888_ir_remove(dev); |
@@ -911,6 +913,7 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev) | |||
911 | { | 913 | { |
912 | switch (dev->board) { | 914 | switch (dev->board) { |
913 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 915 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
916 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
914 | if (dev->sd_ir && (dev->pci_irqmask & PCI_MSK_IR)) | 917 | if (dev->sd_ir && (dev->pci_irqmask & PCI_MSK_IR)) |
915 | cx_set(PCI_INT_MSK, PCI_MSK_IR); | 918 | cx_set(PCI_INT_MSK, PCI_MSK_IR); |
916 | break; | 919 | break; |
diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c index c208079f4e9d..f000ed787d4e 100644 --- a/drivers/media/video/cx23885/cx23885-input.c +++ b/drivers/media/video/cx23885/cx23885-input.c | |||
@@ -202,6 +202,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events) | |||
202 | 202 | ||
203 | switch (dev->board) { | 203 | switch (dev->board) { |
204 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 204 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
205 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
205 | /* | 206 | /* |
206 | * The only board we handle right now. However other boards | 207 | * The only board we handle right now. However other boards |
207 | * using the CX2388x integrated IR controller should be similar | 208 | * using the CX2388x integrated IR controller should be similar |
@@ -252,6 +253,7 @@ static void cx23885_input_ir_start(struct cx23885_dev *dev) | |||
252 | /* keyup timer set up, if needed */ | 253 | /* keyup timer set up, if needed */ |
253 | switch (dev->board) { | 254 | switch (dev->board) { |
254 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 255 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
256 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
255 | setup_timer(&ir_input->timer_keyup, | 257 | setup_timer(&ir_input->timer_keyup, |
256 | ir_rc5_timer_keyup, /* Not actually RC-5 specific */ | 258 | ir_rc5_timer_keyup, /* Not actually RC-5 specific */ |
257 | (unsigned long) ir_input); | 259 | (unsigned long) ir_input); |
@@ -268,6 +270,7 @@ static void cx23885_input_ir_start(struct cx23885_dev *dev) | |||
268 | v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, ¶ms); | 270 | v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, ¶ms); |
269 | switch (dev->board) { | 271 | switch (dev->board) { |
270 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 272 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
273 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
271 | /* | 274 | /* |
272 | * The IR controller on this board only returns pulse widths. | 275 | * The IR controller on this board only returns pulse widths. |
273 | * Any other mode setting will fail to set up the device. | 276 | * Any other mode setting will fail to set up the device. |
@@ -325,6 +328,7 @@ static void cx23885_input_ir_stop(struct cx23885_dev *dev) | |||
325 | 328 | ||
326 | switch (dev->board) { | 329 | switch (dev->board) { |
327 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 330 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
331 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
328 | del_timer_sync(&ir_input->timer_keyup); | 332 | del_timer_sync(&ir_input->timer_keyup); |
329 | break; | 333 | break; |
330 | } | 334 | } |
@@ -347,6 +351,7 @@ int cx23885_input_init(struct cx23885_dev *dev) | |||
347 | 351 | ||
348 | switch (dev->board) { | 352 | switch (dev->board) { |
349 | case CX23885_BOARD_HAUPPAUGE_HVR1850: | 353 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
354 | case CX23885_BOARD_HAUPPAUGE_HVR1290: | ||
350 | /* Parameters for the grey Hauppauge remote for the HVR-1850 */ | 355 | /* Parameters for the grey Hauppauge remote for the HVR-1850 */ |
351 | ir_codes = &ir_codes_hauppauge_new_table; | 356 | ir_codes = &ir_codes_hauppauge_new_table; |
352 | ir_type = IR_TYPE_RC5; | 357 | ir_type = IR_TYPE_RC5; |