Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70268ce2 authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by John W. Linville
Browse files

brcmsmac: add interface type to brcms_bss_cfg



This makes it possible to easily check in which mode the device is
currently running. This also adds a function to start station mode.

Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 39b2d36c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -365,9 +365,10 @@ brcms_ops_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
	}

	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;
+6 −0
Original line number Diff line number Diff line
@@ -2163,6 +2163,12 @@ void brcms_b_switch_macfreq(struct brcms_hardware *wlc_hw, u8 spurmode)
	}
}

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)
{
+8 −0
Original line number Diff line number Diff line
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -333,5 +333,6 @@ extern int brcms_c_get_tx_power(struct brcms_c_info *wlc);
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_ */