[PATCH net-next RFT] net: fec: handle small PHY reset durations more precisely

Subsystems: freescale imx / mxc fec driver, networking drivers, the rest

STALE3714d

3 messages, 3 authors, 2016-06-13 · open the first message on its own page

[PATCH net-next RFT] net: fec: handle small PHY reset durations more precisely

From: Stefan Wahren <hidden>
Date: 2016-06-08 20:42:46

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.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

[PATCH net-next RFT] net: fec: handle small PHY reset durations more precisely

From: Fugang Duan <hidden>
Date: 2016-06-12 05:16:02

From: Stefan Wahren <redacted> Sent: Thursday, June 09, 2016 4:43 AM
quoted 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.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 <redacted>

[PATCH net-next RFT] net: fec: handle small PHY reset durations more precisely

From: davem@davemloft.net (David Miller)
Date: 2016-06-13 01:58:32

From: Stefan Wahren <redacted>
Date: Wed,  8 Jun 2016 20:42:46 +0000
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>
Applied.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help