diff options
Diffstat (limited to 'drivers/net/dsa/mv88e6123_61_65.c')
-rw-r--r-- | drivers/net/dsa/mv88e6123_61_65.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/drivers/net/dsa/mv88e6123_61_65.c b/drivers/net/dsa/mv88e6123_61_65.c index c0a458fc698f..c17c75b9f531 100644 --- a/drivers/net/dsa/mv88e6123_61_65.c +++ b/drivers/net/dsa/mv88e6123_61_65.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/list.h> | 11 | #include <linux/list.h> |
12 | #include <linux/module.h> | ||
12 | #include <linux/netdevice.h> | 13 | #include <linux/netdevice.h> |
13 | #include <linux/phy.h> | 14 | #include <linux/phy.h> |
14 | #include <net/dsa.h> | 15 | #include <net/dsa.h> |
@@ -20,12 +21,25 @@ static char *mv88e6123_61_65_probe(struct mii_bus *bus, int sw_addr) | |||
20 | 21 | ||
21 | ret = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), 0x03); | 22 | ret = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), 0x03); |
22 | if (ret >= 0) { | 23 | if (ret >= 0) { |
23 | ret &= 0xfff0; | 24 | if (ret == 0x1212) |
24 | if (ret == 0x1210) | 25 | return "Marvell 88E6123 (A1)"; |
26 | if (ret == 0x1213) | ||
27 | return "Marvell 88E6123 (A2)"; | ||
28 | if ((ret & 0xfff0) == 0x1210) | ||
25 | return "Marvell 88E6123"; | 29 | return "Marvell 88E6123"; |
26 | if (ret == 0x1610) | 30 | |
31 | if (ret == 0x1612) | ||
32 | return "Marvell 88E6161 (A1)"; | ||
33 | if (ret == 0x1613) | ||
34 | return "Marvell 88E6161 (A2)"; | ||
35 | if ((ret & 0xfff0) == 0x1610) | ||
27 | return "Marvell 88E6161"; | 36 | return "Marvell 88E6161"; |
28 | if (ret == 0x1650) | 37 | |
38 | if (ret == 0x1652) | ||
39 | return "Marvell 88E6165 (A1)"; | ||
40 | if (ret == 0x1653) | ||
41 | return "Marvell 88e6165 (A2)"; | ||
42 | if ((ret & 0xfff0) == 0x1650) | ||
29 | return "Marvell 88E6165"; | 43 | return "Marvell 88E6165"; |
30 | } | 44 | } |
31 | 45 | ||