BNX2X: spatch sleep functions
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 5 Feb 2015 21:16:27 +0000 (16:16 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 2 Mar 2015 16:59:08 +0000 (11:59 -0500)
For the usleep_range, we can't do anything with the max time.

kern/drivers/net/bnx2x/bnx2x.h
kern/drivers/net/bnx2x/bnx2x_cmn.c
kern/drivers/net/bnx2x/bnx2x_cmn.h
kern/drivers/net/bnx2x/bnx2x_ethtool.c
kern/drivers/net/bnx2x/bnx2x_link.c
kern/drivers/net/bnx2x/bnx2x_main.c
kern/drivers/net/bnx2x/bnx2x_sp.c
kern/drivers/net/bnx2x/bnx2x_sriov.c
kern/drivers/net/bnx2x/bnx2x_stats.c
kern/drivers/net/bnx2x/bnx2x_vfpf.c
scripts/spatch/linux/funcs.cocci [new file with mode: 0644]

index 101d376..420e1ff 100644 (file)
@@ -2175,7 +2175,7 @@ static inline uint32_t reg_poll(struct bnx2x *bp, uint32_t reg,
                if (val == expected)
                        break;
                ms -= wait;
-               msleep(wait);
+               kthread_usleep(1000 * wait);
 
        } while (ms > 0);
 
index e176135..0b7ca70 100644 (file)
@@ -1863,7 +1863,7 @@ static void bnx2x_napi_disable_cnic(struct bnx2x *bp)
        for_each_rx_queue_cnic(bp, i) {
                napi_disable(&bnx2x_fp(bp, i, napi));
                while (!bnx2x_fp_ll_disable(&bp->fp[i]))
-                       usleep_range(1000, 2000);
+                       kthread_usleep(1000);
        }
 }
 
@@ -1874,7 +1874,7 @@ static void bnx2x_napi_disable(struct bnx2x *bp)
        for_each_eth_queue(bp, i) {
                napi_disable(&bnx2x_fp(bp, i, napi));
                while (!bnx2x_fp_ll_disable(&bp->fp[i]))
-                       usleep_range(1000, 2000);
+                       kthread_usleep(1000);
        }
 }
 
@@ -3116,7 +3116,7 @@ int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state)
 
                if (pmcsr & PCI_PM_CTRL_STATE_MASK)
                        /* delay required during transition out of D3hot */
-                       msleep(20);
+                       kthread_usleep(1000 * 20);
                break;
 
        case PCI_D3hot:
index 28c8195..07009ad 100644 (file)
@@ -1152,7 +1152,7 @@ static inline int bnx2x_clean_tx_queue(struct bnx2x *bp,
 #endif
                }
                cnt--;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 
        return 0;
@@ -1188,7 +1188,7 @@ static inline bool bnx2x_wait_sp_comp(struct bnx2x *bp, unsigned long mask)
                }
                netif_addr_unlock_bh(bp->dev);
 
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 
        smp_mb();
index ec23f49..c4c52e5 100644 (file)
@@ -1778,9 +1778,9 @@ static int bnx2x_set_eeprom(struct ether *dev,
                                                &bp->link_params.phy[EXT_PHY1]);
 
                        /* wait 0.5 sec to allow it to run */
-                       msleep(500);
+                       kthread_usleep(1000 * 500);
                        bnx2x_ext_phy_hw_reset(bp, port);
-                       msleep(500);
+                       kthread_usleep(1000 * 500);
                        bnx2x_release_phy_lock(bp);
                }
        } else
@@ -2366,14 +2366,14 @@ static void bnx2x_wait_for_link(struct bnx2x *bp, uint8_t link_up,
 
        if (link_up) {
                while (bnx2x_link_test(bp, is_serdes) && cnt--)
-                       msleep(20);
+                       kthread_usleep(1000 * 20);
 
                if (cnt <= 0 && bnx2x_link_test(bp, is_serdes))
                        DP(BNX2X_MSG_ETHTOOL, "Timeout waiting for link up\n");
 
                cnt = 1400;
                while (!bp->link_vars.link_up && cnt--)
-                       msleep(20);
+                       kthread_usleep(1000 * 20);
 
                if (cnt <= 0 && !bp->link_vars.link_up)
                        DP(BNX2X_MSG_ETHTOOL,
@@ -3002,7 +3002,7 @@ static void bnx2x_self_test(struct ether *dev,
        if (link_up) {
                cnt = 100;
                while (bnx2x_link_test(bp, is_serdes) && --cnt)
-                       msleep(20);
+                       kthread_usleep(1000 * 20);
        }
 
        if (!cnt) {
index 47b5ae5..2ef7e81 100644 (file)
@@ -1556,7 +1556,7 @@ static void bnx2x_umac_enable(struct link_params *params,
        /* Reset UMAC */
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR,
               (MISC_REGISTERS_RESET_REG_2_UMAC0 << params->port));
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET,
               (MISC_REGISTERS_RESET_REG_2_UMAC0 << params->port));
@@ -1671,7 +1671,7 @@ static void bnx2x_xmac_init(struct link_params *params, uint32_t max_speed)
        /* Hard reset */
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR,
               MISC_REGISTERS_RESET_REG_2_XMAC);
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET,
               MISC_REGISTERS_RESET_REG_2_XMAC);
@@ -1701,7 +1701,7 @@ static void bnx2x_xmac_init(struct link_params *params, uint32_t max_speed)
        /* Soft reset */
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR,
               MISC_REGISTERS_RESET_REG_2_XMAC_SOFT);
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET,
               MISC_REGISTERS_RESET_REG_2_XMAC_SOFT);
