[media] ddbridge: hardware IDs for new C2T2 cards and other devices
authorDaniel Scheller <d.scheller@gmx.net>
Sun, 9 Apr 2017 19:38:28 +0000 (16:38 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 20 Jun 2017 12:59:48 +0000 (09:59 -0300)
Adds hardware IDs for all Sony CXD-based Cine-cards and MaxA8 devices, also
adds some other yet missing IDs like the Octopus V3, Octopus OEM and
Octopus Mini, as well as cards with unknown/deleted sub-ids.

Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/pci/ddbridge/Kconfig
drivers/media/pci/ddbridge/ddbridge-core.c
drivers/media/pci/ddbridge/ddbridge.h

index ac6a48d7e1416ec31ded561a11504336aa705d36..ffed78c2ffb4481f4a307f3703b115dffb58d4bf 100644 (file)
@@ -18,6 +18,7 @@ config DVB_DDBRIDGE
          - DuoFlex CT Octopus
          - cineS2(v6)
          - CineCTv6 and DuoFlex CT (STV0367-based)
-         - DuoFlex CT2/C2T2/C2T2I (Sony CXD28xx-based)
+         - CineCTv7 and DuoFlex CT2/C2T2/C2T2I (Sony CXD28xx-based)
+         - MaxA8 series
 
          Say Y if you own such a card and want to use it.
index e37ab082318f840ee10a1e14b088562f9d19b740..9420479bee9a5ad324b0344541e0905495cfe91c 100644 (file)
@@ -2090,6 +2090,12 @@ static const struct ddb_info ddb_octopus_le = {
        .port_num = 2,
 };
 
+static const struct ddb_info ddb_octopus_oem = {
+       .type     = DDB_OCTOPUS,
+       .name     = "Digital Devices Octopus OEM",
+       .port_num = 4,
+};
+
 static const struct ddb_info ddb_octopus_mini = {
        .type     = DDB_OCTOPUS,
        .name     = "Digital Devices Octopus Mini",
@@ -2113,6 +2119,14 @@ static const struct ddb_info ddb_dvbct = {
        .port_num = 3,
 };
 
+static const struct ddb_info ddb_ctv7 = {
+       .type     = DDB_OCTOPUS,
+       .name     = "Digital Devices Cine CT V7 DVB adapter",
+       .port_num = 4,
+       .board_control   = 3,
+       .board_control_2 = 4,
+};
+
 static const struct ddb_info ddb_satixS2v3 = {
        .type     = DDB_OCTOPUS,
        .name     = "Mystique SaTiX-S2 V3 DVB adapter",
@@ -2125,6 +2139,55 @@ static const struct ddb_info ddb_octopusv3 = {
        .port_num = 4,
 };
 
+/*** MaxA8 adapters ***********************************************************/
+
+static struct ddb_info ddb_ct2_8 = {
+       .type     = DDB_OCTOPUS_MAX_CT,
+       .name     = "Digital Devices MAX A8 CT2",
+       .port_num = 4,
+       .board_control   = 0x0ff,
+       .board_control_2 = 0xf00,
+       .ts_quirks = TS_QUIRK_SERIAL,
+};
+
+static struct ddb_info ddb_c2t2_8 = {
+       .type     = DDB_OCTOPUS_MAX_CT,
+       .name     = "Digital Devices MAX A8 C2T2",
+       .port_num = 4,
+       .board_control   = 0x0ff,
+       .board_control_2 = 0xf00,
+       .ts_quirks = TS_QUIRK_SERIAL,
+};
+
+static struct ddb_info ddb_isdbt_8 = {
+       .type     = DDB_OCTOPUS_MAX_CT,
+       .name     = "Digital Devices MAX A8 ISDBT",
+       .port_num = 4,
+       .board_control   = 0x0ff,
+       .board_control_2 = 0xf00,
+       .ts_quirks = TS_QUIRK_SERIAL,
+};
+
+static struct ddb_info ddb_c2t2i_v0_8 = {
+       .type     = DDB_OCTOPUS_MAX_CT,
+       .name     = "Digital Devices MAX A8 C2T2I V0",
+       .port_num = 4,
+       .board_control   = 0x0ff,
+       .board_control_2 = 0xf00,
+       .ts_quirks = TS_QUIRK_SERIAL | TS_QUIRK_ALT_OSC,
+};
+
+static struct ddb_info ddb_c2t2i_8 = {
+       .type     = DDB_OCTOPUS_MAX_CT,
+       .name     = "Digital Devices MAX A8 C2T2I",
+       .port_num = 4,
+       .board_control   = 0x0ff,
+       .board_control_2 = 0xf00,
+       .ts_quirks = TS_QUIRK_SERIAL,
+};
+
+/******************************************************************************/
+
 #define DDVID 0xdd01 /* Digital Devices Vendor ID */
 
 #define DDB_ID(_vend, _dev, _subvend, _subdev, _driverdata) {  \
@@ -2135,15 +2198,34 @@ static const struct ddb_info ddb_octopusv3 = {
 static const struct pci_device_id ddb_id_tbl[] = {
        DDB_ID(DDVID, 0x0002, DDVID, 0x0001, ddb_octopus),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0001, ddb_octopus),
+       DDB_ID(DDVID, 0x0005, DDVID, 0x0004, ddb_octopusv3),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0002, ddb_octopus_le),
+       DDB_ID(DDVID, 0x0003, DDVID, 0x0003, ddb_octopus_oem),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0010, ddb_octopus_mini),
+       DDB_ID(DDVID, 0x0005, DDVID, 0x0011, ddb_octopus_mini),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0020, ddb_v6),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0021, ddb_v6_5),
        DDB_ID(DDVID, 0x0003, DDVID, 0x0030, ddb_dvbct),
        DDB_ID(DDVID, 0x0003, DDVID, 0xdb03, ddb_satixS2v3),
