diff options
Diffstat (limited to 'drivers/net/usb/asix_common.c')
-rw-r--r-- | drivers/net/usb/asix_common.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c index f79eb12c326a..125cff57c759 100644 --- a/drivers/net/usb/asix_common.c +++ b/drivers/net/usb/asix_common.c | |||
@@ -433,13 +433,13 @@ int asix_mdio_read(struct net_device *netdev, int phy_id, int loc) | |||
433 | mutex_lock(&dev->phy_mutex); | 433 | mutex_lock(&dev->phy_mutex); |
434 | do { | 434 | do { |
435 | ret = asix_set_sw_mii(dev, 0); | 435 | ret = asix_set_sw_mii(dev, 0); |
436 | if (ret == -ENODEV) | 436 | if (ret == -ENODEV || ret == -ETIMEDOUT) |
437 | break; | 437 | break; |
438 | usleep_range(1000, 1100); | 438 | usleep_range(1000, 1100); |
439 | ret = asix_read_cmd(dev, AX_CMD_STATMNGSTS_REG, | 439 | ret = asix_read_cmd(dev, AX_CMD_STATMNGSTS_REG, |
440 | 0, 0, 1, &smsr, 0); | 440 | 0, 0, 1, &smsr, 0); |
441 | } while (!(smsr & AX_HOST_EN) && (i++ < 30) && (ret != -ENODEV)); | 441 | } while (!(smsr & AX_HOST_EN) && (i++ < 30) && (ret != -ENODEV)); |
442 | if (ret == -ENODEV) { | 442 | if (ret == -ENODEV || ret == -ETIMEDOUT) { |
443 | mutex_unlock(&dev->phy_mutex); | 443 | mutex_unlock(&dev->phy_mutex); |
444 | return ret; | 444 | return ret; |
445 | } | 445 | } |
@@ -497,13 +497,13 @@ int asix_mdio_read_nopm(struct net_device *netdev, int phy_id, int loc) | |||
497 | mutex_lock(&dev->phy_mutex); | 497 | mutex_lock(&dev->phy_mutex); |
498 | do { | 498 | do { |
499 | ret = asix_set_sw_mii(dev, 1); | 499 | ret = asix_set_sw_mii(dev, 1); |
500 | if (ret == -ENODEV) | 500 | if (ret == -ENODEV || ret == -ETIMEDOUT) |
501 | break; | 501 | break; |
502 | usleep_range(1000, 1100); | 502 | usleep_range(1000, 1100); |
503 | ret = asix_read_cmd(dev, AX_CMD_STATMNGSTS_REG, | 503 | ret = asix_read_cmd(dev, AX_CMD_STATMNGSTS_REG, |
504 | 0, 0, 1, &smsr, 1); | 504 | 0, 0, 1, &smsr, 1); |
505 | } while (!(smsr & AX_HOST_EN) && (i++ < 30) && (ret != -ENODEV)); | 505 | } while (!(smsr & AX_HOST_EN) && (i++ < 30) && (ret != -ENODEV)); |
506 | if (ret == -ENODEV) { | 506 | if (ret == -ENODEV || ret == -ETIMEDOUT) { |
507 | mutex_unlock(&dev->phy_mutex); | 507 | mutex_unlock(&dev->phy_mutex); |
508 | return ret; | 508 | return ret; |
509 | } | 509 | } |