All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X
@ 2019-02-28 21:14 ` Maxime Chevallier
  0 siblings, 0 replies; 6+ messages in thread
From: Maxime Chevallier @ 2019-02-28 21:14 UTC (permalink / raw)
  To: davem
  Cc: Maxime Chevallier, netdev, linux-kernel, Andrew Lunn,
	Florian Fainelli, Heiner Kallweit, Vivien Didelot,
	linux-arm-kernel, Antoine Tenart, thomas.petazzoni,
	gregory.clement, miquel.raynal, nadavh, stefanc

Upon setting the cmode on 6390 and 6390X, the associated serdes
interfaces must be powered off/on.

Both 6390X and 6390 share code to do so, but it currently uses the 6390
specific helper mv88e6390_serdes_power() to disable and enable the
serdes interface.

This call will fail silently on 6390X when trying so set a 10G interface
such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
the lane number based on modes supported by the 6390, and returns 0 when
getting -ENODEV as a lane number.

Using mv88e6390x_serdes_power() should be safe here, since we explicitly
rule-out all ports but the 9 and 10, and because modes supported by 6390
ports 9 and 10 are a subset of those supported on 6390X.

This was tested on 6390X using RXAUI mode.

Fixes: 364e9d7776a3 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
---
 drivers/net/dsa/mv88e6xxx/port.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c
index ebd26b6a93e6..4b02c96f6786 100644
--- a/drivers/net/dsa/mv88e6xxx/port.c
+++ b/drivers/net/dsa/mv88e6xxx/port.c
@@ -408,7 +408,7 @@ int mv88e6390x_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
 			return err;
 	}
 
-	err = mv88e6390_serdes_power(chip, port, false);
+	err = mv88e6390x_serdes_power(chip, port, false);
 	if (err)
 		return err;
 
@@ -424,7 +424,7 @@ int mv88e6390x_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
 		if (err)
 			return err;
 
-		err = mv88e6390_serdes_power(chip, port, true);
+		err = mv88e6390x_serdes_power(chip, port, true);
 		if (err)
 			return err;
 
-- 
2.19.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X
@ 2019-02-28 21:14 ` Maxime Chevallier
  0 siblings, 0 replies; 6+ messages in thread
From: Maxime Chevallier @ 2019-02-28 21:14 UTC (permalink / raw)
  To: davem
  Cc: Andrew Lunn, Florian Fainelli, Antoine Tenart, netdev,
	gregory.clement, linux-kernel, Maxime Chevallier, nadavh,
	thomas.petazzoni, miquel.raynal, stefanc, Vivien Didelot,
	linux-arm-kernel, Heiner Kallweit

Upon setting the cmode on 6390 and 6390X, the associated serdes
interfaces must be powered off/on.

Both 6390X and 6390 share code to do so, but it currently uses the 6390
specific helper mv88e6390_serdes_power() to disable and enable the
serdes interface.

This call will fail silently on 6390X when trying so set a 10G interface
such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
the lane number based on modes supported by the 6390, and returns 0 when
getting -ENODEV as a lane number.

Using mv88e6390x_serdes_power() should be safe here, since we explicitly
rule-out all ports but the 9 and 10, and because modes supported by 6390
ports 9 and 10 are a subset of those supported on 6390X.

This was tested on 6390X using RXAUI mode.

Fixes: 364e9d7776a3 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
---
 drivers/net/dsa/mv88e6xxx/port.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c
index ebd26b6a93e6..4b02c96f6786 100644
--- a/drivers/net/dsa/mv88e6xxx/port.c
+++ b/drivers/net/dsa/mv88e6xxx/port.c
@@ -408,7 +408,7 @@ int mv88e6390x_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
 			return err;
 	}
 
-	err = mv88e6390_serdes_power(chip, port, false);
+	err = mv88e6390x_serdes_power(chip, port, false);
 	if (err)
 		return err;
 
