linux/drivers/net/ethernet/xilinx
Robert Hancock 7789e9ed05 net: axienet: Re-initialize MDIO registers properly after reset
The MDIO clock divisor register setting was only applied on the initial
startup when the driver was loaded. However, this setting is cleared
when the device is reset, such as would occur when the interface was
taken down and brought up again, and so the MDIO bus would be
non-functional afterwards.

Split up the MDIO bus setup and enable into separate functions and
re-enable the bus after a device reset, to ensure that the MDIO
registers are set properly. This also allows us to remove direct access
to MDIO registers in xilinx_axienet_main.c and centralize them all in
xilinx_axienet_mdio.c.

Also, lock the MDIO bus lock around the device reset process, to avoid
MDIO accesses from occurring while the MDIO is disabled during the reset.

Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-06-06 16:24:29 -07:00
..
Kconfig net: axienet: add X86 and ARM as supported platforms 2019-06-06 16:24:29 -07:00
ll_temac_main.c net: ll_temac: Fix compile error 2019-05-23 22:27:52 -07:00
ll_temac_mdio.c net: ll_temac: Prepare indirect register access for multicast support 2019-05-23 09:33:57 -07:00
ll_temac.h net: ll_temac: Prepare indirect register access for multicast support 2019-05-23 09:33:57 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xilinx_axienet_main.c net: axienet: Re-initialize MDIO registers properly after reset 2019-06-06 16:24:29 -07:00
xilinx_axienet_mdio.c net: axienet: Re-initialize MDIO registers properly after reset 2019-06-06 16:24:29 -07:00
xilinx_axienet.h net: axienet: Re-initialize MDIO registers properly after reset 2019-06-06 16:24:29 -07:00
xilinx_emaclite.c 2/2] net: xilinx_emaclite: use readx_poll_timeout() in mdio wait function 2019-05-20 20:00:46 -04:00