]> git.itanic.dy.fi Git - linux-stable/commit
net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 9 Dec 2021 09:26:47 +0000 (09:26 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Sep 2022 12:16:57 +0000 (14:16 +0200)
commitcae6172a9464779c8f9f79e12c16ed2cf4778072
tree13ad075bad0ad46af671d4beba0030d6a3c5de6c
parent4a6c6041e8d80e2ea464a969d90347a4c28e7a7e
net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports

[ Upstream commit 04ec4e6250e5f58b525b08f3dca45c7d7427620e ]

Martyn Welch reports that his CPU port is unable to link where it has
been necessary to use one of the switch ports with an internal PHY for
the CPU port. The reason behind this is the port control register is
left forcing the link down, preventing traffic flow.

This occurs because during initialisation, phylink expects the link to
be down, and DSA forces the link down by synthesising a call to the
DSA drivers phylink_mac_link_down() method, but we don't touch the
forced-link state when we later reconfigure the port.

Resolve this by also unforcing the link state when we are operating in
PHY mode and the PPU is set to poll the PHY to retrieve link status
information.

Reported-by: Martyn Welch <martyn.welch@collabora.com>
Tested-by: Martyn Welch <martyn.welch@collabora.com>
Fixes: 3be98b2d5fbc ("net: dsa: Down cpu/dsa ports phylink will control")
Cc: <stable@vger.kernel.org> # 5.7: 2b29cb9e3f7f: net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's"
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/E1mvFhP-00F8Zb-Ul@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/mv88e6xxx/chip.c