@@ -2413,7 +2413,7 @@ static int bnx2x_bmac_enable(struct link_params *params,
        if (reset_bmac) {
                REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR,
                       (MISC_REGISTERS_RESET_REG_2_RST_BMAC0 << port));
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET,
@@ -2470,7 +2470,7 @@ static void bnx2x_set_bmac_rx(struct bnx2x *bp, uint32_t chip_id,
                else
                        wb_data[0] &= ~BMAC_CONTROL_RX_ENABLE;
                REG_WR_DMAE(bp, bmac_addr, wb_data, 2);
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 }
 
@@ -2491,7 +2491,7 @@ static int bnx2x_pbf_update(struct link_params *params, uint32_t flow_ctrl,
        DP(NETIF_MSG_LINK, "init_crd 0x%x  crd 0x%x\n", init_crd, crd);
 
        while ((init_crd != crd) && count) {
-               usleep_range(5000, 10000);
+               kthread_usleep(5000);
                crd = REG_RD(bp, PBF_REG_P0_CREDIT + port*8);
                count--;
        }
@@ -2536,7 +2536,7 @@ static int bnx2x_pbf_update(struct link_params *params, uint32_t flow_ctrl,
 
        /* Probe the credit changes */
        REG_WR(bp, PBF_REG_INIT_P0 + port*4, 0x1);
-       usleep_range(5000, 10000);
+       kthread_usleep(5000);
        REG_WR(bp, PBF_REG_INIT_P0 + port*4, 0x0);
 
        /* Enable port */
@@ -5998,7 +5998,7 @@ static uint16_t bnx2x_wait_reset_complete(struct bnx2x *bp,
                                MDIO_PMA_REG_CTRL, &ctrl);
                if (!(ctrl & (1<<15)))
                        break;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 
        if (cnt == 1000)
@@ -6249,7 +6249,7 @@ static void bnx2x_set_xgxs_loopback(struct bnx2x_phy *phy,
                                 (MDIO_REG_BANK_CL73_IEEEB0 +
                                  (MDIO_CL73_IEEEB0_CL73_AN_CONTROL & 0xf)),
                                 0x6041);
-               msleep(200);
+               kthread_usleep(1000 * 200);
                /* Set aer mmd back */
                bnx2x_set_aer_mmd(params, phy);
 
@@ -6631,7 +6631,7 @@ static int bnx2x_update_link_down(struct link_params *params,
        if (!CHIP_IS_E3(bp))
                REG_WR(bp, NIG_REG_NIG_EMAC0_EN + port*4, 0);
 
-       usleep_range(10000, 20000);
+       kthread_usleep(10000);
        /* Reset BigMac/Xmac */
        if (CHIP_IS_E1x(bp) ||
            CHIP_IS_E2(bp))
@@ -6741,7 +6741,7 @@ static int bnx2x_update_link_up(struct link_params *params,
                        break;
                }
        }
-       msleep(20);
+       kthread_usleep(1000 * 20);
        return rc;
 }
 /* The bnx2x_link_update function should be called upon link
@@ -6945,7 +6945,7 @@ int bnx2x_link_update(struct link_params *params, struct link_vars *vars)
                } else if (prev_line_speed != vars->line_speed) {
                        REG_WR(bp, NIG_REG_EGRESS_DRAIN0_MODE + params->port*4,
                               0);
-                       usleep_range(1000, 2000);
+                       kthread_usleep(1000);
                }
        }
 
@@ -7015,7 +7015,7 @@ void bnx2x_ext_phy_hw_reset(struct bnx2x *bp, uint8_t port)
 {
        bnx2x_set_gpio(bp, MISC_REGISTERS_GPIO_1,
                       MISC_REGISTERS_GPIO_OUTPUT_LOW, port);
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
        bnx2x_set_gpio(bp, MISC_REGISTERS_GPIO_1,
                       MISC_REGISTERS_GPIO_OUTPUT_HIGH, port);
 }
@@ -7135,7 +7135,7 @@ static int bnx2x_8073_8727_external_rom_boot(struct bnx2x *bp,
                         MDIO_PMA_REG_GEN_CTRL_ROM_RESET_INTERNAL_MP);
 
        /* Delay 100ms per the PHY specifications */
-       msleep(100);
+       kthread_usleep(1000 * 100);
 
        /* 8073 sometimes taking longer to download */
        do {
@@ -7156,7 +7156,7 @@ static int bnx2x_8073_8727_external_rom_boot(struct bnx2x *bp,
                                MDIO_PMA_DEVAD,
                                MDIO_PMA_REG_M8051_MSGOUT_REG, &fw_msgout);
 
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        } while (fw_ver1 == 0 || fw_ver1 == 0x4321 ||
                        ((fw_msgout & 0xff) != 0x03 && (phy->type ==
                        PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8073)));
@@ -7250,11 +7250,11 @@ static int bnx2x_8073_xaui_wa(struct bnx2x *bp, struct bnx2x_phy *phy)
                                          "XAUI workaround has completed\n");
                                        return 0;
                                 }
