diff options
author | Nagarjuna Kristam <nkristam@nvidia.com> | 2012-10-12 16:06:37 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-10-16 16:20:30 -0700 |
commit | 946af34e4eb6b9c02d4160d273a8ffb989d1dc0a (patch) | |
tree | 03f284abb8a7f20f2d37466c9402da08c9af05d2 /drivers/net/wireless/bcmdhd/dhd_linux.c | |
parent | 18d7db2b24f821047878bbcc2803d9d7ff86eb8e (diff) |
net: wireless: bcmdhd: remove wifi chip retry detection loop
wifi retry chip detection loop uses dummy SDIO register un-register calls
to detect wifi chip. After successful detection of wifi chip, dummy SDIO
driver is un-registered and then dhd bus driver is register to perform wifi
initialization sequence. Sequential SDIO un-register and register calls can cause
race condition in SDIO driver.
Bug 1054985
Change-Id: Ifd3c9cf69af6b58c32cd0a34424b53c04e1fb0e7
Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-on: http://git-master/r/144063
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Rakesh Kumar <krakesh@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/net/wireless/bcmdhd/dhd_linux.c')
-rw-r--r-- | drivers/net/wireless/bcmdhd/dhd_linux.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/drivers/net/wireless/bcmdhd/dhd_linux.c b/drivers/net/wireless/bcmdhd/dhd_linux.c index 66cfcb18f5b6..577c283630df 100644 --- a/drivers/net/wireless/bcmdhd/dhd_linux.c +++ b/drivers/net/wireless/bcmdhd/dhd_linux.c @@ -4157,11 +4157,6 @@ dhd_module_init(void) { int error = 0; -#if defined(BCMLXSDMMC) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) - int retry = POWERUP_MAX_RETRY; - int chip_up = 0; -#endif - DHD_TRACE(("%s: Enter\n", __FUNCTION__)); wl_android_init(); @@ -4182,45 +4177,12 @@ dhd_module_init(void) } while (0); #endif -#if defined(BCMLXSDMMC) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) - do { - sema_init(&dhd_chipup_sem, 0); - dhd_bus_reg_sdio_notify(&dhd_chipup_sem); - dhd_customer_gpio_wlan_ctrl(WLAN_POWER_ON); -#if defined(CONFIG_WIFI_CONTROL_FUNC) - if (wl_android_wifictrl_func_add() < 0) { - dhd_bus_unreg_sdio_notify(); - goto fail_1; - } -#endif /* defined(CONFIG_WIFI_CONTROL_FUNC) */ - if (down_timeout(&dhd_chipup_sem, - msecs_to_jiffies(POWERUP_WAIT_MS)) == 0) { - dhd_bus_unreg_sdio_notify(); - chip_up = 1; - break; - } - DHD_ERROR(("\nfailed to power up wifi chip, retry again (%d left) **\n\n", - retry+1)); - dhd_bus_unreg_sdio_notify(); -#if defined(CONFIG_WIFI_CONTROL_FUNC) - wl_android_wifictrl_func_del(); -#endif /* defined(CONFIG_WIFI_CONTROL_FUNC) */ - dhd_customer_gpio_wlan_ctrl(WLAN_POWER_OFF); - } while (retry-- > 0); - - if (!chip_up) { - DHD_ERROR(("\nfailed to power up wifi chip, max retry reached, exits **\n\n")); - return -ENODEV; - } -#else dhd_customer_gpio_wlan_ctrl(WLAN_POWER_ON); #if defined(CONFIG_WIFI_CONTROL_FUNC) if (wl_android_wifictrl_func_add() < 0) goto fail_1; #endif /* defined(CONFIG_WIFI_CONTROL_FUNC) */ -#endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)) sema_init(&dhd_registration_sem, 0); #endif |