From: Stefan Wahren <[email protected]> Sent: Thursday, June 09, 2016 4:43 AM > To: David Miller <[email protected]>; Fugang Duan > <[email protected]> > Cc: Fabio Estevam <[email protected]>; Lucas Stach > <[email protected]>; [email protected]; [email protected]; Troy > Kisky <[email protected]>; [email protected]; > [email protected]; Stefan Wahren <[email protected]> > Subject: [PATCH net-next RFT] 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 <[email protected]> > --- > drivers/net/ethernet/freescale/fec_main.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/freescale/fec_main.c > b/drivers/net/ethernet/freescale/fec_main.c > index 3c0255e..49f8055 100644 > --- a/drivers/net/ethernet/freescale/fec_main.c > +++ b/drivers/net/ethernet/freescale/fec_main.c > @@ -3191,7 +3191,12 @@ static void fec_reset_phy(struct platform_device > *pdev) > dev_err(&pdev->dev, "failed to get phy-reset-gpios: %d\n", err); > return; > } > - msleep(msec); > + > + if (msec > 20) > + msleep(msec); > + else > + usleep_range(msec * 1000, msec * 1000 + 1000); > + > gpio_set_value_cansleep(phy_reset, !active_high); } #else /* > CONFIG_OF */ > -- > 1.7.9.5
Thanks. You are correct base on Documentation/timers/timers-howto.txt. Acked-by: Fugang Duan <[email protected]>