@@ -424,7 +424,7 @@ int mv88e6390x_port_set_cmode(struct mv88e6xxx_chip *chip, int port,
 		if (err)
 			return err;
 
-		err = mv88e6390_serdes_power(chip, port, true);
+		err = mv88e6390x_serdes_power(chip, port, true);
 		if (err)
 			return err;
 
-- 
2.19.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X
  2019-02-28 21:14 ` Maxime Chevallier
@ 2019-02-28 21:54   ` Andrew Lunn
  -1 siblings, 0 replies; 6+ messages in thread
From: Andrew Lunn @ 2019-02-28 21:54 UTC (permalink / raw)
  To: Maxime Chevallier
  Cc: davem, netdev, linux-kernel, Florian Fainelli, Heiner Kallweit,
	Vivien Didelot, linux-arm-kernel, Antoine Tenart,
	thomas.petazzoni, gregory.clement, miquel.raynal, nadavh,
	stefanc

On Thu, Feb 28, 2019 at 10:14:33PM +0100, Maxime Chevallier wrote:
> Upon setting the cmode on 6390 and 6390X, the associated serdes
> interfaces must be powered off/on.
> 
> Both 6390X and 6390 share code to do so, but it currently uses the 6390
> specific helper mv88e6390_serdes_power() to disable and enable the
> serdes interface.
> 
> This call will fail silently on 6390X when trying so set a 10G interface
> such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
> the lane number based on modes supported by the 6390, and returns 0 when
> getting -ENODEV as a lane number.
> 
> Using mv88e6390x_serdes_power() should be safe here, since we explicitly
> rule-out all ports but the 9 and 10, and because modes supported by 6390
> ports 9 and 10 are a subset of those supported on 6390X.
> 
> This was tested on 6390X using RXAUI mode.
> 
> Fixes: 364e9d7776a3 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X
@ 2019-02-28 21:54   ` Andrew Lunn
  0 siblings, 0 replies; 6+ messages in thread
From: Andrew Lunn @ 2019-02-28 21:54 UTC (permalink / raw)
  To: Maxime Chevallier
  Cc: Florian Fainelli, Antoine Tenart, netdev, gregory.clement,
	linux-kernel, Vivien Didelot, nadavh, thomas.petazzoni,
	miquel.raynal, stefanc, davem, linux-arm-kernel, Heiner Kallweit

On Thu, Feb 28, 2019 at 10:14:33PM +0100, Maxime Chevallier wrote:
> Upon setting the cmode on 6390 and 6390X, the associated serdes
> interfaces must be powered off/on.
> 
> Both 6390X and 6390 share code to do so, but it currently uses the 6390
> specific helper mv88e6390_serdes_power() to disable and enable the
> serdes interface.
> 
> This call will fail silently on 6390X when trying so set a 10G interface
> such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
> the lane number based on modes supported by the 6390, and returns 0 when
> getting -ENODEV as a lane number.
> 
> Using mv88e6390x_serdes_power() should be safe here, since we explicitly
> rule-out all ports but the 9 and 10, and because modes supported by 6390
> ports 9 and 10 are a subset of those supported on 6390X.
> 
> This was tested on 6390X using RXAUI mode.
> 
> Fixes: 364e9d7776a3 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X
  2019-02-28 21:14 ` Maxime Chevallier
@ 2019-02-28 23:16   ` David Miller
  -1 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2019-02-28 23:16 UTC (permalink / raw)
  To: maxime.chevallier
  Cc: netdev, linux-kernel, andrew, f.fainelli, hkallweit1,
	vivien.didelot, linux-arm-kernel, antoine.tenart,
	thomas.petazzoni, gregory.clement, miquel.raynal, nadavh,
	stefanc

From: Maxime Chevallier <maxime.chevallier@bootlin.com>
Date: Thu, 28 Feb 2019 22:14:33 +0100

> Upon setting the cmode on 6390 and 6390X, the associated serdes
> interfaces must be powered off/on.
> 
> Both 6390X and 6390 share code to do so, but it currently uses the 6390
> specific helper mv88e6390_serdes_power() to disable and enable the
> serdes interface.
> 
> This call will fail silently on 6390X when trying so set a 10G interface
> such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
> the lane number based on modes supported by the 6390, and returns 0 when
> getting -ENODEV as a lane number.
> 
> Using mv88e6390x_serdes_power() should be safe here, since we explicitly
> rule-out all ports but the 9 and 10, and because modes supported by 6390
> ports 9 and 10 are a subset of those supported on 6390X.
> 
> This was tested on 6390X using RXAUI mode.
> 
> Fixes: 364e9d7776a3 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>

Applied and queued up for -stable.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X
@ 2019-02-28 23:16   ` David Miller
  0 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2019-02-28 23:16 UTC (permalink / raw)
  To: maxime.chevallier
  Cc: andrew, f.fainelli, antoine.tenart, netdev, gregory.clement,
	linux-kernel, nadavh, thomas.petazzoni, miquel.raynal, stefanc,
	vivien.didelot, linux-arm-kernel, hkallweit1

From: Maxime Chevallier <maxime.chevallier@bootlin.com>
Date: Thu, 28 Feb 2019 22:14:33 +0100

> Upon setting the cmode on 6390 and 6390X, the associated serdes
> interfaces must be powered off/on.
> 
> Both 6390X and 6390 share code to do so, but it currently uses the 6390
> specific helper mv88e6390_serdes_power() to disable and enable the
> serdes interface.
> 
> This call will fail silently on 6390X when trying so set a 10G interface
> such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
> the lane number based on modes supported by the 6390, and returns 0 when
> getting -ENODEV as a lane number.
> 
> Using mv88e6390x_serdes_power() should be safe here, since we explicitly
> rule-out all ports but the 9 and 10, and because modes supported by 6390
> ports 9 and 10 are a subset of those supported on 6390X.
> 
> This was tested on 6390X using RXAUI mode.
> 
> Fixes: 364e9d7776a3 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>

Applied and queued up for -stable.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-02-28 23:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-28 21:14 [PATCH net] net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X Maxime Chevallier
2019-02-28 21:14 ` Maxime Chevallier
2019-02-28 21:54 ` Andrew Lunn
2019-02-28 21:54   ` Andrew Lunn
2019-02-28 23:16 ` David Miller
2019-02-28 23:16   ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.