-       DDB_ID(DDVID, 0x0005, DDVID, 0x0004, ddb_octopusv3),
+       DDB_ID(DDVID, 0x0006, DDVID, 0x0031, ddb_ctv7),
+       DDB_ID(DDVID, 0x0006, DDVID, 0x0032, ddb_ctv7),
+       DDB_ID(DDVID, 0x0006, DDVID, 0x0033, ddb_ctv7),
+       DDB_ID(DDVID, 0x0008, DDVID, 0x0034, ddb_ct2_8),
+       DDB_ID(DDVID, 0x0008, DDVID, 0x0035, ddb_c2t2_8),
+       DDB_ID(DDVID, 0x0008, DDVID, 0x0036, ddb_isdbt_8),
+       DDB_ID(DDVID, 0x0008, DDVID, 0x0037, ddb_c2t2i_v0_8),
+       DDB_ID(DDVID, 0x0008, DDVID, 0x0038, ddb_c2t2i_8),
+       DDB_ID(DDVID, 0x0006, DDVID, 0x0039, ddb_ctv7),
        /* in case sub-ids got deleted in flash */
        DDB_ID(DDVID, 0x0003, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0005, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0006, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0007, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0008, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0011, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0013, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0201, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
+       DDB_ID(DDVID, 0x0320, PCI_ANY_ID, PCI_ANY_ID, ddb_none),
        {0}
 };
 MODULE_DEVICE_TABLE(pci, ddb_id_tbl);
index 58baddb7a83b1e2012297164ba5c80541a0f1827..4a0e3283d64645af93afb3a21431795b4a114e8e 100644 (file)
@@ -54,8 +54,9 @@
 
 struct ddb_info {
        int   type;
-#define DDB_NONE         0
-#define DDB_OCTOPUS      1
+#define DDB_NONE               0
+#define DDB_OCTOPUS            1
+#define DDB_OCTOPUS_MAX_CT     6
        char *name;
        int   port_num;
        u32   port_type[DDB_MAX_PORT];