提交 076f0e35 编写于 作者: D Djuri Baars 提交者: Mauro Carvalho Chehab

[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: NDjuri Baars <dsbaars@gmail.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 8a7bf1d4
...@@ -46,6 +46,7 @@ MODULE_PARM_DESC(enable_885_ir, ...@@ -46,6 +46,7 @@ MODULE_PARM_DESC(enable_885_ir,
"Enable integrated IR controller for supported\n" "Enable integrated IR controller for supported\n"
"\t\t CX2388[57] boards that are wired for it:\n" "\t\t CX2388[57] boards that are wired for it:\n"
"\t\t\tHVR-1250 (reported safe)\n" "\t\t\tHVR-1250 (reported safe)\n"
"\t\t\tTerraTec Cinergy T PCIe Dual (not well tested, appears to be safe)\n"
"\t\t\tTeVii S470 (reported unsafe)\n" "\t\t\tTeVii S470 (reported unsafe)\n"
"\t\t This can cause an interrupt storm with some cards.\n" "\t\t This can cause an interrupt storm with some cards.\n"
"\t\t Default: 0 [Disabled]"); "\t\t Default: 0 [Disabled]");
...@@ -1363,6 +1364,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) ...@@ -1363,6 +1364,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
params.shutdown = true; params.shutdown = true;
v4l2_subdev_call(dev->sd_ir, ir, tx_s_parameters, &params); v4l2_subdev_call(dev->sd_ir, ir, tx_s_parameters, &params);
break; break;
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
if (!enable_885_ir) if (!enable_885_ir)
break; break;
...@@ -1403,6 +1405,7 @@ void cx23885_ir_fini(struct cx23885_dev *dev) ...@@ -1403,6 +1405,7 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
cx23888_ir_remove(dev); cx23888_ir_remove(dev);
dev->sd_ir = NULL; dev->sd_ir = NULL;
break; break;
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_HAUPPAUGE_HVR1250: case CX23885_BOARD_HAUPPAUGE_HVR1250:
cx23885_irq_remove(dev, PCI_MSK_AV_CORE); cx23885_irq_remove(dev, PCI_MSK_AV_CORE);
...@@ -1446,6 +1449,7 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev) ...@@ -1446,6 +1449,7 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
if (dev->sd_ir) if (dev->sd_ir)
cx23885_irq_add_enable(dev, PCI_MSK_IR); cx23885_irq_add_enable(dev, PCI_MSK_IR);
break; break;
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_HAUPPAUGE_HVR1250: case CX23885_BOARD_HAUPPAUGE_HVR1250:
if (dev->sd_ir) if (dev->sd_ir)
......
...@@ -85,6 +85,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events) ...@@ -85,6 +85,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
case CX23885_BOARD_HAUPPAUGE_HVR1270: case CX23885_BOARD_HAUPPAUGE_HVR1270:
case CX23885_BOARD_HAUPPAUGE_HVR1850: case CX23885_BOARD_HAUPPAUGE_HVR1850:
case CX23885_BOARD_HAUPPAUGE_HVR1290: case CX23885_BOARD_HAUPPAUGE_HVR1290:
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_HAUPPAUGE_HVR1250: case CX23885_BOARD_HAUPPAUGE_HVR1250:
/* /*
...@@ -162,6 +163,7 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev) ...@@ -162,6 +163,7 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
*/ */
params.invert_level = true; params.invert_level = true;
break; break;
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
/* /*
* The IR controller on this board only returns pulse widths. * The IR controller on this board only returns pulse widths.
...@@ -272,6 +274,13 @@ int cx23885_input_init(struct cx23885_dev *dev) ...@@ -272,6 +274,13 @@ int cx23885_input_init(struct cx23885_dev *dev)
/* The grey Hauppauge RC-5 remote */ /* The grey Hauppauge RC-5 remote */
rc_map = RC_MAP_HAUPPAUGE; rc_map = RC_MAP_HAUPPAUGE;
break; break;
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
/* Integrated CX23885 IR controller */
driver_type = RC_DRIVER_IR_RAW;
allowed_protos = RC_TYPE_NEC;
/* The grey Terratec remote with orange buttons */
rc_map = RC_MAP_NEC_TERRATEC_CINERGY_XS;
break;
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
/* Integrated CX23885 IR controller */ /* Integrated CX23885 IR controller */
driver_type = RC_DRIVER_IR_RAW; driver_type = RC_DRIVER_IR_RAW;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册