]> 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)
commit1e76df47f35011338aac86010ebb7aabf8bce820
treea3e1468f56de6a4f78fdef5bb5a2fd10f809d982
parent8f5cfa3a45359dd8b2cb142833578641657e454c
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