Commit 22356476 authored by Vivien Didelot's avatar Vivien Didelot Committed by David S. Miller

net: dsa: mv88e6xxx: add family to info

Add an mv88e6xxx_family enum to the info structure for better family
indentification.
Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f6271e67
...@@ -20,12 +20,15 @@ ...@@ -20,12 +20,15 @@
static const struct mv88e6xxx_info mv88e6123_table[] = { static const struct mv88e6xxx_info mv88e6123_table[] = {
{ {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6123, .prod_num = PORT_SWITCH_ID_PROD_NUM_6123,
.family = MV88E6XXX_FAMILY_6165,
.name = "Marvell 88E6123", .name = "Marvell 88E6123",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6161, .prod_num = PORT_SWITCH_ID_PROD_NUM_6161,
.family = MV88E6XXX_FAMILY_6165,
.name = "Marvell 88E6161", .name = "Marvell 88E6161",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6165, .prod_num = PORT_SWITCH_ID_PROD_NUM_6165,
.family = MV88E6XXX_FAMILY_6165,
.name = "Marvell 88E6165", .name = "Marvell 88E6165",
} }
}; };
......
...@@ -20,15 +20,19 @@ ...@@ -20,15 +20,19 @@
static const struct mv88e6xxx_info mv88e6131_table[] = { static const struct mv88e6xxx_info mv88e6131_table[] = {
{ {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6095, .prod_num = PORT_SWITCH_ID_PROD_NUM_6095,
.family = MV88E6XXX_FAMILY_6095,
.name = "Marvell 88E6095/88E6095F", .name = "Marvell 88E6095/88E6095F",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6085, .prod_num = PORT_SWITCH_ID_PROD_NUM_6085,
.family = MV88E6XXX_FAMILY_6097,
.name = "Marvell 88E6085", .name = "Marvell 88E6085",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6131, .prod_num = PORT_SWITCH_ID_PROD_NUM_6131,
.family = MV88E6XXX_FAMILY_6185,
.name = "Marvell 88E6131", .name = "Marvell 88E6131",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6185, .prod_num = PORT_SWITCH_ID_PROD_NUM_6185,
.family = MV88E6XXX_FAMILY_6185,
.name = "Marvell 88E6185", .name = "Marvell 88E6185",
} }
}; };
......
...@@ -20,15 +20,19 @@ ...@@ -20,15 +20,19 @@
static const struct mv88e6xxx_info mv88e6171_table[] = { static const struct mv88e6xxx_info mv88e6171_table[] = {
{ {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6171, .prod_num = PORT_SWITCH_ID_PROD_NUM_6171,
.family = MV88E6XXX_FAMILY_6351,
.name = "Marvell 88E6171", .name = "Marvell 88E6171",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6175, .prod_num = PORT_SWITCH_ID_PROD_NUM_6175,
.family = MV88E6XXX_FAMILY_6351,
.name = "Marvell 88E6175", .name = "Marvell 88E6175",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6350, .prod_num = PORT_SWITCH_ID_PROD_NUM_6350,
.family = MV88E6XXX_FAMILY_6351,
.name = "Marvell 88E6350", .name = "Marvell 88E6350",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6351, .prod_num = PORT_SWITCH_ID_PROD_NUM_6351,
.family = MV88E6XXX_FAMILY_6351,
.name = "Marvell 88E6351", .name = "Marvell 88E6351",
} }
}; };
......
...@@ -25,21 +25,27 @@ ...@@ -25,21 +25,27 @@
static const struct mv88e6xxx_info mv88e6352_table[] = { static const struct mv88e6xxx_info mv88e6352_table[] = {
{ {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6320, .prod_num = PORT_SWITCH_ID_PROD_NUM_6320,
.family = MV88E6XXX_FAMILY_6320,
.name = "Marvell 88E6320", .name = "Marvell 88E6320",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6321, .prod_num = PORT_SWITCH_ID_PROD_NUM_6321,
.family = MV88E6XXX_FAMILY_6320,
.name = "Marvell 88E6321", .name = "Marvell 88E6321",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6172, .prod_num = PORT_SWITCH_ID_PROD_NUM_6172,
.family = MV88E6XXX_FAMILY_6352,
.name = "Marvell 88E6172", .name = "Marvell 88E6172",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6176, .prod_num = PORT_SWITCH_ID_PROD_NUM_6176,
.family = MV88E6XXX_FAMILY_6352,
.name = "Marvell 88E6176", .name = "Marvell 88E6176",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6240, .prod_num = PORT_SWITCH_ID_PROD_NUM_6240,
.family = MV88E6XXX_FAMILY_6352,
.name = "Marvell 88E6240", .name = "Marvell 88E6240",
}, { }, {
.prod_num = PORT_SWITCH_ID_PROD_NUM_6352, .prod_num = PORT_SWITCH_ID_PROD_NUM_6352,
.family = MV88E6XXX_FAMILY_6352,
.name = "Marvell 88E6352", .name = "Marvell 88E6352",
} }
}; };
......
...@@ -402,111 +402,56 @@ static bool mv88e6xxx_6065_family(struct dsa_switch *ds) ...@@ -402,111 +402,56 @@ static bool mv88e6xxx_6065_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6065;
case PORT_SWITCH_ID_6031:
case PORT_SWITCH_ID_6061:
case PORT_SWITCH_ID_6035:
case PORT_SWITCH_ID_6065:
return true;
}
return false;
} }
static bool mv88e6xxx_6095_family(struct dsa_switch *ds) static bool mv88e6xxx_6095_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6095;
case PORT_SWITCH_ID_6092:
case PORT_SWITCH_ID_6095:
return true;
}
return false;
} }
static bool mv88e6xxx_6097_family(struct dsa_switch *ds) static bool mv88e6xxx_6097_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6097;
case PORT_SWITCH_ID_6046:
case PORT_SWITCH_ID_6085:
case PORT_SWITCH_ID_6096:
case PORT_SWITCH_ID_6097:
return true;
}
return false;
} }
static bool mv88e6xxx_6165_family(struct dsa_switch *ds) static bool mv88e6xxx_6165_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6165;
case PORT_SWITCH_ID_6123:
case PORT_SWITCH_ID_6161:
case PORT_SWITCH_ID_6165:
return true;
}
return false;
} }
static bool mv88e6xxx_6185_family(struct dsa_switch *ds) static bool mv88e6xxx_6185_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6185;
case PORT_SWITCH_ID_6121:
case PORT_SWITCH_ID_6122:
case PORT_SWITCH_ID_6152:
case PORT_SWITCH_ID_6155:
case PORT_SWITCH_ID_6182:
case PORT_SWITCH_ID_6185:
case PORT_SWITCH_ID_6108:
case PORT_SWITCH_ID_6131:
return true;
}
return false;
} }
static bool mv88e6xxx_6320_family(struct dsa_switch *ds) static bool mv88e6xxx_6320_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6320;
case PORT_SWITCH_ID_6320:
case PORT_SWITCH_ID_6321:
return true;
}
return false;
} }
static bool mv88e6xxx_6351_family(struct dsa_switch *ds) static bool mv88e6xxx_6351_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6351;
case PORT_SWITCH_ID_6171:
case PORT_SWITCH_ID_6175:
case PORT_SWITCH_ID_6350:
case PORT_SWITCH_ID_6351:
return true;
}
return false;
} }
static bool mv88e6xxx_6352_family(struct dsa_switch *ds) static bool mv88e6xxx_6352_family(struct dsa_switch *ds)
{ {
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
switch (ps->id) { return ps->info->family == MV88E6XXX_FAMILY_6352;
case PORT_SWITCH_ID_6172:
case PORT_SWITCH_ID_6176:
case PORT_SWITCH_ID_6240:
case PORT_SWITCH_ID_6352:
return true;
}
return false;
} }
static unsigned int mv88e6xxx_num_databases(struct dsa_switch *ds) static unsigned int mv88e6xxx_num_databases(struct dsa_switch *ds)
......
...@@ -369,7 +369,20 @@ ...@@ -369,7 +369,20 @@
#define MV88E6XXX_N_FID 4096 #define MV88E6XXX_N_FID 4096
enum mv88e6xxx_family {
MV88E6XXX_FAMILY_NONE,
MV88E6XXX_FAMILY_6065, /* 6031 6035 6061 6065 */
MV88E6XXX_FAMILY_6095, /* 6092 6095 */
MV88E6XXX_FAMILY_6097, /* 6046 6085 6096 6097 */
MV88E6XXX_FAMILY_6165, /* 6123 6161 6165 */
MV88E6XXX_FAMILY_6185, /* 6108 6121 6122 6131 6152 6155 6182 6185 */
MV88E6XXX_FAMILY_6320, /* 6320 6321 */
MV88E6XXX_FAMILY_6351, /* 6171 6175 6350 6351 */
MV88E6XXX_FAMILY_6352, /* 6172 6176 6240 6352 */
};
struct mv88e6xxx_info { struct mv88e6xxx_info {
enum mv88e6xxx_family family;
u16 prod_num; u16 prod_num;
const char *name; const char *name;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment