diff --git a/ddbridge/ddbridge-core.c b/ddbridge/ddbridge-core.c index 8d35228..127fe81 100644 --- a/ddbridge/ddbridge-core.c +++ b/ddbridge/ddbridge-core.c @@ -96,316 +96,7 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); #include "ddbridge-mod.c" #include "ddbridge-i2c.c" #include "ddbridge-ns.c" - - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -static struct ddb_regset octopus_mod_odma = { - .base = 0x300, - .num = 0x0a, - .size = 0x10, -}; - -static struct ddb_regset octopus_mod_odma_buf = { - .base = 0x2000, - .num = 0x0a, - .size = 0x100, -}; - -static struct ddb_regset octopus_mod_channel = { - .base = 0x400, - .num = 0x0a, - .size = 0x40, -}; - -/****************************************************************************/ - -static struct ddb_regset octopus_mod_2_odma = { - .base = 0x400, - .num = 0x18, - .size = 0x10, -}; - -static struct ddb_regset octopus_mod_2_odma_buf = { - .base = 0x8000, - .num = 0x18, - .size = 0x100, -}; - -static struct ddb_regset octopus_mod_2_channel = { - .base = 0x800, - .num = 0x18, - .size = 0x40, -}; - -static struct ddb_regset octopus_sdr_output = { - .base = 0x240, - .num = 0x14, - .size = 0x10, -}; - -/****************************************************************************/ - -static struct ddb_regset octopus_input = { - .base = 0x200, - .num = 0x08, - .size = 0x10, -}; - -static struct ddb_regset octopus_output = { - .base = 0x280, - .num = 0x08, - .size = 0x10, -}; - -static struct ddb_regset octopus_idma = { - .base = 0x300, - .num = 0x08, - .size = 0x10, -}; - -static struct ddb_regset octopus_idma_buf = { - .base = 0x2000, - .num = 0x08, - .size = 0x100, -}; - -static struct ddb_regset octopus_odma = { - .base = 0x380, - .num = 0x04, - .size = 0x10, -}; - -static struct ddb_regset octopus_odma_buf = { - .base = 0x2800, - .num = 0x04, - .size = 0x100, -}; - -static struct ddb_regset octopus_i2c = { - .base = 0x80, - .num = 0x04, - .size = 0x20, -}; - -static struct ddb_regset octopus_i2c_buf = { - .base = 0x1000, - .num = 0x04, - .size = 0x200, -}; - -/****************************************************************************/ - -static struct ddb_regset octopro_input = { - .base = 0x400, - .num = 0x14, - .size = 0x10, -}; - -static struct ddb_regset octopro_output = { - .base = 0x600, - .num = 0x0a, - .size = 0x10, -}; - -static struct ddb_regset octopro_idma = { - .base = 0x800, - .num = 0x40, - .size = 0x10, -}; - -static struct ddb_regset octopro_idma_buf = { - .base = 0x4000, - .num = 0x40, - .size = 0x100, -}; - -static struct ddb_regset octopro_odma = { - .base = 0xc00, - .num = 0x20, - .size = 0x10, -}; - -static struct ddb_regset octopro_odma_buf = { - .base = 0x8000, - .num = 0x20, - .size = 0x100, -}; - -static struct ddb_regset octopro_i2c = { - .base = 0x200, - .num = 0x0a, - .size = 0x20, -}; - -static struct ddb_regset octopro_i2c_buf = { - .base = 0x2000, - .num = 0x0a, - .size = 0x200, -}; - -static struct ddb_regset octopro_gtl = { - .base = 0xe00, - .num = 0x03, - .size = 0x40, -}; - -/****************************************************************************/ -/****************************************************************************/ - - -static struct ddb_regmap octopus_map = { - .irq_version = 1, - .irq_base_i2c = 0, - .irq_base_idma = 8, - .irq_base_odma = 16, - .i2c = &octopus_i2c, - .i2c_buf = &octopus_i2c_buf, - .idma = &octopus_idma, - .idma_buf = &octopus_idma_buf, - .odma = &octopus_odma, - .odma_buf = &octopus_odma_buf, - .input = &octopus_input, - .output = &octopus_output, -}; - -static struct ddb_regmap octopro_map = { - .irq_version = 2, - .irq_base_i2c = 32, - .irq_base_idma = 64, - .irq_base_odma = 128, - .irq_base_gtl = 8, - .i2c = &octopro_i2c, - .i2c_buf = &octopro_i2c_buf, - .idma = &octopro_idma, - .idma_buf = &octopro_idma_buf, - .odma = &octopro_odma, - .odma_buf = &octopro_odma_buf, - .input = &octopro_input, - .output = &octopro_output, - .gtl = &octopro_gtl, -}; - -static struct ddb_regmap octopro_hdin_map = { - .irq_version = 2, - .irq_base_i2c = 32, - .irq_base_idma = 64, - .irq_base_odma = 128, - .i2c = &octopro_i2c, - .i2c_buf = &octopro_i2c_buf, - .idma = &octopro_idma, - .idma_buf = &octopro_idma_buf, - .odma = &octopro_odma, - .odma_buf = &octopro_odma_buf, - .input = &octopro_input, - .output = &octopro_output, -}; - -static struct ddb_regmap octopus_mod_map = { - .irq_version = 1, - .irq_base_odma = 8, - .irq_base_rate = 18, - .output = &octopus_output, - .odma = &octopus_mod_odma, - .odma_buf = &octopus_mod_odma_buf, - .channel = &octopus_mod_channel, -}; - -static struct ddb_regmap octopus_mod_2_map = { - .irq_version = 2, - .irq_base_odma = 64, - .irq_base_rate = 32, - .output = &octopus_output, - .odma = &octopus_mod_2_odma, - .odma_buf = &octopus_mod_2_odma_buf, - .channel = &octopus_mod_2_channel, -}; - -static struct ddb_regmap octopus_sdr_map = { - .irq_version = 2, - .irq_base_odma = 64, - .irq_base_rate = 32, - .output = &octopus_sdr_output, - .odma = &octopus_mod_2_odma, - .odma_buf = &octopus_mod_2_odma_buf, - .channel = &octopus_mod_2_channel, -}; - - -/****************************************************************************/ - -static struct ddb_info ddb_s2_48 = { - .type = DDB_OCTOPUS_MAX, - .name = "Digital Devices MAX S8 4/8", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x01, - .board_control = 1, - .tempmon_irq = 24, -}; - -static struct ddb_info ddb_ct2_8 = { - .type = DDB_OCTOPUS_MAX_CT, - .name = "Digital Devices MAX A8 CT2", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 0x0ff, - .board_control_2 = 0xf00, - .ts_quirks = TS_QUIRK_SERIAL, - .tempmon_irq = 24, -}; - -static struct ddb_info ddb_c2t2_8 = { - .type = DDB_OCTOPUS_MAX_CT, - .name = "Digital Devices MAX A8 C2T2", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 0x0ff, - .board_control_2 = 0xf00, - .ts_quirks = TS_QUIRK_SERIAL, - .tempmon_irq = 24, -}; - -static struct ddb_info ddb_isdbt_8 = { - .type = DDB_OCTOPUS_MAX_CT, - .name = "Digital Devices MAX A8 ISDBT", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 0x0ff, - .board_control_2 = 0xf00, - .ts_quirks = TS_QUIRK_SERIAL, - .tempmon_irq = 24, -}; - -static struct ddb_info ddb_c2t2i_v0_8 = { - .type = DDB_OCTOPUS_MAX_CT, - .name = "Digital Devices MAX A8 C2T2I V0", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 0x0ff, - .board_control_2 = 0xf00, - .ts_quirks = TS_QUIRK_SERIAL | TS_QUIRK_ALT_OSC, - .tempmon_irq = 24, -}; - -static struct ddb_info ddb_c2t2i_8 = { - .type = DDB_OCTOPUS_MAX_CT, - .name = "Digital Devices MAX A8 C2T2I", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 0x0ff, - .board_control_2 = 0xf00, - .ts_quirks = TS_QUIRK_SERIAL, - .tempmon_irq = 24, -}; - +#include "ddbridge-hw.c" /****************************************************************************/ /****************************************************************************/ @@ -5224,28 +4915,10 @@ static int ddb_gtl_init_link(struct ddb *dev, u32 l) } id = ddbreadl(dev, DDB_LINK_TAG(l) | 8); subid = ddbreadl(dev, DDB_LINK_TAG(l) | 12); - switch (id) { - case 0x0007dd01: - link->info = &ddb_s2_48; - break; - case 0x0008dd01: - switch (subid) { - case 0x0035dd01: - default: - link->info = &ddb_c2t2_8; - break; - case 0x0036dd01: - link->info = &ddb_isdbt_8; - break; - case 0x0037dd01: - link->info = &ddb_c2t2i_v0_8; - break; - case 0x0038dd01: - link->info = &ddb_c2t2i_8; - break; - } - break; - default: + link->info = get_ddb_info(id & 0xffff, id >> 16, + subid & 0xffff, subid >> 16); + if (link->info->type != DDB_OCTOPUS_MAX_CT && + link->info->type != DDB_OCTOPUS_MAX) { pr_info("DDBridge: Detected GT link but found invalid ID %08x. You might have to update (flash) the add-on card first.", id); return -1; diff --git a/ddbridge/ddbridge.c b/ddbridge/ddbridge.c index bd25af8..c12a723 100644 --- a/ddbridge/ddbridge.c +++ b/ddbridge/ddbridge.c @@ -245,14 +245,11 @@ static int __devinit ddb_probe(struct pci_dev *pdev, dev->link[0].ids.vendor = id->vendor; dev->link[0].ids.device = id->device; dev->link[0].ids.subvendor = id->subvendor; - dev->link[0].ids.subdevice = id->subdevice; - + dev->link[0].ids.subdevice = pdev->subsystem_device; + dev->link[0].dev = dev; -#ifdef NUM_IDS - dev->link[0].info = ddb_infos[id->driver_data]; -#else - dev->link[0].info = (struct ddb_info *) id->driver_data; -#endif + dev->link[0].info = get_ddb_info(id->vendor, id->device, + id->subvendor, pdev->subsystem_device); pr_info("DDBridge: device name: %s\n", dev->link[0].info->name); dev->regs_len = pci_resource_len(dev->pdev, 0); @@ -315,280 +312,10 @@ fail: /****************************************************************************/ /****************************************************************************/ -static struct ddb_info ddb_none = { - .type = DDB_NONE, - .name = "unknown Digital Devices PCIe card, install newer driver", - .regmap = &octopus_map, -}; - -static struct ddb_info ddb_octopus = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Octopus DVB adapter", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, -}; - -static struct ddb_info ddb_octopusv3 = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Octopus V3 DVB adapter", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, -}; - -static struct ddb_info ddb_octopus_le = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Octopus LE DVB adapter", - .regmap = &octopus_map, - .port_num = 2, - .i2c_mask = 0x03, -}; - -static struct ddb_info ddb_octopus_oem = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Octopus OEM", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .led_num = 1, - .fan_num = 1, - .temp_num = 1, - .temp_bus = 0, -}; - -static struct ddb_info ddb_octopus_mini = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Octopus Mini", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, -}; - -static struct ddb_info ddb_v6 = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Cine S2 V6 DVB adapter", - .regmap = &octopus_map, - .port_num = 3, - .i2c_mask = 0x07, -}; - -static struct ddb_info ddb_v6_5 = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Cine S2 V6.5 DVB adapter", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, -}; - -static struct ddb_info ddb_v7a = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Cine S2 V7 Advanced DVB adapter", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 2, - .board_control_2 = 4, - .ts_quirks = TS_QUIRK_REVERSED, -}; - -static struct ddb_info ddb_v7 = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Cine S2 V7 DVB adapter", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 2, - .board_control_2 = 4, - .ts_quirks = TS_QUIRK_REVERSED, -}; - -static struct ddb_info ddb_ctv7 = { - .type = DDB_OCTOPUS, - .name = "Digital Devices Cine CT V7 DVB adapter", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x0f, - .board_control = 3, - .board_control_2 = 4, -}; - -static struct ddb_info ddb_satixS2v3 = { - .type = DDB_OCTOPUS, - .name = "Mystique SaTiX-S2 V3 DVB adapter", - .regmap = &octopus_map, - .port_num = 3, - .i2c_mask = 0x07, -}; - -static struct ddb_info ddb_ci = { - .type = DDB_OCTOPUS_CI, - .name = "Digital Devices Octopus CI", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x03, -}; - -static struct ddb_info ddb_cis = { - .type = DDB_OCTOPUS_CI, - .name = "Digital Devices Octopus CI single", - .regmap = &octopus_map, - .port_num = 3, - .i2c_mask = 0x03, -}; - -static struct ddb_info ddb_ci_s2_pro = { - .type = DDB_OCTOPUS_CI, - .name = "Digital Devices Octopus CI S2 Pro", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x01, - .board_control = 2, - .board_control_2 = 4, -}; - -static struct ddb_info ddb_ci_s2_pro_a = { - .type = DDB_OCTOPUS_CI, - .name = "Digital Devices Octopus CI S2 Pro Advanced", - .regmap = &octopus_map, - .port_num = 4, - .i2c_mask = 0x01, - .board_control = 2, - .board_control_2 = 4, -}; - -static struct ddb_info ddb_dvbct = { - .type = DDB_OCTOPUS, - .name = "Digital Devices DVBCT V6.1 DVB adapter", - .regmap = &octopus_map, - .port_num = 3, - .i2c_mask = 0x07, -}; - -/****************************************************************************/ - -static struct ddb_info ddb_mod = { - .type = DDB_MOD, - .name = "Digital Devices DVB-C modulator", - .regmap = &octopus_mod_map, - .port_num = 10, - .temp_num = 1, -}; - -static struct ddb_info ddb_mod_fsm_24 = { - .type = DDB_MOD, - .version = 2, - .name = "Digital Devices DVB-C modulator FSM-24", - .regmap = &octopus_mod_2_map, - .port_num = 24, - .temp_num = 1, - .tempmon_irq = 8, -}; - -static struct ddb_info ddb_mod_fsm_16 = { - .type = DDB_MOD, - .version = 2, - .name = "Digital Devices DVB-C modulator FSM-16", - .regmap = &octopus_mod_2_map, - .port_num = 16, - .temp_num = 1, - .tempmon_irq = 8, -}; - -static struct ddb_info ddb_mod_fsm_8 = { - .type = DDB_MOD, - .name = "Digital Devices DVB-C modulator FSM-8", - .version = 2, - .regmap = &octopus_mod_2_map, - .port_num = 8, - .temp_num = 1, - .tempmon_irq = 8, -}; - -static struct ddb_info ddb_sdr = { - .type = DDB_MOD, - .name = "Digital Devices SDR", - .version = 3, - .regmap = &octopus_sdr_map, - .port_num = 16, - .temp_num = 1, - .tempmon_irq = 8, -}; - -static struct ddb_info ddb_octopro_hdin = { - .type = DDB_OCTOPRO_HDIN, - .name = "Digital Devices OctopusNet Pro HDIN", - .regmap = &octopro_hdin_map, - .port_num = 10, - .i2c_mask = 0x3ff, - .mdio_num = 1, -}; - -static struct ddb_info ddb_octopro = { - .type = DDB_OCTOPRO, - .name = "Digital Devices OctopusNet Pro", - .regmap = &octopro_map, - .port_num = 10, - .i2c_mask = 0x3ff, - .mdio_num = 1, -}; - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -#define DDB_DEVICE(_device, _subdevice, _driver_data) { \ - PCI_DEVICE_SUB(0xdd01, _device, 0xdd01, _subdevice), \ - .driver_data = (kernel_ulong_t) &_driver_data } - -#define DDB_DEVICE_ANY(_device) { \ - PCI_DEVICE_SUB(0xdd01, _device, 0xdd01, PCI_ANY_ID), \ - .driver_data = (kernel_ulong_t) &ddb_none } +#define DDB_DEVICE_ANY(_device) { PCI_DEVICE_SUB(0xdd01, _device, 0xdd01, PCI_ANY_ID) } static const struct pci_device_id ddb_id_table[] __devinitconst = { - DDB_DEVICE(0x0002, 0x0001, ddb_octopus), - DDB_DEVICE(0x0003, 0x0001, ddb_octopus), - DDB_DEVICE(0x0005, 0x0004, ddb_octopusv3), - DDB_DEVICE(0x0003, 0x0002, ddb_octopus_le), - DDB_DEVICE(0x0003, 0x0003, ddb_octopus_oem), - DDB_DEVICE(0x0003, 0x0010, ddb_octopus_mini), - DDB_DEVICE(0x0005, 0x0011, ddb_octopus_mini), - DDB_DEVICE(0x0003, 0x0020, ddb_v6), - DDB_DEVICE(0x0003, 0x0021, ddb_v6_5), - DDB_DEVICE(0x0006, 0x0022, ddb_v7), - DDB_DEVICE(0x0006, 0x0024, ddb_v7a), - DDB_DEVICE(0x0003, 0x0030, ddb_dvbct), - DDB_DEVICE(0x0003, 0xdb03, ddb_satixS2v3), - DDB_DEVICE(0x0006, 0x0031, ddb_ctv7), - DDB_DEVICE(0x0006, 0x0032, ddb_ctv7), - DDB_DEVICE(0x0006, 0x0033, ddb_ctv7), - DDB_DEVICE(0x0007, 0x0023, ddb_s2_48), - DDB_DEVICE(0x0008, 0x0034, ddb_ct2_8), - DDB_DEVICE(0x0008, 0x0035, ddb_c2t2_8), - DDB_DEVICE(0x0008, 0x0036, ddb_isdbt_8), - DDB_DEVICE(0x0008, 0x0037, ddb_c2t2i_v0_8), - DDB_DEVICE(0x0008, 0x0038, ddb_c2t2i_8), - DDB_DEVICE(0x0006, 0x0039, ddb_ctv7), - DDB_DEVICE(0x0011, 0x0040, ddb_ci), - DDB_DEVICE(0x0011, 0x0041, ddb_cis), - DDB_DEVICE(0x0012, 0x0042, ddb_ci), - DDB_DEVICE(0x0013, 0x0043, ddb_ci_s2_pro), - DDB_DEVICE(0x0013, 0x0044, ddb_ci_s2_pro_a), - DDB_DEVICE(0x0201, 0x0001, ddb_mod), - DDB_DEVICE(0x0201, 0x0002, ddb_mod), - DDB_DEVICE(0x0203, 0x0001, ddb_mod), - DDB_DEVICE(0x0210, 0x0001, ddb_mod_fsm_24), - DDB_DEVICE(0x0210, 0x0002, ddb_mod_fsm_16), - DDB_DEVICE(0x0210, 0x0003, ddb_mod_fsm_8), - DDB_DEVICE(0x0220, 0x0001, ddb_sdr), - /* testing on OctopusNet Pro */ - DDB_DEVICE(0x0320, PCI_ANY_ID, ddb_octopro_hdin), - DDB_DEVICE(0x0321, PCI_ANY_ID, ddb_none), - DDB_DEVICE(0x0322, PCI_ANY_ID, ddb_octopro), - DDB_DEVICE(0x0323, PCI_ANY_ID, ddb_none), - DDB_DEVICE(0x0328, PCI_ANY_ID, ddb_none), - DDB_DEVICE(0x0329, PCI_ANY_ID, ddb_octopro_hdin), - /* in case sub-ids got deleted in flash */ + DDB_DEVICE_ANY(0x0002), DDB_DEVICE_ANY(0x0003), DDB_DEVICE_ANY(0x0005), DDB_DEVICE_ANY(0x0006), diff --git a/ddbridge/ddbridge.h b/ddbridge/ddbridge.h index 28dd20d..a9e7f29 100644 --- a/ddbridge/ddbridge.h +++ b/ddbridge/ddbridge.h @@ -750,4 +750,8 @@ int ddbridge_flashread(struct ddb *dev, u32 link, u8 *buf, u32 addr, u32 len); #define DDBRIDGE_VERSION "0.9.29" +/* linked functions */ + +struct ddb_info *get_ddb_info(u16 vendor, u16 device, u16 subvendor, u16 subdevice); + #endif diff --git a/ddbridge/octonet.c b/ddbridge/octonet.c index 5fe0e1a..37c0ad8 100644 --- a/ddbridge/octonet.c +++ b/ddbridge/octonet.c @@ -31,83 +31,8 @@ #include #endif -static int adapter_alloc = 3; -module_param(adapter_alloc, int, 0444); -MODULE_PARM_DESC(adapter_alloc, -"0-one adapter per io, 1-one per tab with io, 2-one per tab, 3-one for all"); - #include "ddbridge-core.c" -static struct ddb_regmap octopus_net_map = { - .irq_version = 1, - .irq_base_i2c = 0, - .i2c = &octopus_i2c, - .i2c_buf = &octopus_i2c_buf, - .input = &octopus_input, - .output = &octopus_output, -}; - -static struct ddb_regset octopus_gtl = { - .base = 0x180, - .num = 0x01, - .size = 0x20, -}; - -static struct ddb_regmap octopus_net_gtl = { - .irq_version = 1, - .irq_base_i2c = 0, - .irq_base_gtl = 10, - .i2c = &octopus_i2c, - .i2c_buf = &octopus_i2c_buf, - .input = &octopus_input, - .output = &octopus_output, - .gtl = &octopus_gtl, -}; - -static struct ddb_info ddb_octonet = { - .type = DDB_OCTONET, - .name = "Digital Devices OctopusNet network DVB adapter", - .regmap = &octopus_net_map, - .port_num = 4, - .i2c_mask = 0x0f, - .ns_num = 12, - .mdio_num = 1, -}; - -static struct ddb_info ddb_octonet_jse = { - .type = DDB_OCTONET, - .name = "Digital Devices OctopusNet network DVB adapter JSE", - .regmap = &octopus_net_map, - .port_num = 4, - .i2c_mask = 0x0f, - .ns_num = 15, - .mdio_num = 1, -}; - -static struct ddb_info ddb_octonet_gtl = { - .type = DDB_OCTONET, - .name = "Digital Devices OctopusNet GTL", - .regmap = &octopus_net_gtl, - .port_num = 4, - .i2c_mask = 0x05, - .ns_num = 12, - .mdio_num = 1, - .con_clock = 1, -}; - -static struct ddb_info ddb_octonet_tbd = { - .type = DDB_OCTONET, - .name = "Digital Devices OctopusNet", - .regmap = &octopus_net_map, -}; - -static void octonet_unmap(struct ddb *dev) -{ - if (dev->regs) - iounmap(dev->regs); - vfree(dev); -} - static int __exit octonet_remove(struct platform_device *pdev) { struct ddb *dev; @@ -168,6 +93,7 @@ static int __init octonet_probe(struct platform_device *pdev) dev->link[0].ids.subdevice = dev->link[0].ids.devid >> 16; dev->link[0].dev = dev; +#if 0 if (dev->link[0].ids.devid == 0x0300dd01) dev->link[0].info = &ddb_octonet; else if (dev->link[0].ids.devid == 0x0301dd01) @@ -176,7 +102,11 @@ static int __init octonet_probe(struct platform_device *pdev) dev->link[0].info = &ddb_octonet_gtl; else dev->link[0].info = &ddb_octonet_tbd; - +#else + dev->link[0].info = get_ddb_info(dev->link[0].ids.vendor, + dev->link[0].ids.device, + 0xdd01, 0xffff); +#endif pr_info("DDBridge: HW %08x REGMAP %08x\n", dev->link[0].ids.hwid, dev->link[0].ids.regmapid); pr_info("DDBridge: MAC %08x DEVID %08x\n",