aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDjuri Baars <dsbaars@gmail.com>2012-07-28 08:01:38 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-07-30 23:18:58 -0400
commit076f0e359e308dae67821196f56d36d6648f9086 (patch)
treefe2db568f81acf4017cbc47085550c23ee906fd8
parent8a7bf1d446bcaeed3b1f2a4dcb2f033dcdfc0827 (diff)
[media] Add support for the Terratec Cinergy T Dual PCIe IR remote
The following patch adds support for the infrared remote included in the Terratec Cinergy T Dual PCIe card. Signed-off-by: Djuri Baars <dsbaars@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c4
-rw-r--r--drivers/media/video/cx23885/cx23885-input.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index 080e11157e5f..d365e9a8efc4 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -46,6 +46,7 @@ MODULE_PARM_DESC(enable_885_ir,
46 "Enable integrated IR controller for supported\n" 46 "Enable integrated IR controller for supported\n"
47 "\t\t CX2388[57] boards that are wired for it:\n" 47 "\t\t CX2388[57] boards that are wired for it:\n"
48 "\t\t\tHVR-1250 (reported safe)\n" 48 "\t\t\tHVR-1250 (reported safe)\n"
49 "\t\t\tTerraTec Cinergy T PCIe Dual (not well tested, appears to be safe)\n"
49 "\t\t\tTeVii S470 (reported unsafe)\n" 50 "\t\t\tTeVii S470 (reported unsafe)\n"
50 "\t\t This can cause an interrupt storm with some cards.\n" 51 "\t\t This can cause an interrupt storm with some cards.\n"
51 "\t\t Default: 0 [Disabled]"); 52 "\t\t Default: 0 [Disabled]");
@@ -1363,6 +1364,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
1363 params.shutdown = true; 1364 params.shutdown = true;
1364 v4l2_subdev_call(dev->sd_ir, ir, tx_s_parameters, &params); 1365 v4l2_subdev_call(dev->sd_ir, ir, tx_s_parameters, &params);
1365 break; 1366 break;
1367 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
1366 case CX23885_BOARD_TEVII_S470: 1368 case CX23885_BOARD_TEVII_S470:
1367 if (!enable_885_ir) 1369 if (!enable_885_ir)
1368 break; 1370 break;
@@ -1403,6 +1405,7 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
1403 cx23888_ir_remove(dev); 1405 cx23888_ir_remove(dev);
1404 dev->sd_ir = NULL; 1406 dev->sd_ir = NULL;
1405 break; 1407 break;
1408 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
1406 case CX23885_BOARD_TEVII_S470: 1409 case CX23885_BOARD_TEVII_S470:
1407 case CX23885_BOARD_HAUPPAUGE_HVR1250: 1410 case CX23885_BOARD_HAUPPAUGE_HVR1250:
1408 cx23885_irq_remove(dev, PCI_MSK_AV_CORE); 1411 cx23885_irq_remove(dev, PCI_MSK_AV_CORE);
@@ -1446,6 +1449,7 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
1446 if (dev->sd_ir) 1449 if (dev->sd_ir)
1447 cx23885_irq_add_enable(dev, PCI_MSK_IR); 1450 cx23885_irq_add_enable(dev, PCI_MSK_IR);
1448 break; 1451 break;
1452 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
1449 case CX23885_BOARD_TEVII_S470: 1453 case CX23885_BOARD_TEVII_S470:
1450 case CX23885_BOARD_HAUPPAUGE_HVR1250: 1454 case CX23885_BOARD_HAUPPAUGE_HVR1250:
1451 if (dev->sd_ir) 1455 if (dev->sd_ir)
diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c
index ce765e3f77bd..56066721edc1 100644
--- a/drivers/media/video/cx23885/cx23885-input.c
+++ b/drivers/media/video/cx23885/cx23885-input.c
@@ -85,6 +85,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
85 case CX23885_BOARD_HAUPPAUGE_HVR1270: 85 case CX23885_BOARD_HAUPPAUGE_HVR1270:
86 case CX23885_BOARD_HAUPPAUGE_HVR1850: 86 case CX23885_BOARD_HAUPPAUGE_HVR1850:
87 case CX23885_BOARD_HAUPPAUGE_HVR1290: 87 case CX23885_BOARD_HAUPPAUGE_HVR1290:
88 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
88 case CX23885_BOARD_TEVII_S470: 89 case CX23885_BOARD_TEVII_S470:
89 case CX23885_BOARD_HAUPPAUGE_HVR1250: 90 case CX23885_BOARD_HAUPPAUGE_HVR1250:
90 /* 91 /*
@@ -162,6 +163,7 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
162 */ 163 */
163 params.invert_level = true; 164 params.invert_level = true;
164 break; 165 break;
166 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
165 case CX23885_BOARD_TEVII_S470: 167 case CX23885_BOARD_TEVII_S470:
166 /* 168 /*
167 * The IR controller on this board only returns pulse widths. 169 * The IR controller on this board only returns pulse widths.
@@ -272,6 +274,13 @@ int cx23885_input_init(struct cx23885_dev *dev)
272 /* The grey Hauppauge RC-5 remote */ 274 /* The grey Hauppauge RC-5 remote */
273 rc_map = RC_MAP_HAUPPAUGE; 275 rc_map = RC_MAP_HAUPPAUGE;
274 break; 276 break;
277 case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
278 /* Integrated CX23885 IR controller */
279 driver_type = RC_DRIVER_IR_RAW;
280 allowed_protos = RC_TYPE_NEC;
281 /* The grey Terratec remote with orange buttons */
282 rc_map = RC_MAP_NEC_TERRATEC_CINERGY_XS;
283 break;
275 case CX23885_BOARD_TEVII_S470: 284 case CX23885_BOARD_TEVII_S470:
276 /* Integrated CX23885 IR controller */ 285 /* Integrated CX23885 IR controller */
277 driver_type = RC_DRIVER_IR_RAW; 286 driver_type = RC_DRIVER_IR_RAW;