linux-stable/drivers/net/mdio
Vladimir Oltean 1f9f2143f2 net: mdio-mux: fix C45 access returning -EIO after API change
The mii_bus API conversion to read_c45() and write_c45() did not cover
the mdio-mux driver before read() and write() were made C22-only.

This broke arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-13bb.dtso.
The -EOPNOTSUPP from mdiobus_c45_read() is transformed by
get_phy_c45_devs_in_pkg() into -EIO, is further propagated to
of_mdiobus_register() and this makes the mdio-mux driver fail to probe
the entire child buses, not just the PHYs that cause access errors.

Fix the regression by introducing special c45 read and write accessors
to mdio-mux which forward the operation to the parent MDIO bus.

Fixes: db1a63aed8 ("net: phy: Remove fallback to old C45 method")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/20231017143144.3212657-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-10-18 18:08:23 -07:00
..
acpi_mdio.c net: mdio: fix owner field for mdio buses registered using ACPI 2023-03-19 10:48:35 +00:00
fwnode_mdio.c net: mdiobus: Convert to use fwnode_device_is_compatible() 2023-01-23 14:37:13 +00:00
Kconfig net: mdio: Introduce a regmap-based mdio driver 2023-06-05 09:56:36 +01:00
Makefile net: mdio: Introduce a regmap-based mdio driver 2023-06-05 09:56:36 +01:00
mdio-aspeed.c net: phy: Remove probe_capabilities 2023-01-19 16:23:19 +01:00
mdio-bcm-iproc.c
mdio-bcm-unimac.c net: phy: mdio-bcm-unimac: Add asp v2.0 support 2023-07-17 07:39:04 +01:00
mdio-bitbang.c net: mdio: mdio-bitbang: Fix C45 read/write protocol 2023-08-19 12:41:33 +01:00
mdio-cavium.c net: mdio: cavium: Remove unneeded simicolons 2023-01-17 13:19:05 +01:00
mdio-cavium.h net: mdio: cavium: Separate C22 and C45 transactions 2023-01-13 21:40:53 -08:00
mdio-gpio.c
mdio-hisi-femac.c
mdio-i2c.c net: mdio: i2c: fix rollball accessors 2023-05-15 10:15:57 +01:00
mdio-ipq4019.c net: mdio: ipq4019: Separate C22 and C45 transactions 2023-01-13 21:40:54 -08:00
mdio-ipq8064.c net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
mdio-moxart.c
mdio-mscc-miim.c net: dsa: seville: ignore mscc-miim read errors from Lynx PCS 2023-02-26 18:31:37 +00:00
mdio-mux-bcm-iproc.c net: mdio: mux-bcm-iproc: Separate C22 and C45 transactions 2023-01-13 21:40:54 -08:00
mdio-mux-bcm6368.c net: mdio: Fix ENOMEM return value in BCM6368 mux bus controller 2022-04-29 17:58:41 -07:00
mdio-mux-gpio.c
mdio-mux-meson-g12a.c net: mdio: mux-meson-g12a: use __clk_is_enabled to simplify the code 2023-01-30 07:17:30 +00:00
mdio-mux-meson-gxl.c net: mdio: add amlogic gxl mdio mux support 2023-01-31 20:59:07 -08:00
mdio-mux-mmioreg.c mdio: mdio-mux-mmioreg: Use of_property_read_reg() to parse "reg" 2023-06-12 10:56:01 +01:00
mdio-mux-multiplexer.c net: mdio: mux-multiplexer: Switch to use dev_err_probe() helper 2022-09-20 08:41:20 -07:00
mdio-mux.c net: mdio-mux: fix C45 access returning -EIO after API change 2023-10-18 18:08:23 -07:00
mdio-mvusb.c net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe() 2023-05-07 14:59:02 +01:00
mdio-octeon.c net: mdio: cavium: Separate C22 and C45 transactions 2023-01-13 21:40:53 -08:00
mdio-regmap.c net: mdio: Introduce a regmap-based mdio driver 2023-06-05 09:56:36 +01:00
mdio-sun4i.c
mdio-thunder.c net: mdio: thunder: Add missing fwnode_handle_put() 2023-03-23 08:46:55 +00:00
mdio-xgene.c net: mdio: xgene: remove useless xgene_mdio_status 2023-08-19 19:25:27 +01:00
of_mdio.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-03-24 10:10:20 -07:00