-                                usleep_range(3000, 6000);
+                                kthread_usleep(3000);
                        }
                        break;
                }
-               usleep_range(3000, 6000);
+               kthread_usleep(3000);
        }
        DP(NETIF_MSG_LINK, "Warning: XAUI work-around timeout !!!\n");
        return -EINVAL;
@@ -7305,7 +7305,7 @@ static void bnx2x_8073_set_pause_cl37(struct link_params *params,
 
        bnx2x_cl45_write(bp, phy,
                         MDIO_AN_DEVAD, MDIO_AN_REG_CL37_FC_LD, cl37_val);
-       msleep(500);
+       kthread_usleep(1000 * 500);
 }
 
 static void bnx2x_8073_specific_func(struct bnx2x_phy *phy,
@@ -7465,7 +7465,7 @@ static int bnx2x_8073_config_init(struct bnx2x_phy *phy,
        bnx2x_ext_phy_set_pause(params, phy, vars);
 
        /* Restart autoneg */
-       msleep(500);
+       kthread_usleep(1000 * 500);
        bnx2x_cl45_write(bp, phy, MDIO_AN_DEVAD, MDIO_AN_REG_CTRL, 0x1200);
        DP(NETIF_MSG_LINK, "807x Autoneg Restart: Advertise 1G=%x, 10G=%x\n",
                   ((val & (1<<5)) > 0), ((val & (1<<7)) > 0));
@@ -7868,7 +7868,7 @@ static int bnx2x_8726_read_sfp_module_eeprom(struct bnx2x_phy *phy,
                if ((val & MDIO_PMA_REG_SFP_TWO_WIRE_CTRL_STATUS_MASK) ==
                    MDIO_PMA_REG_SFP_TWO_WIRE_STATUS_IDLE)
                        return 0;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
        return -EINVAL;
 }
@@ -7920,7 +7920,7 @@ static int bnx2x_warpcore_read_sfp_module_eeprom(struct bnx2x_phy *phy,
                if ((!is_init) && (cnt == I2C_WA_PWR_ITER)) {
                        bnx2x_warpcore_power_module(params, 0);
                        /* Note that 100us are not enough here */
-                       usleep_range(1000, 2000);
+                       kthread_usleep(1000);
                        bnx2x_warpcore_power_module(params, 1);
                }
                rc = bnx2x_bsc_read(params, bp, dev_addr, addr32, 0, byte_cnt,
@@ -7992,7 +7992,7 @@ static int bnx2x_8727_read_sfp_module_eeprom(struct bnx2x_phy *phy,
        /* Wait appropriate time for two-wire command to finish before
         * polling the status register
         */
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        /* Wait up to 500us for command complete status */
        for (i = 0; i < 100; i++) {
@@ -8028,7 +8028,7 @@ static int bnx2x_8727_read_sfp_module_eeprom(struct bnx2x_phy *phy,
                if ((val & MDIO_PMA_REG_SFP_TWO_WIRE_CTRL_STATUS_MASK) ==
                    MDIO_PMA_REG_SFP_TWO_WIRE_STATUS_IDLE)
                        return 0;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 
        return -EINVAL;
@@ -8158,7 +8158,7 @@ static int bnx2x_get_edc_mode(struct bnx2x_phy *phy,
                        if (val[SFP_EEPROM_1G_COMP_CODE_ADDR] &
                            SFP_EEPROM_1G_COMP_CODE_BASE_T) {
                                bnx2x_sfp_set_transmitter(params, phy, 0);
-                               msleep(40);
+                               kthread_usleep(1000 * 40);
                                bnx2x_sfp_set_transmitter(params, phy, 1);
                        }
                } else {
@@ -8319,7 +8319,7 @@ static int bnx2x_wait_for_sfp_module_initialized(struct bnx2x_phy *phy,
                           timeout * 5);
                        return 0;
                }
-               usleep_range(5000, 10000);
+               kthread_usleep(5000);
        }
        rc = bnx2x_read_sfp_module_eeprom(phy, params, I2C_DEV_ADDR_A0,
                                          1, 1, &val);
@@ -8873,7 +8873,7 @@ static uint8_t bnx2x_8706_config_init(struct bnx2x_phy *phy,
                                MDIO_PMA_DEVAD, MDIO_PMA_REG_ROM_VER1, &val);
                if (val)
                        break;
-               usleep_range(10000, 20000);
+               kthread_usleep(10000);
        }
        DP(NETIF_MSG_LINK, "XGXS 8706 is initialized after %d ms\n", cnt);
        if ((params->feature_config_flags &
@@ -8981,7 +8981,7 @@ static void bnx2x_8726_external_rom_boot(struct bnx2x_phy *phy,
 {
        struct bnx2x *bp = params->bp;
        /* Need to wait 100ms after reset */
-       msleep(100);
+       kthread_usleep(1000 * 100);
 
        /* Micro controller re-boot */
        bnx2x_cl45_write(bp, phy,
@@ -9003,14 +9003,14 @@ static void bnx2x_8726_external_rom_boot(struct bnx2x_phy *phy,
                         MDIO_PMA_REG_GEN_CTRL_ROM_RESET_INTERNAL_MP);
 
        /* Wait for 150ms for microcode load */
-       msleep(150);
+       kthread_usleep(1000 * 150);
 
        /* Disable serial boot control, tristates pins SS_N, SCK, MOSI, MISO */
        bnx2x_cl45_write(bp, phy,
                         MDIO_PMA_DEVAD,
                         MDIO_PMA_REG_MISC_CTRL1, 0x0000);
 
-       msleep(200);
+       kthread_usleep(1000 * 200);
        bnx2x_save_bcm_spirom_ver(bp, phy, params->port);
 }
 
@@ -9916,7 +9916,7 @@ static int bnx2x_84833_cmd_hdlr(struct bnx2x_phy *phy,
                                MDIO_84833_CMD_HDLR_STATUS, &val);
                if (val == PHY84833_STATUS_CMD_OPEN_FOR_CMDS)
                        break;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
        if (idx >= PHY84833_CMDHDLR_WAIT) {
                DP(NETIF_MSG_LINK, "FW cmd: FW not ready.\n");
@@ -9937,7 +9937,7 @@ static int bnx2x_84833_cmd_hdlr(struct bnx2x_phy *phy,
                if ((val == PHY84833_STATUS_CMD_COMPLETE_PASS) ||
                        (val == PHY84833_STATUS_CMD_COMPLETE_ERROR))
                        break;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
        if ((idx >= PHY84833_CMDHDLR_WAIT) ||
                (val == PHY84833_STATUS_CMD_COMPLETE_ERROR)) {
@@ -10107,7 +10107,7 @@ static int bnx2x_848x3_config_init(struct bnx2x_phy *phy,
        uint16_t cmd_args[PHY84833_CMDHDLR_MAX_ARGS];
        int rc = 0;
 
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        if (!(CHIP_IS_E1x(bp)))
                port = BP_PATH(bp);
@@ -10128,7 +10128,7 @@ static int bnx2x_848x3_config_init(struct bnx2x_phy *phy,
        bnx2x_wait_reset_complete(bp, phy, params);
 
        /* Wait for GPHY to come out of reset */
-       msleep(50);
+       kthread_usleep(1000 * 50);
        if ((phy->type != PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM84833) &&
            (phy->type != PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM84834)) {
                /* BCM84823 requires that XGXS links up first @ 10G for normal
@@ -10762,7 +10762,7 @@ static int bnx2x_54618se_config_init(struct bnx2x_phy *phy,
        uint32_t cfg_pin;
 
        DP(NETIF_MSG_LINK, "54618SE cfg init\n");
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        /* This works with E3 only, no need to check the chip
         * before determining the port.
@@ -10779,7 +10779,7 @@ static int bnx2x_54618se_config_init(struct bnx2x_phy *phy,
        bnx2x_set_cfg_pin(bp, cfg_pin, 1);
 
        /* wait for GPHY to reset */
-       msleep(50);
+       kthread_usleep(1000 * 50);
 
        /* reset phy */
        bnx2x_cl22_write(bp, phy,
@@ -10787,7 +10787,7 @@ static int bnx2x_54618se_config_init(struct bnx2x_phy *phy,
        bnx2x_wait_reset_complete(bp, phy, params);
 
        /* Wait for GPHY to reset */
-       msleep(50);
+       kthread_usleep(1000 * 50);
 
 
        bnx2x_54618se_specific_func(phy, params, PHY_INIT);
@@ -11284,7 +11284,7 @@ void bnx2x_sfx7101_sp_sw_reset(struct bnx2x *bp, struct bnx2x_phy *phy)
                        MDIO_PMA_REG_7101_RESET, &val);
 
        for (cnt = 0; cnt < 10; cnt++) {
-               msleep(50);
+               kthread_usleep(1000 * 50);
                /* Writes a self-clearing reset */
                bnx2x_cl45_write(bp, phy,
                                 MDIO_PMA_DEVAD,
@@ -12713,7 +12713,7 @@ int bnx2x_phy_init(struct link_params *params, struct link_vars *vars)
                                bnx2x_serdes_deassert(bp, params->port);
                }
                bnx2x_link_initialize(params, vars);
-               msleep(30);
+               kthread_usleep(1000 * 30);
                bnx2x_link_int_enable(params);
                break;
        }
@@ -12760,7 +12760,7 @@ int bnx2x_link_reset(struct link_params *params, struct link_vars *vars,
        if (!CHIP_IS_E3(bp))
                REG_WR(bp, NIG_REG_NIG_EMAC0_EN + port*4, 0);
 
-       usleep_range(10000, 20000);
+       kthread_usleep(10000);
        /* The PHY reset is controlled by GPIO 1
         * Hold it as vars low
         */
@@ -12840,7 +12840,7 @@ int bnx2x_lfa_reset(struct link_params *params,
                bnx2x_set_umac_rxtx(params, 0);
        }
        /* Wait 10ms for the pipe to clean up*/
-       usleep_range(10000, 20000);
+       kthread_usleep(10000);
 
        /* Clean the NIG-BRB using the network filters in a way that will
         * not cut a packet in the middle.
@@ -12928,7 +12928,7 @@ static int bnx2x_8073_common_init_phy(struct bnx2x *bp,
        }
 
        /* Add delay of 150ms after reset */
-       msleep(150);
+       kthread_usleep(1000 * 150);
 
        if (phy[PORT_0].addr & 0x1) {
                phy_blk[PORT_0] = &(phy[PORT_1]);
@@ -12966,7 +12966,7 @@ static int bnx2x_8073_common_init_phy(struct bnx2x *bp,
        /* Toggle Transmitter: Power down and then up with 600ms delay
         * between
         */
-       msleep(600);
+       kthread_usleep(1000 * 600);
 
        /* PART3 - complete TX_POWER_DOWN process, and set GPIO2 back to low */
        for (port = PORT_MAX - 1; port >= PORT_0; port--) {
@@ -12979,7 +12979,7 @@ static int bnx2x_8073_common_init_phy(struct bnx2x *bp,
                bnx2x_cl45_write(bp, phy_blk[port],
                                MDIO_PMA_DEVAD,
                                MDIO_PMA_REG_TX_POWER_DOWN, (val & (~(1<<10))));
-               usleep_range(15000, 30000);
+               kthread_usleep(15000);
 
                /* Read modify write the SPI-ROM version select register */
                bnx2x_cl45_read(bp, phy_blk[port],
@@ -13012,7 +13012,7 @@ static int bnx2x_8726_common_init_phy(struct bnx2x *bp,
        REG_WR(bp, MISC_REG_GPIO_EVENT_EN, val);
 
        bnx2x_ext_phy_hw_reset(bp, 0);
-       usleep_range(5000, 10000);
+       kthread_usleep(5000);
        for (port = 0; port < PORT_MAX; port++) {
                uint32_t shmem_base, shmem2_base;
 
@@ -13121,11 +13121,11 @@ static int bnx2x_8727_common_init_phy(struct bnx2x *bp,
        /* Initiate PHY reset*/
        bnx2x_set_gpio(bp, reset_gpio, MISC_REGISTERS_GPIO_OUTPUT_LOW,
                       port);
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
        bnx2x_set_gpio(bp, reset_gpio, MISC_REGISTERS_GPIO_OUTPUT_HIGH,
                       port);
 
-       usleep_range(5000, 10000);
+       kthread_usleep(5000);
 
        /* PART1 - Reset both phys */
        for (port = PORT_MAX - 1; port >= PORT_0; port--) {
@@ -13164,7 +13164,7 @@ static int bnx2x_8727_common_init_phy(struct bnx2x *bp,
        }
 
        /* Add delay of 150ms after reset */
-       msleep(150);
+       kthread_usleep(1000 * 150);
        if (phy[PORT_0].addr & 0x1) {
                phy_blk[PORT_0] = &(phy[PORT_1]);
                phy_blk[PORT_1] = &(phy[PORT_0]);
index 4f63fbb..7be287b 100644 (file)
@@ -1480,7 +1480,7 @@ static int bnx2x_pf_flr_clnup(struct bnx2x *bp)
        bnx2x_tx_hw_flushed(bp, poll_cnt);
 
        /* Wait 100ms (not adjusted according to platform) */
-       msleep(100);
+       kthread_usleep(1000 * 100);
 
        /* Verify no pending pci transactions */
        if (bnx2x_is_pcie_pending(bp->pdev))
@@ -1976,7 +1976,7 @@ int bnx2x_acquire_hw_lock(struct bnx2x *bp, uint32_t resource)
                if (lock_status & resource_bit)
                        return 0;
 
-               usleep_range(5000, 10000);
+               kthread_usleep(5000);
        }
        BNX2X_ERR("Timeout\n");
        return -EAGAIN;
@@ -2981,7 +2981,7 @@ uint32_t bnx2x_fw_command(struct bnx2x *bp, uint32_t command, uint32_t param)
 
        do {
                /* let the FW do it's magic ... */
-               msleep(delay);
+               kthread_usleep(1000 * delay);
 
                rc = SHMEM_RD(bp, func_mb[mb_idx].fw_mb_header);
 
@@ -3591,7 +3591,7 @@ static void bnx2x_handle_drv_info_req(struct bnx2x *bp)
                                break;
                        }
 
-                       msleep(BNX2X_UPDATE_DRV_INFO_IND_LENGTH);
+                       kthread_usleep(1000 * BNX2X_UPDATE_DRV_INFO_IND_LENGTH);
                }
        }
        if (!release) {
@@ -3887,7 +3887,7 @@ static int bnx2x_acquire_alr(struct bnx2x *bp)
                if (val & MCPR_ACCESS_LOCK_LOCK)
                        break;
 
-               usleep_range(5000, 10000);
+               kthread_usleep(5000);
        }
        if (!(val & MCPR_ACCESS_LOCK_LOCK)) {
                BNX2X_ERR("Cannot acquire MCP access lock register\n");
@@ -6626,7 +6626,7 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
                if (val == 0x10)
                        break;
 
-               usleep_range(10000, 20000);
+               kthread_usleep(10000);
                count--;
        }
        if (val != 0x10) {
@@ -6641,7 +6641,7 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
                if (val == 1)
                        break;
 
-               usleep_range(10000, 20000);
+               kthread_usleep(10000);
                count--;
        }
        if (val != 0x1) {
@@ -6651,9 +6651,9 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
 
        /* Reset and init BRB, PRS */
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR, 0x03);
-       msleep(50);
+       kthread_usleep(1000 * 50);
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, 0x03);
-       msleep(50);
+       kthread_usleep(1000 * 50);
        bnx2x_init_block(bp, BLOCK_BRB1, PHASE_COMMON);
        bnx2x_init_block(bp, BLOCK_PRS, PHASE_COMMON);
 
@@ -6682,7 +6682,7 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
                if (val == 0xb0)
                        break;
 
-               usleep_range(10000, 20000);
+               kthread_usleep(10000);
                count--;
        }
        if (val != 0xb0) {
@@ -6699,7 +6699,7 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
        REG_WR(bp, PRS_REG_CFC_SEARCH_INITIAL_CREDIT, 0x1);
 
        /* Wait until PRS register shows 3 packets */
-       msleep(10 * factor);
+       kthread_usleep(1000 * (10 * factor));
        /* Wait until NIG register shows 1 packet of size 0x10 */
        val = REG_RD(bp, PRS_REG_NUM_OF_PACKETS);
        if (val != 3)
@@ -6716,9 +6716,9 @@ static int bnx2x_int_mem_test(struct bnx2x *bp)
 
        /* Reset and init BRB, PRS, NIG */
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR, 0x03);
-       msleep(50);
+       kthread_usleep(1000 * 50);
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, 0x03);
-       msleep(50);
+       kthread_usleep(1000 * 50);
        bnx2x_init_block(bp, BLOCK_BRB1, PHASE_COMMON);
        bnx2x_init_block(bp, BLOCK_PRS, PHASE_COMMON);
        if (!CNIC_SUPPORT(bp))
@@ -7021,7 +7021,7 @@ static int bnx2x_init_hw_common(struct bnx2x *bp)
                REG_WR(bp, PXP2_REG_PGL_TAGS_LIMIT, 0x1);
 
        /* let the HW do it's magic ... */
-       msleep(100);
+       kthread_usleep(1000 * 100);
        /* finish PXP init */
        val = REG_RD(bp, PXP2_REG_RQ_CFG_DONE);
        if (val != 1) {
@@ -7144,7 +7144,7 @@ static int bnx2x_init_hw_common(struct bnx2x *bp)
 
                /* let the HW do it's magic ... */
                do {
-                       msleep(200);
+                       kthread_usleep(1000 * 200);
                        val = REG_RD(bp, ATC_REG_ATC_INIT_DONE);
                } while (factor-- && (val != 1));
 
@@ -7234,7 +7234,7 @@ static int bnx2x_init_hw_common(struct bnx2x *bp)
                           VFC_MEMORIES_RST_REG_CAM_RST |
                           VFC_MEMORIES_RST_REG_RAM_RST);
 
-               msleep(20);
+               kthread_usleep(1000 * 20);
        }
 
        bnx2x_init_block(bp, BLOCK_TSEM, PHASE_COMMON);
@@ -7341,7 +7341,7 @@ static int bnx2x_init_hw_common(struct bnx2x *bp)
                REG_WR(bp, NIG_REG_LLH_E1HOV_MODE, IS_MF_SD(bp));
 
        if (CHIP_REV_IS_SLOW(bp))
-               msleep(200);
+               kthread_usleep(1000 * 200);
 
        /* finish CFC init */
        val = reg_poll(bp, CFC_REG_LL_INIT_DONE, 1, 100, 10);
@@ -7687,7 +7687,7 @@ void bnx2x_igu_clear_sb_gen(struct bnx2x *bp, uint8_t func,
 
        /* wait for clean up to finish */
        while (!(REG_RD(bp, igu_addr_ack) & sb_bit) && --cnt)
-               msleep(20);
+               kthread_usleep(1000 * 20);
 
        if (!(REG_RD(bp, igu_addr_ack) & sb_bit)) {
                DP(NETIF_MSG_HW,
@@ -7911,7 +7911,7 @@ static int bnx2x_init_hw_func(struct bnx2x *bp)
                 * needed to make sure there are no requests in
                 * one of the PXP internal queues with "old" ILT addresses
                 */
-               msleep(20);
+               kthread_usleep(1000 * 20);
                /*
                 * Master enable - Due to WB DMAE writes performed before this
                 * register is re-initialized as part of the regular function
@@ -8854,7 +8854,7 @@ static void bnx2x_reset_func(struct bnx2x *bp)
                 * scan to complete
                 */
                for (i = 0; i < 200; i++) {
-                       usleep_range(10000, 20000);
+                       kthread_usleep(10000);
                        if (!REG_RD(bp, TM_REG_LIN0_SCAN_ON + port*4))
                                break;
                }
@@ -8902,7 +8902,7 @@ static void bnx2x_reset_port(struct bnx2x *bp)
        /* Configure AEU */
        REG_WR(bp, MISC_REG_AEU_MASK_ATTN_FUNC_0 + port*4, 0);
 
-       msleep(100);
+       kthread_usleep(1000 * 100);
        /* Check for BRB port occupancy */
        val = REG_RD(bp, BRB1_REG_PORT_NUM_OCC_BLOCKS_0 + port*4);
        if (val)
@@ -9079,7 +9079,7 @@ static int bnx2x_func_wait_started(struct bnx2x *bp)
 
        while (bnx2x_func_get_state(bp, &bp->func_obj) !=
                                BNX2X_F_STATE_STARTED && tout--)
-               msleep(20);
+               kthread_usleep(1000 * 20);
 
        if (bnx2x_func_get_state(bp, &bp->func_obj) !=
                                                BNX2X_F_STATE_STARTED) {
@@ -9176,7 +9176,7 @@ void bnx2x_chip_cleanup(struct bnx2x *bp, int unload_mode, bool keep_link)
        }
 
        /* Give HW time to discard old tx messages */
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        /* Clean all ETH MACs */
        rc = bnx2x_del_all_macs(bp, &bp->sp_objs[0].mac_obj, BNX2X_ETH_MAC,
@@ -9427,9 +9427,9 @@ static void bnx2x_mcp_wait_one(struct bnx2x *bp)
        /* special handling for emulation and FPGA,
           wait 10 times longer */
        if (CHIP_REV_IS_SLOW(bp))
-               msleep(MCP_ONE_TIMEOUT*10);
+               kthread_usleep(1000 * (MCP_ONE_TIMEOUT * 10));
        else
-               msleep(MCP_ONE_TIMEOUT);
+               kthread_usleep(1000 * MCP_ONE_TIMEOUT);
 }
 
 /*
@@ -9605,7 +9605,7 @@ static int bnx2x_er_poll_igu_vq(struct bnx2x *bp)
                if (pend_bits == 0)
                        break;
 
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        } while (cnt-- > 0);
 
        if (cnt <= 0) {
@@ -9640,7 +9640,7 @@ static int bnx2x_process_kill(struct bnx2x *bp, bool global)
                    (pgl_exp_rom2 == 0xffffffff) &&
                    (!CHIP_IS_E3(bp) || (tags_63_32 == 0xffffffff)))
                        break;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        } while (cnt-- > 0);
 
        if (cnt <= 0) {
@@ -9672,7 +9672,7 @@ static int bnx2x_process_kill(struct bnx2x *bp, bool global)
        /* Wait for 1ms to empty GLUE and PCI-E core queues,
         * PSWHST, GRC and PSWRD Tetris buffer.
         */
-       usleep_range(1000, 2000);
+       kthread_usleep(1000);
 
        /* Prepare to chip reset: */
        /* MCP */
@@ -10181,7 +10181,7 @@ static void bnx2x_prev_unload_close_mac(struct bnx2x *bp,
        }
 
        if (mac_stopped)
-               msleep(20);
+               kthread_usleep(1000 * 20);
 }
 
 #define BNX2X_PREV_UNDI_PROD_ADDR(p) (BAR_TSTRORM_INTMEM + 0x1508 + ((p) << 4))
@@ -10624,7 +10624,7 @@ static int bnx2x_prev_unload(struct bnx2x *bp)
                if (rc != BNX2X_PREV_WAIT_NEEDED)
                        break;
 
-               msleep(20);
+               kthread_usleep(1000 * 20);
        } while (--time_counter);
 
        if (!time_counter || rc) {
@@ -11649,7 +11649,7 @@ static int bnx2x_get_hwinfo(struct bnx2x *bp)
 
                        while (tout && REG_RD(bp, IGU_REG_RESET_MEMORIES)) {
                                tout--;
-                               usleep_range(1000, 2000);
+                               kthread_usleep(1000);
                        }
 
                        if (REG_RD(bp, IGU_REG_RESET_MEMORIES)) {
index 0a38b61..02faeb1 100644 (file)
@@ -293,7 +293,7 @@ static inline int bnx2x_state_wait(struct bnx2x *bp, int state,
                        return 0;
                }
 
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
 
                if (bp->panic)
                        return -EIO;
@@ -1381,7 +1381,7 @@ static int bnx2x_wait_vlan_mac(struct bnx2x *bp,
 
                /* Wait until there are no pending commands */
                if (!bnx2x_exe_queue_empty(exeq))
-                       usleep_range(1000, 2000);
+                       kthread_usleep(1000);
                else
                        return 0;
        }
@@ -6021,7 +6021,7 @@ int bnx2x_func_state_change(struct bnx2x *bp,
            (test_bit(RAMROD_RETRY, &params->ramrod_flags))) {
                while ((rc == -EBUSY) && (--cnt > 0)) {
                        qunlock(&o->one_pending_mutex);
-                       msleep(10);
+                       kthread_usleep(1000 * 10);
                        qlock(&o->one_pending_mutex);
                        rc = o->check_transition(bp, o, params);
                }
index 5e19c6b..6f94f77 100644 (file)
@@ -1596,7 +1596,7 @@ int bnx2x_iov_nic_init(struct bnx2x *bp)
        DP(BNX2X_MSG_IOV, "num of vfs: %d\n", (bp)->vfdb->sriov.nr_virtfn);
 
        /* let FLR complete ... */
-       msleep(100);
+       kthread_usleep(1000 * 100);
 
        /* initialize vf database */
        for_each_vf(bp, vfid) {
@@ -2154,7 +2154,7 @@ int bnx2x_vf_init(struct bnx2x *bp, struct bnx2x_virtf *vf, dma_addr_t *sb_map)
        }
 
        /* let FLR complete ... */
-       msleep(100);
+       kthread_usleep(1000 * 100);
 
        /* FLR cleanup epilogue */
        if (bnx2x_vf_flr_clnup_epilog(bp, vf->abs_vfid))
index 08788eb..20f4c02 100644 (file)
@@ -212,7 +212,7 @@ static void bnx2x_stats_comp(struct bnx2x *bp)
                        break;
                }
                cnt--;
-               usleep_range(1000, 2000);
+               kthread_usleep(1000);
        }
 }
 
index 129fa42..ae3b1f4 100644 (file)
@@ -174,7 +174,7 @@ static int bnx2x_send_msg2pf(struct bnx2x *bp, uint8_t *done,
 
        /* Wait for PF to complete */
        while ((tout >= 0) && (!*done)) {
-               msleep(interval);
+               kthread_usleep(1000 * interval);
                tout -= 1;
 
                /* progress indicator - HV can take its own sweet time in
@@ -202,7 +202,7 @@ static int bnx2x_get_vf_id(struct bnx2x *bp, uint32_t *vf_id)
                if (GOOD_ME_REG(me_reg))
                        break;
 
-               msleep(interval);
+               kthread_usleep(1000 * interval);
 
                BNX2X_ERR("Invalid ME register value: 0x%08x\n. Is pf driver up?",
                          me_reg);
diff --git a/scripts/spatch/linux/funcs.cocci b/scripts/spatch/linux/funcs.cocci
new file mode 100644 (file)
index 0000000..ebc26db
--- /dev/null
@@ -0,0 +1,12 @@
+@@
+expression T;
+@@
+-msleep(T);
++kthread_usleep(1000 * T);
+
+@@
+expression TMIN;
+expression TMAX;
+@@
+-usleep_range(TMIN, TMAX);
++kthread_usleep(TMIN);