]> git.karo-electronics.de Git - linux-beck.git/commitdiff
[media] smipcie: add support for TechnoTrend S2-4200 Twin
authorOlli Salonen <olli.salonen@iki.fi>
Wed, 9 Mar 2016 22:38:27 +0000 (19:38 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Sat, 7 May 2016 13:27:17 +0000 (10:27 -0300)
Add support for TechnoTrend TT-budget S2-4200 Twin DVB-S2 tuner. The
device seems to be rather similar to DVBSky S952 V3. This is a PCIe
card with 2 tuners. SMI PCIe bridge is used and the card has two
Montage M88RS6000 demod/tuners.

The M88RS6000 demod/tuner package needs firmware. You can download
one here:
http://palosaari.fi/linux/v4l-dvb/firmware/M88RS6000/

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

index d018673c71f6760476104749558f98f393208bbe..d737b5e767d003b6153a43d0eedf51339cb3ed47 100644 (file)
@@ -203,7 +203,10 @@ int smi_ir_init(struct smi_dev *dev)
        rc_dev->dev.parent = &dev->pci_dev->dev;
 
        rc_dev->driver_type = RC_DRIVER_SCANCODE;
-       rc_dev->map_name = RC_MAP_DVBSKY;
+       if (dev->info->type == SMI_TECHNOTREND_S2_4200)
+               rc_dev->map_name = RC_MAP_TT_1500;
+       else
+               rc_dev->map_name = RC_MAP_DVBSKY;
 
        ir->rc_dev = rc_dev;
        ir->dev = dev;
index b039a229b7d2baffde01fc9be0127a9cef254ec3..993a2d19bd5474238a8d5b2e77a68fc9a5bae185 100644 (file)
@@ -1086,6 +1086,15 @@ static struct smi_cfg_info dvbsky_t9580_cfg = {
        .fe_1 = DVBSKY_FE_M88DS3103,
 };
 
+static struct smi_cfg_info technotrend_s2_4200_cfg = {
+       .type = SMI_TECHNOTREND_S2_4200,
+       .name = "TechnoTrend TT-budget S2-4200 Twin",
+       .ts_0 = SMI_TS_DMA_BOTH,
+       .ts_1 = SMI_TS_DMA_BOTH,
+       .fe_0 = DVBSKY_FE_M88RS6000,
+       .fe_1 = DVBSKY_FE_M88RS6000,
+};
+
 /* PCI IDs */
 #define SMI_ID(_subvend, _subdev, _driverdata) {       \
        .vendor      = SMI_VID,    .device    = SMI_PID, \
@@ -1096,6 +1105,7 @@ static const struct pci_device_id smi_id_table[] = {
        SMI_ID(0x4254, 0x0550, dvbsky_s950_cfg),
        SMI_ID(0x4254, 0x0552, dvbsky_s952_cfg),
        SMI_ID(0x4254, 0x5580, dvbsky_t9580_cfg),
+       SMI_ID(0x13c2, 0x3016, technotrend_s2_4200_cfg),
        {0}
 };
 MODULE_DEVICE_TABLE(pci, smi_id_table);
index 68cdda28fd9849526e067431f6271f0b7be90269..5528e483ebc59da1aab9b3e91d5e49f2afeb6289 100644 (file)
@@ -216,6 +216,7 @@ struct smi_cfg_info {
 #define SMI_DVBSKY_S950         1
 #define SMI_DVBSKY_T9580        2
 #define SMI_DVBSKY_T982         3
+#define SMI_TECHNOTREND_S2_4200 4
        int type;
        char *name;
 #define SMI_TS_NULL             0