You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.1 KiB
Diff
67 lines
2.1 KiB
Diff
12 years ago
|
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
|
||
|
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
|
||
|
@@ -367,9 +367,10 @@ brcms_ops_add_interface(struct ieee80211
|
||
|
}
|
||
|
|
||
|
spin_lock_bh(&wl->lock);
|
||
|
- memcpy(wl->pub->cur_etheraddr, vif->addr, sizeof(vif->addr));
|
||
|
wl->mute_tx = false;
|
||
|
brcms_c_mute(wl->wlc, false);
|
||
|
+ if (vif->type == NL80211_IFTYPE_STATION)
|
||
|
+ brcms_c_start_station(wl->wlc, vif->addr);
|
||
|
spin_unlock_bh(&wl->lock);
|
||
|
|
||
|
return 0;
|
||
|
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||
|
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||
|
@@ -2165,6 +2165,12 @@ void brcms_b_switch_macfreq(struct brcms
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+void brcms_c_start_station(struct brcms_c_info *wlc, u8 *addr)
|
||
|
+{
|
||
|
+ memcpy(wlc->pub->cur_etheraddr, addr, sizeof(wlc->pub->cur_etheraddr));
|
||
|
+ wlc->bsscfg->type = BRCMS_TYPE_STATION;
|
||
|
+}
|
||
|
+
|
||
|
/* Initialize GPIOs that are controlled by D11 core */
|
||
|
static void brcms_c_gpio_init(struct brcms_c_info *wlc)
|
||
|
{
|
||
|
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.h
|
||
|
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.h
|
||
|
@@ -576,10 +576,17 @@ struct antsel_info {
|
||
|
struct brcms_antselcfg antcfg_cur; /* current antenna config (auto) */
|
||
|
};
|
||
|
|
||
|
+enum brcms_bss_type {
|
||
|
+ BRCMS_TYPE_STATION,
|
||
|
+ BRCMS_TYPE_AP,
|
||
|
+ BRCMS_TYPE_ADHOC,
|
||
|
+};
|
||
|
+
|
||
|
/*
|
||
|
* BSS configuration state
|
||
|
*
|
||
|
* wlc: wlc to which this bsscfg belongs to.
|
||
|
+ * type: interface type
|
||
|
* up: is this configuration up operational
|
||
|
* enable: is this configuration enabled
|
||
|
* associated: is BSS in ASSOCIATED state
|
||
|
@@ -599,6 +606,7 @@ struct antsel_info {
|
||
|
*/
|
||
|
struct brcms_bss_cfg {
|
||
|
struct brcms_c_info *wlc;
|
||
|
+ enum brcms_bss_type type;
|
||
|
bool up;
|
||
|
bool enable;
|
||
|
bool associated;
|
||
|
--- a/drivers/net/wireless/brcm80211/brcmsmac/pub.h
|
||
|
+++ b/drivers/net/wireless/brcm80211/brcmsmac/pub.h
|
||
|
@@ -333,5 +333,6 @@ extern int brcms_c_get_tx_power(struct b
|
||
|
extern bool brcms_c_check_radio_disabled(struct brcms_c_info *wlc);
|
||
|
extern void brcms_c_mute(struct brcms_c_info *wlc, bool on);
|
||
|
extern bool brcms_c_tx_flush_completed(struct brcms_c_info *wlc);
|
||
|
+extern void brcms_c_start_station(struct brcms_c_info *wlc, u8 *addr);
|
||
|
|
||
|
#endif /* _BRCM_PUB_H_ */
|