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

Commit e43e5052 authored by David S. Miller's avatar David S. Miller
Browse files

Merge tag 'wireless-drivers-for-davem-2015-03-24' of...

Merge tag 'wireless-drivers-for-davem-2015-03-24' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers



iwlwifi:

* avoid panic with lots of IBSS stations
* Fix dvm's behavior after suspend resume
* Allow to keep connection after CSA failure
* Remove a noisy by harmless WARN_ON
* New device IDs

rtlwifi:

* fix IOMMU mapping leak in AP mode

brcmfmac:

* disable MBSS feature for BCM43362 to get AP mode working again

ath9k:

* disable Transmit Power Control (TPC) again due to regressions

* fix beaconing issue with AP+STA setup

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents a6e95cc7 6ae4ccfe
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -219,12 +219,15 @@ void ath9k_beacon_remove_slot(struct ath_softc *sc, struct ieee80211_vif *vif)
	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
	struct ath_vif *avp = (void *)vif->drv_priv;
	struct ath_buf *bf = avp->av_bcbuf;
	struct ath_beacon_config *cur_conf = &sc->cur_chan->beacon;

	ath_dbg(common, CONFIG, "Removing interface at beacon slot: %d\n",
		avp->av_bslot);

	tasklet_disable(&sc->bcon_tasklet);

	cur_conf->enable_beacon &= ~BIT(avp->av_bslot);

	if (bf && bf->bf_mpdu) {
		struct sk_buff *skb = bf->bf_mpdu;
		dma_unmap_single(sc->dev, bf->bf_buf_addr,
@@ -521,8 +524,7 @@ static bool ath9k_allow_beacon_config(struct ath_softc *sc,
	}

	if (sc->sc_ah->opmode == NL80211_IFTYPE_AP) {
		if ((vif->type != NL80211_IFTYPE_AP) ||
		    (sc->nbcnvifs > 1)) {
		if (vif->type != NL80211_IFTYPE_AP) {
			ath_dbg(common, CONFIG,
				"An AP interface is already present !\n");
			return false;
@@ -616,11 +618,13 @@ void ath9k_beacon_config(struct ath_softc *sc, struct ieee80211_vif *vif,
	 * enabling/disabling SWBA.
	 */
	if (changed & BSS_CHANGED_BEACON_ENABLED) {
		if (!bss_conf->enable_beacon &&
		    (sc->nbcnvifs <= 1)) {
			cur_conf->enable_beacon = false;
		} else if (bss_conf->enable_beacon) {
			cur_conf->enable_beacon = true;
		bool enabled = cur_conf->enable_beacon;

		if (!bss_conf->enable_beacon) {
			cur_conf->enable_beacon &= ~BIT(avp->av_bslot);
		} else {
			cur_conf->enable_beacon |= BIT(avp->av_bslot);
			if (!enabled)
				ath9k_cache_beacon_config(sc, ctx, bss_conf);
		}
	}
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ struct ath_beacon_config {
	u16 dtim_period;
	u16 bmiss_timeout;
	u8 dtim_count;
	bool enable_beacon;
	u8 enable_beacon;
	bool ibss_creator;
	u32 nexttbtt;
	u32 intval;
+1 −1
Original line number Diff line number Diff line
@@ -424,7 +424,7 @@ static void ath9k_hw_init_defaults(struct ath_hw *ah)
	ah->power_mode = ATH9K_PM_UNDEFINED;
	ah->htc_reset_init = true;

	ah->tpc_enabled = true;
	ah->tpc_enabled = false;

	ah->ani_function = ATH9K_ANI_ALL;
	if (!AR_SREV_9300_20_OR_LATER(ah))
+2 −1
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
	brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_MCHAN, "mchan");
	if (drvr->bus_if->wowl_supported)
		brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_WOWL, "wowl");
	if (drvr->bus_if->chip != BRCM_CC_43362_CHIP_ID)
		brcmf_feat_iovar_int_set(ifp, BRCMF_FEAT_MBSS, "mbss", 0);

	/* set chip related quirks */
+0 −1
Original line number Diff line number Diff line
@@ -708,7 +708,6 @@ struct iwl_priv {
	unsigned long reload_jiffies;
	int reload_count;
	bool ucode_loaded;
	bool init_ucode_run;		/* Don't run init uCode again */

	u8 plcp_delta_threshold;

Loading