aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/bcmdhd/wl_cfg80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/bcmdhd/wl_cfg80211.h')
-rw-r--r--drivers/net/wireless/bcmdhd/wl_cfg80211.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/drivers/net/wireless/bcmdhd/wl_cfg80211.h b/drivers/net/wireless/bcmdhd/wl_cfg80211.h
index 37c8e58..dfb0d0d 100644
--- a/drivers/net/wireless/bcmdhd/wl_cfg80211.h
+++ b/drivers/net/wireless/bcmdhd/wl_cfg80211.h
@@ -61,13 +61,24 @@ struct wl_ibss;
/* 0 invalidates all debug messages. default is 1 */
#define WL_DBG_LEVEL 0xFF
-#define WL_ERR(args) \
+#if defined(DHD_DEBUG)
+#define WL_ERR(args) \
do { \
- if (wl_dbg_level & WL_DBG_ERR) { \
+ if (wl_dbg_level & WL_DBG_ERR) { \
printk(KERN_ERR "CFG80211-ERROR) %s : ", __func__); \
printk args; \
} \
} while (0)
+#else /* defined(DHD_DEBUG) */
+#define WL_ERR(args) \
+do { \
+ if ((wl_dbg_level & WL_DBG_ERR) && net_ratelimit()) { \
+ printk(KERN_INFO "CFG80211-ERROR) %s : ", __func__); \
+ printk args; \
+ } \
+} while (0)
+#endif /* defined(DHD_DEBUG) */
+
#ifdef WL_INFO
#undef WL_INFO
#endif
@@ -142,6 +153,8 @@ do { \
#define WL_SCB_TIMEOUT 20
#endif
+#define WLAN_REASON_DRIVER_ERROR WLAN_REASON_UNSPECIFIED
+
/* driver status */
enum wl_status {
WL_STATUS_READY = 0,
@@ -170,6 +183,7 @@ enum wl_prof_list {
WL_PROF_IBSS,
WL_PROF_BAND,
WL_PROF_BSSID,
+ WL_PROF_PENDING_BSSID,
WL_PROF_ACT,
WL_PROF_BEACONINT,
WL_PROF_DTIMPERIOD
@@ -272,6 +286,7 @@ struct wl_profile {
struct wl_security sec;
struct wl_ibss ibss;
u8 bssid[ETHER_ADDR_LEN];
+ u8 pending_bssid[ETHER_ADDR_LEN];
u16 beacon_interval;
u8 dtim_period;
bool active;
@@ -387,7 +402,7 @@ struct afx_hdl {
};
/* private data of cfg80211 interface */
-struct wl_priv {
+typedef struct wl_priv {
struct wireless_dev *wdev; /* representing wl cfg80211 device */
struct wireless_dev *p2p_wdev; /* representing wl cfg80211 device for P2P */
@@ -456,7 +471,10 @@ struct wl_priv {
bool sched_scan_running; /* scheduled scan req status */
u16 hostapd_chan; /* remember chan requested by framework for hostapd */
u16 deauth_reason; /* Place holder to save deauth/disassoc reasons */
-};
+ u16 scan_busy_count;
+ struct work_struct work_scan_timeout;
+} wl_priv_t;
+
static inline struct wl_bss_info *next_bss(struct wl_scan_results *list, struct wl_bss_info *bss)
{
@@ -670,4 +688,5 @@ int wl_cfg80211_do_driver_init(struct net_device *net);
void wl_cfg80211_enable_trace(int level);
extern s32 wl_update_wiphybands(struct wl_priv *wl);
extern s32 wl_cfg80211_if_is_group_owner(void);
+extern int wl_cfg80211_update_power_mode(struct net_device *dev);
#endif /* _wl_cfg80211_h_ */