RE: [PATCH net-next RFT] net: fec: handle small PHY reset durations more precisely
From: Fugang Duan <hidden>
Date: 2016-06-12 05:16:02
Also in:
linux-arm-kernel
From: Stefan Wahren <redacted> Sent: Thursday, June 09, 2016 4:43 AM
quoted hunk ↗ jump to hunk
To: David Miller <davem@davemloft.net>; Fugang Duan [off-list ref] Cc: Fabio Estevam <redacted>; Lucas Stach [off-list ref]; andrew@lunn.ch; holgerschurig@gmail.com; Troy Kisky [off-list ref]; linux-arm-kernel@lists.infradead.org; netdev@vger.kernel.org; Stefan Wahren [off-list ref] 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 <redacted> --- drivers/net/ethernet/freescale/fec_main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)diff --git a/drivers/net/ethernet/freescale/fec_main.cb/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 <redacted>