提交 19b2f97e 编写于 作者: B Barry Grussling 提交者: David S. Miller

DSA: Convert repeated msleep calls to timeouts

Convert DSA msleep calls to timeout/usleep_range calls
as reported by checkpatch.pl.
Signed-off-by: NBarry Grussling <barry@grussling.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 3675c8d7
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* (at your option) any later version. * (at your option) any later version.
*/ */
#include <linux/delay.h>
#include <linux/jiffies.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
...@@ -66,6 +68,7 @@ static int mv88e6060_switch_reset(struct dsa_switch *ds) ...@@ -66,6 +68,7 @@ static int mv88e6060_switch_reset(struct dsa_switch *ds)
{ {
int i; int i;
int ret; int ret;
unsigned long timeout;
/* Set all ports to the disabled state. */ /* Set all ports to the disabled state. */
for (i = 0; i < 6; i++) { for (i = 0; i < 6; i++) {
...@@ -74,20 +77,21 @@ static int mv88e6060_switch_reset(struct dsa_switch *ds) ...@@ -74,20 +77,21 @@ static int mv88e6060_switch_reset(struct dsa_switch *ds)
} }
/* Wait for transmit queues to drain. */ /* Wait for transmit queues to drain. */
msleep(2); usleep_range(2000, 4000);
/* Reset the switch. */ /* Reset the switch. */
REG_WRITE(REG_GLOBAL, 0x0a, 0xa130); REG_WRITE(REG_GLOBAL, 0x0a, 0xa130);
/* Wait up to one second for reset to complete. */ /* Wait up to one second for reset to complete. */
for (i = 0; i < 1000; i++) { timeout = jiffies + 1 * HZ;
while (time_before(jiffies, timeout)) {
ret = REG_READ(REG_GLOBAL, 0x00); ret = REG_READ(REG_GLOBAL, 0x00);
if ((ret & 0x8000) == 0x0000) if ((ret & 0x8000) == 0x0000)
break; break;
msleep(1); usleep_range(1000, 2000);
} }
if (i == 1000) if (time_after(jiffies, timeout))
return -ETIMEDOUT; return -ETIMEDOUT;
return 0; return 0;
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* (at your option) any later version. * (at your option) any later version.
*/ */
#include <linux/delay.h>
#include <linux/jiffies.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
...@@ -50,6 +52,7 @@ static int mv88e6123_61_65_switch_reset(struct dsa_switch *ds) ...@@ -50,6 +52,7 @@ static int mv88e6123_61_65_switch_reset(struct dsa_switch *ds)
{ {
int i; int i;
int ret; int ret;
unsigned long timeout;
/* Set all ports to the disabled state. */ /* Set all ports to the disabled state. */
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
...@@ -58,20 +61,21 @@ static int mv88e6123_61_65_switch_reset(struct dsa_switch *ds) ...@@ -58,20 +61,21 @@ static int mv88e6123_61_65_switch_reset(struct dsa_switch *ds)
} }
/* Wait for transmit queues to drain. */ /* Wait for transmit queues to drain. */
msleep(2); usleep_range(2000, 4000);
/* Reset the switch. */ /* Reset the switch. */
REG_WRITE(REG_GLOBAL, 0x04, 0xc400); REG_WRITE(REG_GLOBAL, 0x04, 0xc400);
/* Wait up to one second for reset to complete. */ /* Wait up to one second for reset to complete. */
for (i = 0; i < 1000; i++) { timeout = jiffies + 1 * HZ;
while (time_before(jiffies, timeout)) {
ret = REG_READ(REG_GLOBAL, 0x00); ret = REG_READ(REG_GLOBAL, 0x00);
if ((ret & 0xc800) == 0xc800) if ((ret & 0xc800) == 0xc800)
break; break;
msleep(1); usleep_range(1000, 2000);
} }
if (i == 1000) if (time_after(jiffies, timeout))
return -ETIMEDOUT; return -ETIMEDOUT;
return 0; return 0;
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* (at your option) any later version. * (at your option) any later version.
*/ */
#include <linux/delay.h>
#include <linux/jiffies.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
...@@ -42,6 +44,7 @@ static int mv88e6131_switch_reset(struct dsa_switch *ds) ...@@ -42,6 +44,7 @@ static int mv88e6131_switch_reset(struct dsa_switch *ds)
{ {
int i; int i;
int ret; int ret;
unsigned long timeout;
/* Set all ports to the disabled state. */ /* Set all ports to the disabled state. */
for (i = 0; i < 11; i++) { for (i = 0; i < 11; i++) {
...@@ -50,20 +53,21 @@ static int mv88e6131_switch_reset(struct dsa_switch *ds) ...@@ -50,20 +53,21 @@ static int mv88e6131_switch_reset(struct dsa_switch *ds)
} }
/* Wait for transmit queues to drain. */ /* Wait for transmit queues to drain. */
msleep(2); usleep_range(2000, 4000);
/* Reset the switch. */ /* Reset the switch. */
REG_WRITE(REG_GLOBAL, 0x04, 0xc400); REG_WRITE(REG_GLOBAL, 0x04, 0xc400);
/* Wait up to one second for reset to complete. */ /* Wait up to one second for reset to complete. */
for (i = 0; i < 1000; i++) { timeout = jiffies + 1 * HZ;
while (time_before(jiffies, timeout)) {
ret = REG_READ(REG_GLOBAL, 0x00); ret = REG_READ(REG_GLOBAL, 0x00);
if ((ret & 0xc800) == 0xc800) if ((ret & 0xc800) == 0xc800)
break; break;
msleep(1); usleep_range(1000, 2000);
} }
if (i == 1000) if (time_after(jiffies, timeout))
return -ETIMEDOUT; return -ETIMEDOUT;
return 0; return 0;
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* (at your option) any later version. * (at your option) any later version.
*/ */
#include <linux/delay.h>
#include <linux/jiffies.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
...@@ -196,14 +198,15 @@ int mv88e6xxx_phy_write(struct dsa_switch *ds, int addr, int regnum, u16 val) ...@@ -196,14 +198,15 @@ int mv88e6xxx_phy_write(struct dsa_switch *ds, int addr, int regnum, u16 val)
static int mv88e6xxx_ppu_disable(struct dsa_switch *ds) static int mv88e6xxx_ppu_disable(struct dsa_switch *ds)
{ {
int ret; int ret;
int i; unsigned long timeout;
ret = REG_READ(REG_GLOBAL, 0x04); ret = REG_READ(REG_GLOBAL, 0x04);
REG_WRITE(REG_GLOBAL, 0x04, ret & ~0x4000); REG_WRITE(REG_GLOBAL, 0x04, ret & ~0x4000);
for (i = 0; i < 1000; i++) { timeout = jiffies + 1 * HZ;
while (time_before(jiffies, timeout)) {
ret = REG_READ(REG_GLOBAL, 0x00); ret = REG_READ(REG_GLOBAL, 0x00);
msleep(1); usleep_range(1000, 2000);
if ((ret & 0xc000) != 0xc000) if ((ret & 0xc000) != 0xc000)
return 0; return 0;
} }
...@@ -214,14 +217,15 @@ static int mv88e6xxx_ppu_disable(struct dsa_switch *ds) ...@@ -214,14 +217,15 @@ static int mv88e6xxx_ppu_disable(struct dsa_switch *ds)
static int mv88e6xxx_ppu_enable(struct dsa_switch *ds) static int mv88e6xxx_ppu_enable(struct dsa_switch *ds)
{ {
int ret; int ret;
int i; unsigned long timeout;
ret = REG_READ(REG_GLOBAL, 0x04); ret = REG_READ(REG_GLOBAL, 0x04);
REG_WRITE(REG_GLOBAL, 0x04, ret | 0x4000); REG_WRITE(REG_GLOBAL, 0x04, ret | 0x4000);
for (i = 0; i < 1000; i++) { timeout = jiffies + 1 * HZ;
while (time_before(jiffies, timeout)) {
ret = REG_READ(REG_GLOBAL, 0x00); ret = REG_READ(REG_GLOBAL, 0x00);
msleep(1); usleep_range(1000, 2000);
if ((ret & 0xc000) == 0xc000) if ((ret & 0xc000) == 0xc000)
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册