linux/drivers/net/phy
Martin Blumenstingl 457839ed3e mdio: mux: fix parsing mux registers outside of the PHY address range
mdio_mux_init parses the child nodes of the MDIO mux. When using
"mdio-mux-mmioreg" the child nodes are describing the register value
that is written to switch between the MDIO busses.

The change which makes the error messages more verbose changed the
parsing of the "reg" property from a simple of_property_read_u32 call
to of_mdio_parse_addr. On a Khadas VIM (based on the Meson GXL SoC,
which uses mdio-mux-mmioreg) this prevents registering the MDIO mux
(because the "reg" values on the MDIO mux child nodes are 0x2009087f
and 0xe40908ff) and leads to the following errors:
  mdio-mux-mmioreg c883455c.eth-phy-mux: /soc/periphs@c8834000/eth-phy-mux/mdio@e40908ff PHY address -469169921 is too large
  mdio-mux-mmioreg c883455c.eth-phy-mux: Error: Failed to find reg for child /soc/periphs@c8834000/eth-phy-mux/mdio@e40908ff
  mdio-mux-mmioreg c883455c.eth-phy-mux: /soc/periphs@c8834000/eth-phy-mux/mdio@2009087f PHY address 537462911 is too large
  mdio-mux-mmioreg c883455c.eth-phy-mux: Error: Failed to find reg for child /soc/periphs@c8834000/eth-phy-mux/mdio@2009087f
  mdio-mux-mmioreg c883455c.eth-phy-mux: Error: No acceptable child buses found
  mdio-mux-mmioreg c883455c.eth-phy-mux: failed to register mdio-mux bus /soc/periphs@c8834000/eth-phy-mux
(as a result of that ethernet is not working, because the PHY which is
connected through the mux' child MDIO bus, which is not being
registered).

Fix this by reverting the change from of_mdio_parse_addr to
of_mdio_parse_addr.

