OSDN Git Service

net: fec: fix MDIO probing for some FEC hardware blocks
authorGreg Ungerer <gerg@linux-m68k.org>
Wed, 28 Oct 2020 05:22:32 +0000 (15:22 +1000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 30 Oct 2020 15:24:12 +0000 (08:24 -0700)
commit1e6114f51f9d4090390fcec2f5d67d8cc8dc4bfc
tree190b0e7af8e52a078a86a76234cf9e9b92444ee8
parent9e7c5b396e98eed859d3dd1ab235912a296faab5
net: fec: fix MDIO probing for some FEC hardware blocks

Some (apparently older) versions of the FEC hardware block do not like
the MMFR register being cleared to avoid generation of MII events at
initialization time. The action of clearing this register results in no
future MII events being generated at all on the problem block. This means
the probing of the MDIO bus will find no PHYs.

Create a quirk that can be checked at the FECs MII init time so that
the right thing is done. The quirk is set as appropriate for the FEC
hardware blocks that are known to need this.

Fixes: f166f890c8f0 ("net: ethernet: fec: Replace interrupt driven MDIO with polled IO")
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
Acked-by: Fugang Duan <fugand.duan@nxp.com>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Clemens Gruber <clemens.gruber@pqgruber.com>
Link: https://lore.kernel.org/r/20201028052232.1315167-1-gerg@linux-m68k.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/fec.h
drivers/net/ethernet/freescale/fec_main.c