net: mdio: mdio-bcm-unimac: Use read_poll_timeout
Simplify the code by using read_poll_timeout(). Signed-off-by: Justin Chen <justin.chen@broadcom.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://lore.kernel.org/r/20231213222744.2891184-3-justin.chen@broadcom.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
268531be21
commit
54a600ed21
@ -73,15 +73,10 @@ static inline void unimac_mdio_start(struct unimac_mdio_priv *priv)
|
||||
unimac_mdio_writel(priv, reg, MDIO_CMD);
|
||||
}
|
||||
|
||||
static inline unsigned int unimac_mdio_busy(struct unimac_mdio_priv *priv)
|
||||
{
|
||||
return unimac_mdio_readl(priv, MDIO_CMD) & MDIO_START_BUSY;
|
||||
}
|
||||
|
||||
static int unimac_mdio_poll(void *wait_func_data)
|
||||
{
|
||||
struct unimac_mdio_priv *priv = wait_func_data;
|
||||
unsigned int timeout = 100;
|
||||
u32 val;
|
||||
|
||||
/*
|
||||
* C22 transactions should take ~25 usec, will need to adjust
|
||||
@ -89,14 +84,8 @@ static int unimac_mdio_poll(void *wait_func_data)
|
||||
*/
|
||||
udelay(30);
|
||||
|
||||
do {
|
||||
if (!unimac_mdio_busy(priv))
|
||||
return 0;
|
||||
|
||||
usleep_range(1000, 2000);
|
||||
} while (--timeout);
|
||||
|
||||
return -ETIMEDOUT;
|
||||
return read_poll_timeout(unimac_mdio_readl, val, !(val & MDIO_START_BUSY),
|
||||
2000, 100000, false, priv, MDIO_CMD);
|
||||
}
|
||||
|
||||
static int unimac_mdio_read(struct mii_bus *bus, int phy_id, int reg)
|
||||
|
Loading…
x
Reference in New Issue
Block a user