net: dsa: mv88e6xxx: drop revision probing
There is no point in having a special case for the revision when probing a switch model. The code gets cluttered with unnecessary defines, and leads to errors when code such as mv88e6131_setup compares PORT_SWITCH_ID_6131_B2 to ps->id which masks the revision. Drop every revision definition, and lookup only the product number. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
b346204737
Коммит
54c6f4bda7
|
@ -19,14 +19,8 @@
|
||||||
|
|
||||||
static const struct mv88e6xxx_switch_id mv88e6123_table[] = {
|
static const struct mv88e6xxx_switch_id mv88e6123_table[] = {
|
||||||
{ PORT_SWITCH_ID_6123, "Marvell 88E6123" },
|
{ PORT_SWITCH_ID_6123, "Marvell 88E6123" },
|
||||||
{ PORT_SWITCH_ID_6123_A1, "Marvell 88E6123 (A1)" },
|
|
||||||
{ PORT_SWITCH_ID_6123_A2, "Marvell 88E6123 (A2)" },
|
|
||||||
{ PORT_SWITCH_ID_6161, "Marvell 88E6161" },
|
{ PORT_SWITCH_ID_6161, "Marvell 88E6161" },
|
||||||
{ PORT_SWITCH_ID_6161_A1, "Marvell 88E6161 (A1)" },
|
|
||||||
{ PORT_SWITCH_ID_6161_A2, "Marvell 88E6161 (A2)" },
|
|
||||||
{ PORT_SWITCH_ID_6165, "Marvell 88E6165" },
|
{ PORT_SWITCH_ID_6165, "Marvell 88E6165" },
|
||||||
{ PORT_SWITCH_ID_6165_A1, "Marvell 88E6165 (A1)" },
|
|
||||||
{ PORT_SWITCH_ID_6165_A2, "Marvell 88e6165 (A2)" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *mv88e6123_drv_probe(struct device *dsa_dev,
|
static const char *mv88e6123_drv_probe(struct device *dsa_dev,
|
||||||
|
|
|
@ -21,7 +21,6 @@ static const struct mv88e6xxx_switch_id mv88e6131_table[] = {
|
||||||
{ PORT_SWITCH_ID_6085, "Marvell 88E6085" },
|
{ PORT_SWITCH_ID_6085, "Marvell 88E6085" },
|
||||||
{ PORT_SWITCH_ID_6095, "Marvell 88E6095/88E6095F" },
|
{ PORT_SWITCH_ID_6095, "Marvell 88E6095/88E6095F" },
|
||||||
{ PORT_SWITCH_ID_6131, "Marvell 88E6131" },
|
{ PORT_SWITCH_ID_6131, "Marvell 88E6131" },
|
||||||
{ PORT_SWITCH_ID_6131_B2, "Marvell 88E6131 (B2)" },
|
|
||||||
{ PORT_SWITCH_ID_6185, "Marvell 88E6185" },
|
{ PORT_SWITCH_ID_6185, "Marvell 88E6185" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -116,7 +115,6 @@ static int mv88e6131_setup(struct dsa_switch *ds)
|
||||||
ps->num_ports = 11;
|
ps->num_ports = 11;
|
||||||
break;
|
break;
|
||||||
case PORT_SWITCH_ID_6131:
|
case PORT_SWITCH_ID_6131:
|
||||||
case PORT_SWITCH_ID_6131_B2:
|
|
||||||
ps->num_ports = 8;
|
ps->num_ports = 8;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -27,14 +27,8 @@ static const struct mv88e6xxx_switch_id mv88e6352_table[] = {
|
||||||
{ PORT_SWITCH_ID_6176, "Marvell 88E6176" },
|
{ PORT_SWITCH_ID_6176, "Marvell 88E6176" },
|
||||||
{ PORT_SWITCH_ID_6240, "Marvell 88E6240" },
|
{ PORT_SWITCH_ID_6240, "Marvell 88E6240" },
|
||||||
{ PORT_SWITCH_ID_6320, "Marvell 88E6320" },
|
{ PORT_SWITCH_ID_6320, "Marvell 88E6320" },
|
||||||
{ PORT_SWITCH_ID_6320_A1, "Marvell 88E6320 (A1)" },
|
|
||||||
{ PORT_SWITCH_ID_6320_A2, "Marvell 88e6320 (A2)" },
|
|
||||||
{ PORT_SWITCH_ID_6321, "Marvell 88E6321" },
|
{ PORT_SWITCH_ID_6321, "Marvell 88E6321" },
|
||||||
{ PORT_SWITCH_ID_6321_A1, "Marvell 88E6321 (A1)" },
|
|
||||||
{ PORT_SWITCH_ID_6321_A2, "Marvell 88e6321 (A2)" },
|
|
||||||
{ PORT_SWITCH_ID_6352, "Marvell 88E6352" },
|
{ PORT_SWITCH_ID_6352, "Marvell 88E6352" },
|
||||||
{ PORT_SWITCH_ID_6352_A0, "Marvell 88E6352 (A0)" },
|
|
||||||
{ PORT_SWITCH_ID_6352_A1, "Marvell 88E6352 (A1)" },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *mv88e6352_drv_probe(struct device *dsa_dev,
|
static const char *mv88e6352_drv_probe(struct device *dsa_dev,
|
||||||
|
|
|
@ -3187,22 +3187,10 @@ mv88e6xxx_lookup_name(struct mii_bus *bus, int sw_addr,
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Look up the exact switch ID */
|
|
||||||
for (i = 0; i < num; ++i)
|
for (i = 0; i < num; ++i)
|
||||||
if (table[i].id == ret)
|
if (table[i].id == (ret & 0xfff0))
|
||||||
return table[i].name;
|
return table[i].name;
|
||||||
|
|
||||||
/* Look up only the product number */
|
|
||||||
for (i = 0; i < num; ++i) {
|
|
||||||
if (table[i].id == (ret & PORT_SWITCH_ID_PROD_NUM_MASK)) {
|
|
||||||
dev_warn(&bus->dev,
|
|
||||||
"unknown revision %d, using base switch 0x%x\n",
|
|
||||||
ret & PORT_SWITCH_ID_REV_MASK,
|
|
||||||
ret & PORT_SWITCH_ID_PROD_NUM_MASK);
|
|
||||||
return table[i].name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,8 +68,6 @@
|
||||||
#define PORT_PCS_CTRL_UNFORCED 0x03
|
#define PORT_PCS_CTRL_UNFORCED 0x03
|
||||||
#define PORT_PAUSE_CTRL 0x02
|
#define PORT_PAUSE_CTRL 0x02
|
||||||
#define PORT_SWITCH_ID 0x03
|
#define PORT_SWITCH_ID 0x03
|
||||||
#define PORT_SWITCH_ID_PROD_NUM_MASK 0xfff0
|
|
||||||
#define PORT_SWITCH_ID_REV_MASK 0x000f
|
|
||||||
#define PORT_SWITCH_ID_6031 0x0310
|
#define PORT_SWITCH_ID_6031 0x0310
|
||||||
#define PORT_SWITCH_ID_6035 0x0350
|
#define PORT_SWITCH_ID_6035 0x0350
|
||||||
#define PORT_SWITCH_ID_6046 0x0480
|
#define PORT_SWITCH_ID_6046 0x0480
|
||||||
|
@ -84,18 +82,11 @@
|
||||||
#define PORT_SWITCH_ID_6121 0x1040
|
#define PORT_SWITCH_ID_6121 0x1040
|
||||||
#define PORT_SWITCH_ID_6122 0x1050
|
#define PORT_SWITCH_ID_6122 0x1050
|
||||||
#define PORT_SWITCH_ID_6123 0x1210
|
#define PORT_SWITCH_ID_6123 0x1210
|
||||||
#define PORT_SWITCH_ID_6123_A1 0x1212
|
|
||||||
#define PORT_SWITCH_ID_6123_A2 0x1213
|
|
||||||
#define PORT_SWITCH_ID_6131 0x1060
|
#define PORT_SWITCH_ID_6131 0x1060
|
||||||
#define PORT_SWITCH_ID_6131_B2 0x1066
|
|
||||||
#define PORT_SWITCH_ID_6152 0x1a40
|
#define PORT_SWITCH_ID_6152 0x1a40
|
||||||
#define PORT_SWITCH_ID_6155 0x1a50
|
#define PORT_SWITCH_ID_6155 0x1a50
|
||||||
#define PORT_SWITCH_ID_6161 0x1610
|
#define PORT_SWITCH_ID_6161 0x1610
|
||||||
#define PORT_SWITCH_ID_6161_A1 0x1612
|
|
||||||
#define PORT_SWITCH_ID_6161_A2 0x1613
|
|
||||||
#define PORT_SWITCH_ID_6165 0x1650
|
#define PORT_SWITCH_ID_6165 0x1650
|
||||||
#define PORT_SWITCH_ID_6165_A1 0x1652
|
|
||||||
#define PORT_SWITCH_ID_6165_A2 0x1653
|
|
||||||
#define PORT_SWITCH_ID_6171 0x1710
|
#define PORT_SWITCH_ID_6171 0x1710
|
||||||
#define PORT_SWITCH_ID_6172 0x1720
|
#define PORT_SWITCH_ID_6172 0x1720
|
||||||
#define PORT_SWITCH_ID_6175 0x1750
|
#define PORT_SWITCH_ID_6175 0x1750
|
||||||
|
@ -104,16 +95,10 @@
|
||||||
#define PORT_SWITCH_ID_6185 0x1a70
|
#define PORT_SWITCH_ID_6185 0x1a70
|
||||||
#define PORT_SWITCH_ID_6240 0x2400
|
#define PORT_SWITCH_ID_6240 0x2400
|
||||||
#define PORT_SWITCH_ID_6320 0x1150
|
#define PORT_SWITCH_ID_6320 0x1150
|
||||||
#define PORT_SWITCH_ID_6320_A1 0x1151
|
|
||||||
#define PORT_SWITCH_ID_6320_A2 0x1152
|
|
||||||
#define PORT_SWITCH_ID_6321 0x3100
|
#define PORT_SWITCH_ID_6321 0x3100
|
||||||
#define PORT_SWITCH_ID_6321_A1 0x3101
|
|
||||||
#define PORT_SWITCH_ID_6321_A2 0x3102
|
|
||||||
#define PORT_SWITCH_ID_6350 0x3710
|
#define PORT_SWITCH_ID_6350 0x3710
|
||||||
#define PORT_SWITCH_ID_6351 0x3750
|
#define PORT_SWITCH_ID_6351 0x3750
|
||||||
#define PORT_SWITCH_ID_6352 0x3520
|
#define PORT_SWITCH_ID_6352 0x3520
|
||||||
#define PORT_SWITCH_ID_6352_A0 0x3521
|
|
||||||
#define PORT_SWITCH_ID_6352_A1 0x3522
|
|
||||||
#define PORT_CONTROL 0x04
|
#define PORT_CONTROL 0x04
|
||||||
#define PORT_CONTROL_USE_CORE_TAG BIT(15)
|
#define PORT_CONTROL_USE_CORE_TAG BIT(15)
|
||||||
#define PORT_CONTROL_DROP_ON_LOCK BIT(14)
|
#define PORT_CONTROL_DROP_ON_LOCK BIT(14)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче