Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: fec: handle small PHY reset durations more precisely

Since msleep is based on jiffies the PHY reset could take longer
than expected. So use msleep for values greater than 20 msec otherwise
usleep_range.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Stefan Wahren and committed by
David S. Miller
eb37c563 38b7097b

+6 -1
+6 -1
drivers/net/ethernet/freescale/fec_main.c
··· 3191 3191 dev_err(&pdev->dev, "failed to get phy-reset-gpios: %d\n", err); 3192 3192 return; 3193 3193 } 3194 - msleep(msec); 3194 + 3195 + if (msec > 20) 3196 + msleep(msec); 3197 + else 3198 + usleep_range(msec * 1000, msec * 1000 + 1000); 3199 + 3195 3200 gpio_set_value_cansleep(phy_reset, !active_high); 3196 3201 } 3197 3202 #else /* CONFIG_OF */