#define FW_PATH_AUTO_SELECT 1\r
extern char firmware_path[MOD_PARAM_PATHLEN];\r
extern int disable_proptx;\r
+#ifdef POWER_OFF_IN_SUSPEND\r
extern bool wifi_ready;\r
+#endif\r
\r
/* channel list */\r
typedef struct wl_channel_list {\r
dhd_wl_ioctl_cmd(dhd, WLC_SET_VAR, iovbuf, sizeof(iovbuf), TRUE, 0);
#endif /* defined(AP) && !defined(WLP2P) */
dhd_conf_set_bw(dhd);
+ dhd_conf_force_wme(dhd);
+ dhd_conf_set_stbc(dhd);
#if defined(SOFTAP)
if (ap_fw_loaded == TRUE) {
if (dhdp->prot)
dhd_prot_detach(dhdp);
}
- dhd_conf_detach(dhdp);
#if defined(CONFIG_HAS_EARLYSUSPEND) && defined(DHD_USE_EARLYSUSPEND)
if (dhd->dhd_state & DHD_ATTACH_STATE_EARLYSUSPEND_DONE) {
dhd_monitor_uninit();
}
#endif
+ dhd_conf_detach(dhdp);
#ifdef PNO_SUPPORT
if (dhdp->pno_state)
/* Re-init bus, enable F2 transfer */
bcmerror = dhd_bus_init((dhd_pub_t *) bus->dhd, FALSE);
if (bcmerror == BCME_OK) {
+ bcmsdh_set_drvdata(dhdp); // terence 20131214: fix for null pointer issue
#if defined(OOB_INTR_ONLY)
/* make sure oob intr get registered */
if (!bcmsdh_is_oob_intr_registered()) {
}
+#ifdef POWER_OFF_IN_SUSPEND
#define RETURN_EIO_IF_NOT_UP(wlpriv) \
do { \
struct net_device *checkSysUpNDev = wl_to_prmry_ndev(wlpriv); \
} \
wl_wakelock_timeout(wlpriv); \
} while (0)
-
+#else
+#define RETURN_EIO_IF_NOT_UP(wlpriv) \
+do { \
+ struct net_device *checkSysUpNDev = wl_to_prmry_ndev(wlpriv); \
+ if (unlikely(!wl_get_drv_status(wlpriv, READY, checkSysUpNDev))) { \
+ WL_INFO(("device is not ready\n")); \
+ return -EIO; \
+ } \
+} while (0)
+#endif
#define IS_WPA_AKM(akm) ((akm) == RSN_AKM_NONE || \
(akm) == RSN_AKM_UNSPECIFIED || \