Fixes: 342fa19644 ("mdio: mux: make child bus walking more permissive and errors more verbose")
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-07-14 08:12:45 -07:00
..
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-06-15 11:59:32 -04:00
Makefile net: phy: add Marvell Alaska X 88X3310 10Gigabit PHY support 2017-06-06 21:14:13 -04:00
amd.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
aquantia.c net: phy: aquantia: add PHY ID of AQR106 and AQR107 2016-10-20 14:25:23 -04:00
at803x.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-10-30 12:42:58 -04:00
bcm-cygnus.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
bcm-phy-lib.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
bcm-phy-lib.h net: phy: broadcom: Add support code for reading PHY counters 2016-11-30 10:22:27 -05:00
bcm7xxx.c net: phy: bcm7xxx: add support for 28nm EPHY 2017-03-13 21:51:49 -07:00
bcm63xx.c net: phy: bcm63xx: Utilize correct config_intr function 2017-01-18 16:56:10 -05:00
bcm87xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
broadcom.c net: phy: Remove residual magic from PHY drivers 2017-05-16 15:58:18 -04:00
cicada.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
cortina.c net: phy: Add Cortina CS4340 driver 2017-05-30 12:42:27 -04:00
davicom.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
dp83640.c net: dp83640: Avoid NULL pointer dereference. 2017-06-23 14:38:16 -04:00
dp83640_reg.h
dp83848.c net: phy: dp83848: Fix Typo 2017-03-24 15:33:32 +01:00
dp83867.c net: phy: dp83867: add workaround for incorrect RX_CTRL pin strap 2017-07-05 09:23:53 +01:00
et1011c.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
fixed_phy.c net: phy: fixed_phy: fix of_node leak in fixed_phy_unregister 2016-11-17 12:05:05 -05:00
icplus.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
intel-xway.c net: phy: switch remaining users to phy_(read|write)_mmd() 2017-03-22 12:43:00 -07:00
lxt.c net: phy: lxt: Export link partner advertising 2017-06-20 13:41:24 -04:00
marvell.c net: phy: Add phy loopback support in net phy framework 2017-07-03 02:01:15 -07:00
marvell10g.c net: phy: add Marvell Alaska X 88X3310 10Gigabit PHY support 2017-06-06 21:14:13 -04:00
mdio-bcm-iproc.c net: phy: Initialize mdio clock at probe function 2017-02-09 17:10:23 -05:00
mdio-bcm-unimac.c net: bcmgenet: add support for the GENETv5 hardware 2017-03-13 21:51:51 -07:00
mdio-bitbang.c
mdio-boardinfo.c net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
mdio-boardinfo.h net: phy: Allow building mdio-boardinfo into the kernel 2017-03-29 10:32:32 -07:00
mdio-cavium.c phy: mdio-cavium: Add missing MODULE_* annotations. 2016-03-16 19:55:37 -04:00
mdio-cavium.h phy: mdio-octeon: Refactor into two files/modules 2016-03-14 15:27:22 -04:00
mdio-gpio.c net: mdio-gpio: Use gpio subsystem to handle low-active pins 2017-01-12 15:05:10 -05:00
mdio-hisi-femac.c net: Add MDIO bus driver for the Hisilicon FEMAC 2016-07-16 21:32:58 -07:00
mdio-moxart.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-mux-bcm-iproc.c net: mdio-mux: bcm-iproc: call mdiobus_free() in error path 2017-05-08 17:59:33 -04:00
mdio-mux-gpio.c mdio: mux: Enhanced MDIO mux framework for integrated multiplexers 2016-06-10 23:24:53 -07:00
mdio-mux-mmioreg.c net: mdio-mux-mmioreg: Add support for 16bit and 32bit register sizes 2016-11-09 12:50:55 -05:00
mdio-mux.c mdio: mux: fix parsing mux registers outside of the PHY address range 2017-07-14 08:12:45 -07:00
mdio-octeon.c phy: mdio-octeon: Refactor into two files/modules 2016-03-14 15:27:22 -04:00
mdio-sun4i.c mdio-sun4i: oops in error handling in probe 2016-03-21 11:30:01 -04:00
mdio-thunder.c phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses. 2016-03-14 15:27:22 -04:00
mdio-xgene.c drivers: net: phy: xgene: Add lock to protect mac access 2017-05-16 11:41:08 -04:00
mdio-xgene.h drivers: net: phy: xgene: Add lock to protect mac access 2017-05-16 11:41:08 -04:00
mdio_bus.c mdio_bus: use devm_gpiod_get_optional() 2017-06-13 12:56:42 -04:00
mdio_device.c net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
meson-gxl.c net: phy: Add Meson GXL Internal PHY driver 2016-11-09 12:50:55 -05:00
micrel.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-06-30 12:43:08 -04:00
microchip.c net: phy: Remove residual magic from PHY drivers 2017-05-16 15:58:18 -04:00
mscc.c net: phy: Add LED mode driver for Microsemi PHYs. 2017-02-08 13:29:04 -05:00
national.c net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause 2016-12-10 23:31:19 -05:00
phy-c45.c net: phy: split out 10G genphy support 2017-06-06 21:14:13 -04:00
phy-core.c net: phy: test the right variable in phy_write_mmd() 2017-04-17 15:10:42 -04:00
phy.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
phy_device.c net: phy: Add phy loopback support in net phy framework 2017-07-03 02:01:15 -07:00
phy_led_triggers.c net: phy: leds: Break dependency of phy.h on phy_led_triggers.h 2017-01-25 14:40:19 -05:00
qsemi.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
realtek.c net: phy: realtek: fix enabling of the TX-delay for RTL8211F 2016-11-28 12:06:54 -05:00
smsc.c net: phy: smsc: fix buffer overflow in memcpy 2017-06-22 11:12:31 -04:00
spi_ks8995.c spi_ks8995: regs_size incorrect for some devices 2017-03-07 13:33:24 -08:00
ste10Xp.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
swphy.c phy: generate swphy registers on the fly 2016-06-27 10:40:57 -04:00
swphy.h phy: generate swphy registers on the fly 2016-06-27 10:40:57 -04:00
teranetics.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
vitesse.c net: phy: vitesse: add support for VSC8572 2016-12-02 10:36:47 -05:00
xilinx_gmii2rgmii.c net: phy: xgmiitorgmii: Fix non static symbol warning 2016-08-23 17:17:48 -07:00