diff --git a/ddbridge/ddbridge-hw.c b/ddbridge/ddbridge-hw.c index b21f20a..f03b818 100644 --- a/ddbridge/ddbridge-hw.c +++ b/ddbridge/ddbridge-hw.c @@ -336,6 +336,7 @@ static const struct ddb_info ddb_v7a = { .board_control = 2, .board_control_2 = 4, .ts_quirks = TS_QUIRK_REVERSED, + .hw_min = 0x010007, }; static const struct ddb_info ddb_v7 = { @@ -347,6 +348,7 @@ static const struct ddb_info ddb_v7 = { .board_control = 2, .board_control_2 = 4, .ts_quirks = TS_QUIRK_REVERSED, + .hw_min = 0x010007, }; static const struct ddb_info ddb_ctv7 = { @@ -391,6 +393,7 @@ static const struct ddb_info ddb_ci_s2_pro = { .i2c_mask = 0x01, .board_control = 2, .board_control_2 = 4, + .hw_min = 0x010007, }; static const struct ddb_info ddb_ci_s2_pro_a = { @@ -401,6 +404,7 @@ static const struct ddb_info ddb_ci_s2_pro_a = { .i2c_mask = 0x01, .board_control = 2, .board_control_2 = 4, + .hw_min = 0x010007, }; static const struct ddb_info ddb_dvbct = { diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index 49bfe93..b5d16f2 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -337,6 +337,13 @@ static int __devinit ddb_probe(struct pci_dev *pdev, dev_info(dev->dev, "HW %08x REGMAP %08x\n", dev->link[0].ids.hwid, dev->link[0].ids.regmapid); + if ((dev->link[0].ids.hwid & 0xffffff) < + dev->link[0].info->hw_min) { + u32 min = dev->link[0].info->hw_min; + + dev_err(dev->dev, "Update firmware to at least version %u.%u to ensure full functionality!\n", + (min & 0xff0000) >> 16, min & 0xffff); + } if (dev->link[0].info->ns_num) { ddbwritel(dev, 0, ETHER_CONTROL); diff --git a/ddbridge/ddbridge.h b/ddbridge/ddbridge.h index 7958a0a..efd3c8f 100644 --- a/ddbridge/ddbridge.h +++ b/ddbridge/ddbridge.h @@ -167,6 +167,7 @@ struct ddb_info { u8 ns_num; u8 con_clock; /* use a continuous clock */ u8 ts_quirks; + u8 mci; #define TS_QUIRK_SERIAL 1 #define TS_QUIRK_REVERSED 2 #define TS_QUIRK_NO_OUTPUT 4 @@ -174,7 +175,7 @@ struct ddb_info { u32 tempmon_irq; u32 lostlock_irq; u32 mdio_base; - u8 mci; + u32 hw_min; const struct ddb_regmap *regmap; };