[media] cx23885: add DVBSky S950C and T980C RC support
authornibble.max <nibble.max@gmail.com>
Thu, 23 Oct 2014 10:02:16 +0000 (07:02 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 3 Nov 2014 13:52:08 +0000 (11:52 -0200)
DVBSky s950ci dvb-s/s2 ci PCIe card:
1>dvb frontend: M88TS2022(tuner),M88DS3103(demod)
2>ci controller: CIMAX SP2 or its clone.
3>PCIe bridge: CX23885

The patchs are based on the following patchs.
Olli Salonen submit:
https://patchwork.linuxtv.org/patch/26180/
https://patchwork.linuxtv.org/patch/26183/
https://patchwork.linuxtv.org/patch/26324/
Nibble Max submit:
https://patchwork.linuxtv.org/patch/26207/

Signed-off-by: Nibble Max <nibble.max@gmail.com>
Reviewed-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cx23885/cx23885-cards.c
drivers/media/pci/cx23885/cx23885-input.c

index ac34c27c8205ca86a6e6585b14b505a87ad0cf13..d9ba48cfb41f84aa9a26033d054326e3a8b9032a 100644 (file)
@@ -1669,6 +1669,8 @@ int cx23885_ir_init(struct cx23885_dev *dev)
        case CX23885_BOARD_TBS_6980:
        case CX23885_BOARD_TBS_6981:
        case CX23885_BOARD_DVBSKY_T9580:
+       case CX23885_BOARD_DVBSKY_T980C:
+       case CX23885_BOARD_DVBSKY_S950C:
                if (!enable_885_ir)
                        break;
                dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_AV_CORE);
@@ -1716,6 +1718,8 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
        case CX23885_BOARD_TBS_6980:
        case CX23885_BOARD_TBS_6981:
        case CX23885_BOARD_DVBSKY_T9580:
+       case CX23885_BOARD_DVBSKY_T980C:
+       case CX23885_BOARD_DVBSKY_S950C:
                cx23885_irq_remove(dev, PCI_MSK_AV_CORE);
                /* sd_ir is a duplicate pointer to the AV Core, just clear it */
                dev->sd_ir = NULL;
@@ -1764,6 +1768,8 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
        case CX23885_BOARD_TBS_6980:
        case CX23885_BOARD_TBS_6981:
        case CX23885_BOARD_DVBSKY_T9580:
+       case CX23885_BOARD_DVBSKY_T980C:
+       case CX23885_BOARD_DVBSKY_S950C:
                if (dev->sd_ir)
                        cx23885_irq_add_enable(dev, PCI_MSK_AV_CORE);
                break;
index f81c2f9f0e9235477539ff117b857e10d8b785a8..0bf6839cb04dae2a2f92d31862bcdc503fae3a22 100644 (file)
@@ -88,6 +88,8 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
        case CX23885_BOARD_TBS_6980:
        case CX23885_BOARD_TBS_6981:
        case CX23885_BOARD_DVBSKY_T9580:
+       case CX23885_BOARD_DVBSKY_T980C:
+       case CX23885_BOARD_DVBSKY_S950C:
                /*
                 * The only boards we handle right now.  However other boards
                 * using the CX2388x integrated IR controller should be similar
@@ -141,6 +143,8 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
        case CX23885_BOARD_HAUPPAUGE_HVR1250:
        case CX23885_BOARD_MYGICA_X8507:
        case CX23885_BOARD_DVBSKY_T9580:
+       case CX23885_BOARD_DVBSKY_T980C:
+       case CX23885_BOARD_DVBSKY_S950C:
                /*
                 * The IR controller on this board only returns pulse widths.
                 * Any other mode setting will fail to set up the device.
@@ -308,6 +312,8 @@ int cx23885_input_init(struct cx23885_dev *dev)
                rc_map = RC_MAP_TBS_NEC;
                break;
        case CX23885_BOARD_DVBSKY_T9580:
+       case CX23885_BOARD_DVBSKY_T980C:
+       case CX23885_BOARD_DVBSKY_S950C:
                /* Integrated CX23885 IR controller */
                driver_type = RC_DRIVER_IR_RAW;
                allowed_protos = RC_BIT_ALL;