Message ID | 20231213222744.2891184-2-justin.chen@broadcom.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 268531be211f18c55f7ff5a1641d32c0fd0571cd |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: mdio: mdio-bcm-unimac: optimizations and clean up | expand |
On Wed, Dec 13, 2023 at 02:27:43PM -0800, Justin Chen wrote: > With a clock interval of 400 nsec and a 64 bit transactions (32 bit > preamble & 16 bit control & 16 bit data), it is reasonable to assume > the mdio transaction will take 25.6 usec. Add a 30 usec delay before > the first poll to reduce the chance of a 1000-2000 usec sleep. > > Reduce the timeout from 1000ms to 100ms as it is unlikely for the bus > to take this long. > > Signed-off-by: Justin Chen <justin.chen@broadcom.com> > Acked-by: Florian Fainelli <florian.fainelli@broadcom.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
diff --git a/drivers/net/mdio/mdio-bcm-unimac.c b/drivers/net/mdio/mdio-bcm-unimac.c index e8cd8eef319b..297ea4a58d79 100644 --- a/drivers/net/mdio/mdio-bcm-unimac.c +++ b/drivers/net/mdio/mdio-bcm-unimac.c @@ -81,7 +81,13 @@ static inline unsigned int unimac_mdio_busy(struct unimac_mdio_priv *priv) static int unimac_mdio_poll(void *wait_func_data) { struct unimac_mdio_priv *priv = wait_func_data; - unsigned int timeout = 1000; + unsigned int timeout = 100; + + /* + * C22 transactions should take ~25 usec, will need to adjust + * if C45 support is added. + */ + udelay(30); do { if (!unimac_mdio_busy(priv))