From: Andrew Lunn <and...@lunn.ch> Date: Sat, 2 May 2020 17:25:04 +0200
> Measurements of the MDIO bus have shown that driving the MDIO bus > using interrupts is slow. Back to back MDIO transactions take about > 90us, with 25us spent performing the transaction, and the remainder of > the time the bus is idle. > > Replacing the completion interrupt with polled IO results in back to > back transactions of 40us. The polling loop waiting for the hardware > to complete the transaction takes around 28us. Which suggests > interrupt handling has an overhead of 50us, and polled IO nearly > halves this overhead, and doubles the MDIO performance. > > Care has to be taken when setting the MII_SPEED register, or it can > trigger an MII event> That then upsets the polling, due to an > unexpected pending event. > > Suggested-by: Chris Heally <cphe...@gmail.com> > Signed-off-by: Andrew Lunn <and...@lunn.ch> > Signed-off-by: David S. Miller <da...@davemloft.net> Applied, thanks Andrew.