diff options
Diffstat (limited to 'drivers/net/wireless/brcm80211/bcmdhd/wl_android.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/bcmdhd/wl_android.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/wireless/brcm80211/bcmdhd/wl_android.c b/drivers/net/wireless/brcm80211/bcmdhd/wl_android.c index 76df647b677..7c6ab2fb282 100644 --- a/drivers/net/wireless/brcm80211/bcmdhd/wl_android.c +++ b/drivers/net/wireless/brcm80211/bcmdhd/wl_android.c @@ -126,6 +126,8 @@ int wl_cfg80211_get_p2p_noa(struct net_device *net, char* buf, int len) int wl_cfg80211_set_p2p_ps(struct net_device *net, char* buf, int len) { return 0; } #endif +extern int dhd_os_check_if_up(void *dhdp); +extern void *bcmsdh_get_drvdata(void); extern bool ap_fw_loaded; #ifdef CUSTOMER_HW2 @@ -708,7 +710,7 @@ int wifi_set_power(int on, unsigned long msec) wifi_control_data->set_power(on); } if (msec) - mdelay(msec); + msleep(msec); return 0; } @@ -784,18 +786,19 @@ static int wifi_remove(struct platform_device *pdev) static int wifi_suspend(struct platform_device *pdev, pm_message_t state) { DHD_TRACE(("##> %s\n", __FUNCTION__)); -#if defined(OOB_INTR_ONLY) +#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 39)) && defined(OOB_INTR_ONLY) bcmsdh_oob_intr_set(0); -#endif /* (OOB_INTR_ONLY) */ +#endif return 0; } static int wifi_resume(struct platform_device *pdev) { DHD_TRACE(("##> %s\n", __FUNCTION__)); -#if defined(OOB_INTR_ONLY) - bcmsdh_oob_intr_set(1); -#endif /* (OOB_INTR_ONLY) */ +#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 39)) && defined(OOB_INTR_ONLY) + if (dhd_os_check_if_up(bcmsdh_get_drvdata())) + bcmsdh_oob_intr_set(1); +#endif return 0; } |