linux/drivers/net/dsa
Russell King (Oracle) 2b29cb9e3f net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's"
This commit fixes a misunderstanding in commit 4a3e0aeddf ("net: dsa:
mv88e6xxx: don't use PHY_DETECT on internal PHY's").

For Marvell DSA switches with the PHY_DETECT bit (for non-6250 family
devices), controls whether the PPU polls the PHY to retrieve the link,
speed, duplex and pause status to update the port configuration. This
applies for both internal and external PHYs.

For some switches such as 88E6352 and 88E6390X, PHY_DETECT has an
additional function of enabling auto-media mode between the internal
PHY and SERDES blocks depending on which first gains link.

The original intention of commit 5d5b231da7 (net: dsa: mv88e6xxx: use
PHY_DETECT in mac_link_up/mac_link_down) was to allow this bit to be
used to detect when this propagation is enabled, and allow software to
update the port configuration. This has found to be necessary for some
switches which do not automatically propagate status from the SERDES to
the port, which includes the 88E6390. However, commit 4a3e0aeddf
("net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's") breaks
this assumption.

Maarten Zanders has confirmed that the issue he was addressing was for
an 88E6250 switch, which does not have a PHY_DETECT bit in bit 12, but
instead a link status bit. Therefore, mv88e6xxx_port_ppu_updates() does
not report correctly.

This patch resolves the above issues by reverting Maarten's change and
instead making mv88e6xxx_port_ppu_updates() indicate whether the port
is internal for the 88E6250 family of switches.

  Yes, you're right, I'm targeting the 6250 family. And yes, your
  suggestion would solve my case and is a better implementation for
  the other devices (as far as I can see).

Fixes: 4a3e0aeddf ("net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Tested-by: Maarten Zanders <maarten.zanders@mind.be>
Link: https://lore.kernel.org/r/E1muXm7-00EwJB-7n@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-12-08 14:35:13 -08:00
..
b53 net: dsa: b53: Add SPI ID table 2021-12-02 13:05:17 +00:00
hirschmann net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
microchip net: dsa: microchip: implement multi-bridge support 2021-11-26 12:46:38 -08:00
mv88e6xxx net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's" 2021-12-08 14:35:13 -08:00
ocelot net: dsa: felix: fix broken VLAN-tagged PTP under VLAN-aware bridge 2021-11-03 14:22:00 +00:00
qca net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
sja1105 net: dsa: sja1105: serialize access to the dynamic config interface 2021-10-25 12:59:41 +01:00
xrs700x net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
bcm_sf2.c net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
bcm_sf2.h
bcm_sf2_cfp.c
bcm_sf2_regs.h
dsa_loop.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
dsa_loop.h
dsa_loop_bdinfo.c
Kconfig net: dsa: realtek-smi: add rtl8365mb subdriver for RTL8365MB-VC 2021-10-18 14:02:56 +01:00
lan9303-core.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303.h net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303_i2c.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303_mdio.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lantiq_gswip.c net: dsa: lantiq_gswip: serialize access to the PCE registers 2021-10-25 12:59:42 +01:00
lantiq_pce.h
Makefile net: dsa: realtek-smi: add rtl8365mb subdriver for RTL8365MB-VC 2021-10-18 14:02:56 +01:00
mt7530.c net: dsa: mt7530: correct ds->num_ports 2021-10-18 13:22:21 +01:00
mt7530.h net: dsa: mt7530: manually set up VLAN ID 0 2021-08-25 11:09:31 +01:00
mv88e6060.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
mv88e6060.h
qca8k.c net: dsa: qca8k: fix MTU calculation 2021-11-22 12:34:37 +00:00
qca8k.h net: dsa: qca8k: make sure PAD0 MAC06 exchange is disabled 2021-11-03 14:21:06 +00:00
realtek-smi-core.c net: dsa: realtek-smi: add rtl8365mb subdriver for RTL8365MB-VC 2021-10-18 14:02:56 +01:00
realtek-smi-core.h net: dsa: realtek-smi: add rtl8365mb subdriver for RTL8365MB-VC 2021-10-18 14:02:56 +01:00
rtl8365mb.c net: dsa: realtek-smi: fix indirect reg access for ports>3 2021-11-29 12:14:31 +00:00
rtl8366.c net: dsa: rtl8366: Drop and depromote pointless prints 2021-09-27 16:33:46 +01:00
rtl8366rb.c net: dsa: rtl8366rb: remove unneeded semicolon 2021-10-08 15:08:49 +01:00
vitesse-vsc73xx-core.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
vitesse-vsc73xx-platform.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
vitesse-vsc73xx-spi.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
vitesse-vsc73xx.h net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00