Message ID | 1327303254-28573-1-git-send-email-cphealy@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Hello, On 01/23/12 08:20, Chris Healy wrote: > Add reporting of silicon revision during the probe function for Marvell 88E6123/88E6161/88E6165 switches. > > Signed-off-by: Chris Healy<cphealy@gmail.com> > --- > drivers/net/dsa/mv88e6123_61_65.c | 21 +++++++++++++++++---- > 1 files changed, 17 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/dsa/mv88e6123_61_65.c b/drivers/net/dsa/mv88e6123_61_65.c > index c0a458f..6f23c95 100644 > --- a/drivers/net/dsa/mv88e6123_61_65.c > +++ b/drivers/net/dsa/mv88e6123_61_65.c > @@ -20,12 +20,25 @@ static char *mv88e6123_61_65_probe(struct mii_bus *bus, int sw_addr) > > ret = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), 0x03); > if (ret>= 0) { > - ret&= 0xfff0; > - if (ret == 0x1210) > + if (ret == 0x1212) > + return "Marvell 88E6123 (A1)"; > + if (ret == 0x1213) > + return "Marvell 88E6123 (A2)"; > + if ((ret& 0xfff0) == 0x1210) > return "Marvell 88E6123"; > - if (ret == 0x1610) > + > + if (ret == 0x1612) > + return "Marvell 88E6161 (A1)"; > + if (ret == 0x1613) > + return "Marvell 88E6161 (A2)"; > + if ((ret& 0xfff0) == 0x1610) > return "Marvell 88E6161"; > - if (ret == 0x1650) > + > + if (ret == 0x1652) > + return "Marvell 88E6165 (A1)"; > + if (ret == 0x1653) > + return "Marvell 88e6165 (A2)"; > + if ((ret& 0xfff0) == 0x1650) > return "Marvell 88E6165"; > } What about a switch/case here? -- Florian -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Florian Fainelli <florian@openwrt.org> Date: Mon, 23 Jan 2012 10:48:10 +0100 > On 01/23/12 08:20, Chris Healy wrote: >> + if ((ret& 0xfff0) == 0x1650) >> return "Marvell 88E6165"; >> } > > What about a switch/case here? I don't think you can express "(ret& 0xfff0) == 0x1650)" using a switch statement. But BTW, the formatting of that expression needs to be cleaned up. It should be "(ret & 0xfff0) == 0x1650)" -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 2012-01-23 at 13:59 -0500, David Miller wrote: > From: Florian Fainelli <florian@openwrt.org> > Date: Mon, 23 Jan 2012 10:48:10 +0100 > > > On 01/23/12 08:20, Chris Healy wrote: > >> + if ((ret& 0xfff0) == 0x1650) > >> return "Marvell 88E6165"; > >> } > > > > What about a switch/case here? > > I don't think you can express "(ret& 0xfff0) == 0x1650)" using > a switch statement. > > But BTW, the formatting of that expression needs to be cleaned up. > It should be "(ret & 0xfff0) == 0x1650)" Florian's mailer has mangled the quoted text; the original patch had correct spacing. Ben.
From: Ben Hutchings <bhutchings@solarflare.com> Date: Mon, 23 Jan 2012 19:35:32 +0000 > On Mon, 2012-01-23 at 13:59 -0500, David Miller wrote: >> From: Florian Fainelli <florian@openwrt.org> >> Date: Mon, 23 Jan 2012 10:48:10 +0100 >> >> > On 01/23/12 08:20, Chris Healy wrote: >> >> + if ((ret& 0xfff0) == 0x1650) >> >> return "Marvell 88E6165"; >> >> } >> > >> > What about a switch/case here? >> >> I don't think you can express "(ret& 0xfff0) == 0x1650)" using >> a switch statement. >> >> But BTW, the formatting of that expression needs to be cleaned up. >> It should be "(ret & 0xfff0) == 0x1650)" > > Florian's mailer has mangled the quoted text; the original patch had > correct spacing. Thanks for pointing that out, then the patch is fine, applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/dsa/mv88e6123_61_65.c b/drivers/net/dsa/mv88e6123_61_65.c index c0a458f..6f23c95 100644 --- a/drivers/net/dsa/mv88e6123_61_65.c +++ b/drivers/net/dsa/mv88e6123_61_65.c @@ -20,12 +20,25 @@ static char *mv88e6123_61_65_probe(struct mii_bus *bus, int sw_addr) ret = __mv88e6xxx_reg_read(bus, sw_addr, REG_PORT(0), 0x03); if (ret >= 0) { - ret &= 0xfff0; - if (ret == 0x1210) + if (ret == 0x1212) + return "Marvell 88E6123 (A1)"; + if (ret == 0x1213) + return "Marvell 88E6123 (A2)"; + if ((ret & 0xfff0) == 0x1210) return "Marvell 88E6123"; - if (ret == 0x1610) + + if (ret == 0x1612) + return "Marvell 88E6161 (A1)"; + if (ret == 0x1613) + return "Marvell 88E6161 (A2)"; + if ((ret & 0xfff0) == 0x1610) return "Marvell 88E6161"; - if (ret == 0x1650) + + if (ret == 0x1652) + return "Marvell 88E6165 (A1)"; + if (ret == 0x1653) + return "Marvell 88e6165 (A2)"; + if ((ret & 0xfff0) == 0x1650) return "Marvell 88E6165"; }
Add reporting of silicon revision during the probe function for Marvell 88E6123/88E6161/88E6165 switches. Signed-off-by: Chris Healy <cphealy@gmail.com> --- drivers/net/dsa/mv88e6123_61_65.c | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 deletions(-)