Thread (21 messages) flat view 21 messages, 4 authors, 2025-05-24

Re: [net-next PATCH v5 05/10] net: pcs: lynx: Convert to an MDIO driver

From: "Russell King (Oracle)" <linux@armlinux.org.uk>
Date: 2025-05-24 00:06:10
Also in: imx, lkml

On Fri, May 23, 2025 at 06:07:16PM -0400, Sean Anderson wrote:
On 5/23/25 17:39, Sean Anderson wrote:
quoted
On 5/23/25 17:33, Heiner Kallweit wrote:
quoted
On 23.05.2025 22:33, Sean Anderson wrote:
quoted
This converts the lynx PCS driver to a proper MDIO driver.
This allows using a more conventional driver lifecycle (e.g. with a
probe and remove). It will also make it easier to add interrupt support.

The existing helpers are converted to bind the MDIO driver instead of
creating the PCS directly. As lynx_pcs_create_mdiodev creates the PCS
device, we can just set the modalias. For lynx_pcs_create_fwnode, we try
to get the PCS the usual way, and if that fails we edit the devicetree
to add a compatible and reprobe the device.

To ensure my contributions remain free software, remove the BSD option
from the license. This is permitted because the SPDX uses "OR".

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---

Changes in v5:
- Use MDIO_BUS instead of MDIO_DEVICE

Changes in v4:
- Add a note about the license
- Convert to dev-less pcs_put

Changes in v3:
- Call devm_pcs_register instead of devm_pcs_register_provider

Changes in v2:
- Add support for #pcs-cells
- Remove unused variable lynx_properties

 drivers/net/dsa/ocelot/Kconfig                |   4 +
 drivers/net/dsa/ocelot/felix_vsc9959.c        |  11 +-
 drivers/net/dsa/ocelot/seville_vsc9953.c      |  11 +-
 drivers/net/ethernet/altera/Kconfig           |   2 +
 drivers/net/ethernet/altera/altera_tse_main.c |   7 +-
 drivers/net/ethernet/freescale/dpaa/Kconfig   |   2 +-
 drivers/net/ethernet/freescale/dpaa2/Kconfig  |   3 +
 .../net/ethernet/freescale/dpaa2/dpaa2-mac.c  |  11 +-
 drivers/net/ethernet/freescale/enetc/Kconfig  |   2 +
 .../net/ethernet/freescale/enetc/enetc_pf.c   |   8 +-
 .../net/ethernet/freescale/enetc/enetc_pf.h   |   1 -
 .../freescale/enetc/enetc_pf_common.c         |   4 +-
 drivers/net/ethernet/freescale/fman/Kconfig   |   4 +-
 .../net/ethernet/freescale/fman/fman_memac.c  |  25 ++--
 drivers/net/ethernet/stmicro/stmmac/Kconfig   |   3 +
 .../ethernet/stmicro/stmmac/dwmac-socfpga.c   |   6 +-
 drivers/net/pcs/Kconfig                       |  11 +-
 drivers/net/pcs/pcs-lynx.c                    | 110 ++++++++++--------
 include/linux/pcs-lynx.h                      |  13 ++-
 19 files changed, 128 insertions(+), 110 deletions(-)
diff --git a/drivers/net/dsa/ocelot/Kconfig b/drivers/net/dsa/ocelot/Kconfig
index 081e7a88ea02..907c29d61c14 100644
--- a/drivers/net/dsa/ocelot/Kconfig
+++ b/drivers/net/dsa/ocelot/Kconfig
@@ -42,7 +42,9 @@ config NET_DSA_MSCC_FELIX
 	select NET_DSA_TAG_OCELOT_8021Q
 	select NET_DSA_TAG_OCELOT
 	select FSL_ENETC_MDIO
+	select PCS
 	select PCS_LYNX
+	select MDIO_BUS
This shouldn't be needed. NET_DSA selects PHYLINK, which selects PHYLIB,
which selects MDIO_BUS. There are more places in this series where the
same comment applies.
select does not transitively enable dependencies. See the note in
Documentation/kbuild/kconfig-language.rst for details. Therefore we must
select the dependencies of things we select in order to ensure we do not
trip sym_warn_unmet_dep.
OK, I see what you mean here. But of course NET_DSA is missing selects for
PHYLIB and MDIO_BUS. And PHYLINK is also missing a select for MDIO_BUS. Actually,
this bug is really endemic. Maybe we should just get rid of PHYLIB as a config
and just make everything depend on ETHERNET instead.
You're reading the documentation wrongly.

Take this example:

config A
	select B

config B
	select C
	depends on E

config C
	select D

config D

config E

Enabling A leads to B, C and D all being enabled, but it does *not*
lead to E being enabled - kconfig will issue a warning if E is not
already enabled.

E is a dependency of B. There are no other dependencies, but there
are reverse dependencies, and reverse dependencies are propagated.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help