[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200719152848.GH1383417@lunn.ch>
Date: Sun, 19 Jul 2020 17:28:48 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Russell King <rmk+kernel@...linux.org.uk>
Cc: Florian Fainelli <f.fainelli@...il.com>,
Heiner Kallweit <hkallweit1@...il.com>,
Martin Rowe <martin.p.rowe@...il.com>,
"David S. Miller" <davem@...emloft.net>,
devicetree@...r.kernel.org,
Gregory Clement <gregory.clement@...tlin.com>,
Jakub Kicinski <kuba@...nel.org>,
Jason Cooper <jason@...edaemon.net>,
linux-arm-kernel@...ts.infradead.org, netdev@...r.kernel.org,
Rob Herring <robh+dt@...nel.org>,
Sebastian Hesselbarth <sebastian.hesselbarth@...il.com>,
Vivien Didelot <vivien.didelot@...il.com>
Subject: Re: [PATCH net] net: dsa: mv88e6xxx: fix in-band AN link
establishment
On Sun, Jul 19, 2020 at 12:00:35PM +0100, Russell King wrote:
> If in-band negotiation or fixed-link modes are specified for a DSA
> port, the DSA code will force the link down during initialisation. For
> fixed-link mode, this is fine, as phylink will manage the link state.
> However, for in-band mode, phylink expects the PCS to detect link,
> which will not happen if the link is forced down.
>
> There is a related issue that in in-band mode, the link could come up
> while we are making configuration changes, so we should force the link
> down prior to reconfiguring the interface mode.
>
> This patch addresses both issues.
>
> Fixes: 3be98b2d5fbc ("net: dsa: Down cpu/dsa ports phylink will control")
> Signed-off-by: Russell King <rmk+kernel@...linux.org.uk>
> ---
> drivers/net/dsa/mv88e6xxx/chip.c | 20 +++++++++++++++++---
> drivers/net/dsa/mv88e6xxx/chip.h | 1 +
> 2 files changed, 18 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
> index 0bce26f1df93..9c7b8cf0e39a 100644
> --- a/drivers/net/dsa/mv88e6xxx/chip.c
> +++ b/drivers/net/dsa/mv88e6xxx/chip.c
> @@ -664,6 +664,7 @@ static void mv88e6xxx_mac_config(struct dsa_switch *ds, int port,
> const struct phylink_link_state *state)
> {
> struct mv88e6xxx_chip *chip = ds->priv;
> + struct mv88e6xxx_port *p = &chip->ports[port];
> int err;
David might not like the reverse christmas tree breakage, but:
Reviewed-by: Andrew Lunn <andrew@...n.ch>
Andrew
Powered by blists - more mailing lists