On 1/14/19 6:23 AM, Andrew Lunn wrote: > On Mon, Jan 14, 2019 at 01:34:44PM +0200, Samu Nuutamo wrote: >> Hi, >> >> We have an imx6q-b450v3 board that has one of the switch ports configured as >> a >> fixed link. After upgrading the kernel to version 4.18 the link has >> experienced >> a small amount of packet loss, around 0.15%. >> >> The issue was bisected to a commit: aab9c4067d23 net: dsa: Plug in PHYLINK >> support >> >> After enabling debug we could see that the new phylink code causes the link >> to >> reset once every second: >> >> [ 309.992368] mv88e6085 gpio-0:00 enembc: phylink_mac_config: >> mode=fixed//100Mbps/Full adv=00000,00000208 pause=10 link=1 an=1 >> [ 309.998451] mv88e6085 gpio-0:00: p5: Force link down >> [ 309.998869] mv88e6085 gpio-0:00: p5: Speed set to 100 Mbps >> [ 309.999280] mv88e6085 gpio-0:00: p5: Force full duplex >> [ 309.999895] mv88e6085 gpio-0:00: p5: Force link up >> [ 311.032400] mv88e6085 gpio-0:00 enembc: phylink_mac_config: >> mode=fixed//100Mbps/Full adv=00000,00000208 pause=10 link=1 an=1 >> [ 311.038248] mv88e6085 gpio-0:00: p5: Force link down >> [ 311.038660] mv88e6085 gpio-0:00: p5: Speed set to 100 Mbps >> [ 311.039069] mv88e6085 gpio-0:00: p5: Force full duplex >> [ 311.039678] mv88e6085 gpio-0:00: p5: Force link up >> [ 312.072328] mv88e6085 gpio-0:00 enembc: phylink_mac_config: >> mode=fixed//100Mbps/Full adv=00000,00000208 pause=10 link=1 an=1 >> [ 312.077603] mv88e6085 gpio-0:00: p5: Force link down >> [ 312.078010] mv88e6085 gpio-0:00: p5: Speed set to 100 Mbps >> [ 312.078417] mv88e6085 gpio-0:00: p5: Force full duplex >> [ 312.079026] mv88e6085 gpio-0:00: p5: Force link up > > Hi Samu > > Thanks for the report. > > I think we should be fixing this from the other end. Why does PHYLINK > reset the link once per second? If you have time, please could you > investigate that.
Samu, is this fixed link using a GPIO to determine the link state? Does this patch help at all? diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 8a517d8fb9d1..9dedb9b22c13 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -721,7 +721,7 @@ static void mv88e6xxx_mac_config(struct dsa_switch *ds, int port, return; if (mode == MLO_AN_FIXED) { - link = LINK_FORCED_UP; + link = state->link; speed = state->speed; duplex = state->duplex; } else if (!mv88e6xxx_phy_is_internal(ds, port)) { -- Florian