aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe
diff options
context:
space:
mode:
authorDon Skidmore <donald.c.skidmore@intel.com>2011-03-18 05:32:53 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-04-13 22:23:11 -0400
commit032b4325b61b03f87f0346d0e92e39f785e24105 (patch)
tree10d20725cd30ad4c5daed140c779307f9f393f3f /drivers/net/ixgbe
parent0fa6d83258252695203d24c8818092644df10fd7 (diff)
ixgbe: cleanup short msleep's (<20ms) to use usleep_range
Since msleep might not sleep for the desired amount when less than 20ms use usleep_range. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Tested-by: Stephen Ko <stephen.s.ko@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe')
-rw-r--r--drivers/net/ixgbe/ixgbe_82598.c2
-rw-r--r--drivers/net/ixgbe/ixgbe_82599.c14
-rw-r--r--drivers/net/ixgbe/ixgbe_common.c14
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb_nl.c2
-rw-r--r--drivers/net/ixgbe/ixgbe_ethtool.c14
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c8
-rw-r--r--drivers/net/ixgbe/ixgbe_phy.c4
-rw-r--r--drivers/net/ixgbe/ixgbe_x540.c6
8 files changed, 36 insertions, 28 deletions
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c
index a93275fd260f..af4054a1a133 100644
--- a/drivers/net/ixgbe/ixgbe_82598.c
+++ b/drivers/net/ixgbe/ixgbe_82598.c
@@ -1083,7 +1083,7 @@ static s32 ixgbe_read_i2c_eeprom_82598(struct ixgbe_hw *hw, u8 byte_offset,
1083 sfp_stat = sfp_stat & IXGBE_I2C_EEPROM_STATUS_MASK; 1083 sfp_stat = sfp_stat & IXGBE_I2C_EEPROM_STATUS_MASK;
1084 if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_IN_PROGRESS) 1084 if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_IN_PROGRESS)
1085 break; 1085 break;
1086 msleep(10); 1086 usleep_range(10000, 20000);
1087 } 1087 }
1088 1088
1089 if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_PASS) { 1089 if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_PASS) {
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/ixgbe/ixgbe_82599.c
index d195278c62e3..e39380ca996c 100644
--- a/drivers/net/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ixgbe/ixgbe_82599.c
@@ -130,8 +130,12 @@ static s32 ixgbe_setup_sfp_modules_82599(struct ixgbe_hw *hw)
130 130
131 /* Release the semaphore */ 131 /* Release the semaphore */
132 ixgbe_release_swfw_sync(hw, IXGBE_GSSR_MAC_CSR_SM); 132 ixgbe_release_swfw_sync(hw, IXGBE_GSSR_MAC_CSR_SM);
133 /* Delay obtaining semaphore again to allow FW access */ 133 /*
134 msleep(hw->eeprom.semaphore_delay); 134 * Delay obtaining semaphore again to allow FW access,
135 * semaphore_delay is in ms usleep_range needs us.
136 */
137 usleep_range(hw->eeprom.semaphore_delay * 1000,
138 hw->eeprom.semaphore_delay * 2000);
135 139
136 /* Now restart DSP by setting Restart_AN and clearing LMS */ 140 /* Now restart DSP by setting Restart_AN and clearing LMS */
137 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, ((IXGBE_READ_REG(hw, 141 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, ((IXGBE_READ_REG(hw,
@@ -140,7 +144,7 @@ static s32 ixgbe_setup_sfp_modules_82599(struct ixgbe_hw *hw)
140 144
141 /* Wait for AN to leave state 0 */ 145 /* Wait for AN to leave state 0 */
142 for (i = 0; i < 10; i++) { 146 for (i = 0; i < 10; i++) {
143 msleep(4); 147 usleep_range(4000, 8000);
144 reg_anlp1 = IXGBE_READ_REG(hw, IXGBE_ANLP1); 148 reg_anlp1 = IXGBE_READ_REG(hw, IXGBE_ANLP1);
145 if (reg_anlp1 & IXGBE_ANLP1_AN_STATE_MASK) 149 if (reg_anlp1 & IXGBE_ANLP1_AN_STATE_MASK)
146 break; 150 break;
@@ -1178,7 +1182,7 @@ s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 pballoc)
1178 if (IXGBE_READ_REG(hw, IXGBE_FDIRCTRL) & 1182 if (IXGBE_READ_REG(hw, IXGBE_FDIRCTRL) &
1179 IXGBE_FDIRCTRL_INIT_DONE) 1183 IXGBE_FDIRCTRL_INIT_DONE)
1180 break; 1184 break;
1181 msleep(1); 1185 usleep_range(1000, 2000);
1182 } 1186 }
1183 if (i >= IXGBE_FDIR_INIT_DONE_POLL) 1187 if (i >= IXGBE_FDIR_INIT_DONE_POLL)
1184 hw_dbg(hw, "Flow Director Signature poll time exceeded!\n"); 1188 hw_dbg(hw, "Flow Director Signature poll time exceeded!\n");
@@ -1273,7 +1277,7 @@ s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 pballoc)
1273 if (IXGBE_READ_REG(hw, IXGBE_FDIRCTRL) & 1277 if (IXGBE_READ_REG(hw, IXGBE_FDIRCTRL) &
1274 IXGBE_FDIRCTRL_INIT_DONE) 1278 IXGBE_FDIRCTRL_INIT_DONE)
1275 break; 1279 break;
1276 msleep(1); 1280 usleep_range(1000, 2000);
1277 } 1281 }
1278 if (i >= IXGBE_FDIR_INIT_DONE_POLL) 1282 if (i >= IXGBE_FDIR_INIT_DONE_POLL)
1279 hw_dbg(hw, "Flow Director Perfect poll time exceeded!\n"); 1283 hw_dbg(hw, "Flow Director Perfect poll time exceeded!\n");
diff --git a/drivers/net/ixgbe/ixgbe_common.c b/drivers/net/ixgbe/ixgbe_common.c
index 1b8b3cd1664f..a67cba5149d1 100644
--- a/drivers/net/ixgbe/ixgbe_common.c
+++ b/drivers/net/ixgbe/ixgbe_common.c
@@ -503,7 +503,7 @@ s32 ixgbe_stop_adapter_generic(struct ixgbe_hw *hw)
503 reg_val &= ~(IXGBE_RXCTRL_RXEN); 503 reg_val &= ~(IXGBE_RXCTRL_RXEN);
504 IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, reg_val); 504 IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, reg_val);
505 IXGBE_WRITE_FLUSH(hw); 505 IXGBE_WRITE_FLUSH(hw);
506 msleep(2); 506 usleep_range(2000, 4000);
507 507
508 /* Clear interrupt mask to stop from interrupts being generated */ 508 /* Clear interrupt mask to stop from interrupts being generated */
509 IXGBE_WRITE_REG(hw, IXGBE_EIMC, IXGBE_IRQ_CLEAR_MASK); 509 IXGBE_WRITE_REG(hw, IXGBE_EIMC, IXGBE_IRQ_CLEAR_MASK);
@@ -1151,8 +1151,12 @@ static void ixgbe_release_eeprom(struct ixgbe_hw *hw)
1151 1151
1152 hw->mac.ops.release_swfw_sync(hw, IXGBE_GSSR_EEP_SM); 1152 hw->mac.ops.release_swfw_sync(hw, IXGBE_GSSR_EEP_SM);
1153 1153
1154 /* Delay before attempt to obtain semaphore again to allow FW access */ 1154 /*
1155 msleep(hw->eeprom.semaphore_delay); 1155 * Delay before attempt to obtain semaphore again to allow FW
1156 * access. semaphore_delay is in ms we need us for usleep_range
1157 */
1158 usleep_range(hw->eeprom.semaphore_delay * 1000,
1159 hw->eeprom.semaphore_delay * 2000);
1156} 1160}
1157 1161
1158/** 1162/**
@@ -2228,7 +2232,7 @@ s32 ixgbe_acquire_swfw_sync(struct ixgbe_hw *hw, u16 mask)
2228 * thread currently using resource (swmask) 2232 * thread currently using resource (swmask)
2229 */ 2233 */
2230 ixgbe_release_eeprom_semaphore(hw); 2234 ixgbe_release_eeprom_semaphore(hw);
2231 msleep(5); 2235 usleep_range(5000, 10000);
2232 timeout--; 2236 timeout--;
2233 } 2237 }
2234 2238
@@ -2302,7 +2306,7 @@ s32 ixgbe_blink_led_start_generic(struct ixgbe_hw *hw, u32 index)
2302 autoc_reg |= IXGBE_AUTOC_AN_RESTART; 2306 autoc_reg |= IXGBE_AUTOC_AN_RESTART;
2303 autoc_reg |= IXGBE_AUTOC_FLU; 2307 autoc_reg |= IXGBE_AUTOC_FLU;
2304 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc_reg); 2308 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc_reg);
2305 msleep(10); 2309 usleep_range(10000, 20000);
2306 } 2310 }
2307 2311
2308 led_reg &= ~IXGBE_LED_MODE_MASK(index); 2312 led_reg &= ~IXGBE_LED_MODE_MASK(index);
diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c
index 7b59f64a13d4..5e7ed225851a 100644
--- a/drivers/net/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c
@@ -376,7 +376,7 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
376 */ 376 */
377 if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) { 377 if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) {
378 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) 378 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
379 msleep(1); 379 usleep_range(1000, 2000);
380 380
381 ixgbe_fcoe_setapp(adapter, up); 381 ixgbe_fcoe_setapp(adapter, up);
382 382
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c
index 76380a2b35aa..5005a36f8593 100644
--- a/drivers/net/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ixgbe/ixgbe_ethtool.c
@@ -931,7 +931,7 @@ static int ixgbe_set_ringparam(struct net_device *netdev,
931 } 931 }
932 932
933 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) 933 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
934 msleep(1); 934 usleep_range(1000, 2000);
935 935
936 if (!netif_running(adapter->netdev)) { 936 if (!netif_running(adapter->netdev)) {
937 for (i = 0; i < adapter->num_tx_queues; i++) 937 for (i = 0; i < adapter->num_tx_queues; i++)
@@ -1417,7 +1417,7 @@ static int ixgbe_intr_test(struct ixgbe_adapter *adapter, u64 *data)
1417 1417
1418 /* Disable all the interrupts */ 1418 /* Disable all the interrupts */
1419 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF); 1419 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF);
1420 msleep(10); 1420 usleep_range(10000, 20000);
1421 1421
1422 /* Test each interrupt */ 1422 /* Test each interrupt */
1423 for (; i < 10; i++) { 1423 for (; i < 10; i++) {
@@ -1437,7 +1437,7 @@ static int ixgbe_intr_test(struct ixgbe_adapter *adapter, u64 *data)
1437 ~mask & 0x00007FFF); 1437 ~mask & 0x00007FFF);
1438 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, 1438 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS,
1439 ~mask & 0x00007FFF); 1439 ~mask & 0x00007FFF);
1440 msleep(10); 1440 usleep_range(10000, 20000);
1441 1441
1442 if (adapter->test_icr & mask) { 1442 if (adapter->test_icr & mask) {
1443 *data = 3; 1443 *data = 3;
@@ -1454,7 +1454,7 @@ static int ixgbe_intr_test(struct ixgbe_adapter *adapter, u64 *data)
1454 adapter->test_icr = 0; 1454 adapter->test_icr = 0;
1455 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMS, mask); 1455 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMS, mask);
1456 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, mask); 1456 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, mask);
1457 msleep(10); 1457 usleep_range(10000, 20000);
1458 1458
1459 if (!(adapter->test_icr &mask)) { 1459 if (!(adapter->test_icr &mask)) {
1460 *data = 4; 1460 *data = 4;
@@ -1474,7 +1474,7 @@ static int ixgbe_intr_test(struct ixgbe_adapter *adapter, u64 *data)
1474 ~mask & 0x00007FFF); 1474 ~mask & 0x00007FFF);
1475 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, 1475 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS,
1476 ~mask & 0x00007FFF); 1476 ~mask & 0x00007FFF);
1477 msleep(10); 1477 usleep_range(10000, 20000);
1478 1478
1479 if (adapter->test_icr) { 1479 if (adapter->test_icr) {
1480 *data = 5; 1480 *data = 5;
@@ -1485,7 +1485,7 @@ static int ixgbe_intr_test(struct ixgbe_adapter *adapter, u64 *data)
1485 1485
1486 /* Disable all the interrupts */ 1486 /* Disable all the interrupts */
1487 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF); 1487 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF);
1488 msleep(10); 1488 usleep_range(10000, 20000);
1489 1489
1490 /* Unhook test interrupt handler */ 1490 /* Unhook test interrupt handler */
1491 free_irq(irq, netdev); 1491 free_irq(irq, netdev);
@@ -1613,7 +1613,7 @@ static int ixgbe_setup_loopback_test(struct ixgbe_adapter *adapter)
1613 reg_data |= IXGBE_AUTOC_LMS_10G_LINK_NO_AN | IXGBE_AUTOC_FLU; 1613 reg_data |= IXGBE_AUTOC_LMS_10G_LINK_NO_AN | IXGBE_AUTOC_FLU;
1614 IXGBE_WRITE_REG(&adapter->hw, IXGBE_AUTOC, reg_data); 1614 IXGBE_WRITE_REG(&adapter->hw, IXGBE_AUTOC, reg_data);
1615 IXGBE_WRITE_FLUSH(&adapter->hw); 1615 IXGBE_WRITE_FLUSH(&adapter->hw);
1616 msleep(10); 1616 usleep_range(10000, 20000);
1617 1617
1618 /* Disable Atlas Tx lanes; re-enabled in reset path */ 1618 /* Disable Atlas Tx lanes; re-enabled in reset path */
1619 if (hw->mac.type == ixgbe_mac_82598EB) { 1619 if (hw->mac.type == ixgbe_mac_82598EB) {
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 3148e2182e92..5cd2cd3dd353 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2731,7 +2731,7 @@ void ixgbe_configure_tx_ring(struct ixgbe_adapter *adapter,
2731 2731
2732 /* poll to verify queue is enabled */ 2732 /* poll to verify queue is enabled */
2733 do { 2733 do {
2734 msleep(1); 2734 usleep_range(1000, 2000);
2735 txdctl = IXGBE_READ_REG(hw, IXGBE_TXDCTL(reg_idx)); 2735 txdctl = IXGBE_READ_REG(hw, IXGBE_TXDCTL(reg_idx));
2736 } while (--wait_loop && !(txdctl & IXGBE_TXDCTL_ENABLE)); 2736 } while (--wait_loop && !(txdctl & IXGBE_TXDCTL_ENABLE));
2737 if (!wait_loop) 2737 if (!wait_loop)
@@ -3023,7 +3023,7 @@ static void ixgbe_rx_desc_queue_enable(struct ixgbe_adapter *adapter,
3023 return; 3023 return;
3024 3024
3025 do { 3025 do {
3026 msleep(1); 3026 usleep_range(1000, 2000);
3027 rxdctl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(reg_idx)); 3027 rxdctl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(reg_idx));
3028 } while (--wait_loop && !(rxdctl & IXGBE_RXDCTL_ENABLE)); 3028 } while (--wait_loop && !(rxdctl & IXGBE_RXDCTL_ENABLE));
3029 3029
@@ -3945,7 +3945,7 @@ void ixgbe_reinit_locked(struct ixgbe_adapter *adapter)
3945{ 3945{
3946 WARN_ON(in_interrupt()); 3946 WARN_ON(in_interrupt());
3947 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) 3947 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
3948 msleep(1); 3948 usleep_range(1000, 2000);
3949 ixgbe_down(adapter); 3949 ixgbe_down(adapter);
3950 /* 3950 /*
3951 * If SR-IOV enabled then wait a bit before bringing the adapter 3951 * If SR-IOV enabled then wait a bit before bringing the adapter
@@ -4150,7 +4150,7 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
4150 /* this call also flushes the previous write */ 4150 /* this call also flushes the previous write */
4151 ixgbe_disable_rx_queue(adapter, adapter->rx_ring[i]); 4151 ixgbe_disable_rx_queue(adapter, adapter->rx_ring[i]);
4152 4152
4153 msleep(10); 4153 usleep_range(10000, 20000);
4154 4154
4155 netif_tx_stop_all_queues(netdev); 4155 netif_tx_stop_all_queues(netdev);
4156 4156
diff --git a/drivers/net/ixgbe/ixgbe_phy.c b/drivers/net/ixgbe/ixgbe_phy.c
index df5b8aa4795d..31cc29ed137c 100644
--- a/drivers/net/ixgbe/ixgbe_phy.c
+++ b/drivers/net/ixgbe/ixgbe_phy.c
@@ -753,7 +753,7 @@ s32 ixgbe_reset_phy_nl(struct ixgbe_hw *hw)
753 &phy_data); 753 &phy_data);
754 if ((phy_data & MDIO_CTRL1_RESET) == 0) 754 if ((phy_data & MDIO_CTRL1_RESET) == 0)
755 break; 755 break;
756 msleep(10); 756 usleep_range(10000, 20000);
757 } 757 }
758 758
759 if ((phy_data & MDIO_CTRL1_RESET) != 0) { 759 if ((phy_data & MDIO_CTRL1_RESET) != 0) {
@@ -782,7 +782,7 @@ s32 ixgbe_reset_phy_nl(struct ixgbe_hw *hw)
782 case IXGBE_DELAY_NL: 782 case IXGBE_DELAY_NL:
783 data_offset++; 783 data_offset++;
784 hw_dbg(hw, "DELAY: %d MS\n", edata); 784 hw_dbg(hw, "DELAY: %d MS\n", edata);
785 msleep(edata); 785 usleep_range(edata * 1000, edata * 2000);
786 break; 786 break;
787 case IXGBE_DATA_NL: 787 case IXGBE_DATA_NL:
788 hw_dbg(hw, "DATA:\n"); 788 hw_dbg(hw, "DATA:\n");
diff --git a/drivers/net/ixgbe/ixgbe_x540.c b/drivers/net/ixgbe/ixgbe_x540.c
index 295c17003d6d..8aa1dc1155a9 100644
--- a/drivers/net/ixgbe/ixgbe_x540.c
+++ b/drivers/net/ixgbe/ixgbe_x540.c
@@ -563,7 +563,7 @@ static s32 ixgbe_acquire_swfw_sync_X540(struct ixgbe_hw *hw, u16 mask)
563 * resource (swmask) 563 * resource (swmask)
564 */ 564 */
565 ixgbe_release_swfw_sync_semaphore(hw); 565 ixgbe_release_swfw_sync_semaphore(hw);
566 msleep(5); 566 usleep_range(5000, 10000);
567 } 567 }
568 } 568 }
569 569
@@ -585,7 +585,7 @@ static s32 ixgbe_acquire_swfw_sync_X540(struct ixgbe_hw *hw, u16 mask)
585 } 585 }
586 } 586 }
587 587
588 msleep(5); 588 usleep_range(5000, 10000);
589 return 0; 589 return 0;
590} 590}
591 591
@@ -609,7 +609,7 @@ static void ixgbe_release_swfw_sync_X540(struct ixgbe_hw *hw, u16 mask)
609 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC, swfw_sync); 609 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC, swfw_sync);
610 610
611 ixgbe_release_swfw_sync_semaphore(hw); 611 ixgbe_release_swfw_sync_semaphore(hw);
612 msleep(5); 612 usleep_range(5000, 10000);
613} 613}
614 614
615/** 615/**