]> git.baikalelectronics.ru Git - kernel.git/commit
net: phy: mscc-miim: improve waiting logic
authorAntoine Tenart <antoine.tenart@bootlin.com>
Tue, 26 May 2020 16:22:55 +0000 (18:22 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 May 2020 22:33:56 +0000 (15:33 -0700)
commit3f77a6d0c0058a6291d3d0c1c67e6c1dfc2f4cab
treea3e1468f56de6a4f78fdef5bb5a2fd10f809d982
parent1ff3daa5492b219c784636563d3b76058b2478e8
net: phy: mscc-miim: improve waiting logic

The MSCC MIIM MDIO driver uses a waiting logic to wait for the MDIO bus
to be ready to accept next commands. It does so by polling the BUSY
status bit which indicates the MDIO bus has completed all pending
operations. This can take time, and the controller supports writing the
next command as soon as there are no pending commands (which happens
while the MDIO bus is busy completing its current command).

This patch implements this improved logic by adding an helper to poll
the PENDING status bit, and by adjusting where we should wait for the
bus to not be busy or to not be pending.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/mdio-mscc-miim.c