1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/dsa/mv88e6xxx
Russell King (Oracle) 04ec4e6250 net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports
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: 3be98b2d5f ("net: dsa: Down cpu/dsa ports phylink will control")
Cc: <stable@vger.kernel.org> # 5.7: 2b29cb9e3f: 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>
2021-12-09 08:48:40 -08:00
..
chip.c net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports 2021-12-09 08:48:40 -08:00
chip.h net: dsa: mv88e6xxx: isolate the ATU databases of standalone and bridged ports 2021-10-08 15:47:46 -07:00
devlink.c net: dsa: tear down devlink port regions when tearing down the devlink port on error 2021-09-19 13:05:44 +01:00
devlink.h net: dsa: tear down devlink port regions when tearing down the devlink port on error 2021-09-19 13:05:44 +01:00
global1.c dsa: mv88e6xxx: Fix MTU definition 2021-09-27 13:31:10 +01:00
global1.h net: dsa: mv88e6xxx: add support for mv88e6393x family 2021-03-17 14:44:18 -07:00
global1_atu.c net: mv88e6xxx: convert comma to semicolon 2020-12-09 16:23:08 -08:00
global1_vtu.c net: dsa: mv88e6xxx: use mv88e6185_g1_vtu_loadpurge() for the 6250 2021-01-26 17:58:28 -08:00
global2.c net: dsa: mv88e6xxx: Export cross-chip PVT as devlink region 2021-04-21 10:25:09 -07:00
global2.h net: dsa: mv88e6xxx: Export cross-chip PVT as devlink region 2021-04-21 10:25:09 -07:00
global2_avb.c net: dsa: mv88e6xxx: wait for AVB Busy bit 2019-08-11 21:27:15 -07:00
global2_scratch.c net: dsa: mv88e6xxx: fix up kerneldoc some more 2021-03-22 13:09:02 -07:00
hwtstamp.c net: dsa: no longer clone skb in core driver 2021-04-27 14:10:15 -07:00
hwtstamp.h net: dsa: no longer clone skb in core driver 2021-04-27 14:10:15 -07:00
Kconfig ethernet: fix PTP_1588_CLOCK dependencies 2021-08-13 17:49:05 -07:00
Makefile net: dsa: mv88e6xxx: Make global2 support mandatory 2021-01-27 19:28:16 -08:00
phy.c net: dsa: mv88e6xxx: introduce helpers for handling chip->reg_lock 2019-06-23 11:11:11 -07:00
phy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
port.c net: dsa: mv88e6xxx: keep the pvid at 0 when VLAN-unaware 2021-10-08 15:47:46 -07:00
port.h net: dsa: mv88e6xxx: keep the pvid at 0 when VLAN-unaware 2021-10-08 15:47:46 -07:00
port_hidden.c net: dsa: mv88e6xxx: update code operating on hidden registers 2019-08-27 21:42:16 -07:00
ptp.c mv88e6xxx: Reject requests to enable time stamping on both edges. 2019-11-15 12:48:32 -08:00
ptp.h net: dsa: mv88e6xxx: add PTP support for MV88E6250 family 2019-08-02 17:58:53 -07:00
serdes.c net: dsa: mv88e6xxx: error handling for serdes_power functions 2021-12-09 07:46:27 -08:00
serdes.h net: dsa: mv88e6xxx: Fix inband AN for 2500base-x on 88E6393X family 2021-12-01 14:39:10 +00:00
smi.c net: dsa: mv88e6xxx: add delay in direct SMI wait 2019-08-11 21:27:15 -07:00
smi.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00