diff mbox

[1/1] dsa: Add reporting of silicon revision for Marvell 88E6123/88E6161/88E6165 switches.

Message ID 1327303254-28573-1-git-send-email-cphealy@gmail.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Chris Healy Jan. 23, 2012, 7:20 a.m. UTC
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(-)

Comments

Florian Fainelli Jan. 23, 2012, 9:48 a.m. UTC | #1
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
David Miller Jan. 23, 2012, 6:59 p.m. UTC | #2
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
Ben Hutchings Jan. 23, 2012, 7:35 p.m. UTC | #3
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.
David Miller Jan. 23, 2012, 7:46 p.m. UTC | #4
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 mbox

Patch

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";
 	}