linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Arend van Spriel" <arend@broadcom.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: "Linux Wireless List" <linux-wireless@vger.kernel.org>,
	"Arend van Spriel" <arend@broadcom.com>,
	stable@vger.kernel.org
Subject: [PATCH 9/9] brcm80211: smac: resume transmit fifo upon receiving frames
Date: Wed, 11 Apr 2012 11:52:51 +0200	[thread overview]
Message-ID: <1334137971-3972-10-git-send-email-arend@broadcom.com> (raw)
In-Reply-To: <1334137971-3972-1-git-send-email-arend@broadcom.com>

There have been reports about not being able to use access-points
on channel 12 and 13 or having connectivity issues when these channels
were part of the selected regulatory domain. Upon switching to these
channels the brcmsmac driver suspends the transmit dma fifos. This
patch resumes them upon handing over the first received beacon to
mac80211.

This patch is to be applied to the stable tree for kernel versions
3.2 and 3.3.

Cc: stable@vger.kernel.org
Tested-by: Francesco Saverio Schiavarelli <fschiava@libero.it>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/net/wireless/brcm80211/brcmsmac/main.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
index 231ddf4..7083db7 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
@@ -7614,6 +7614,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
 {
 	int len_mpdu;
 	struct ieee80211_rx_status rx_status;
+	struct ieee80211_hdr *hdr;
 
 	memset(&rx_status, 0, sizeof(rx_status));
 	prep_mac80211_status(wlc, rxh, p, &rx_status);
@@ -7623,6 +7624,13 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
 	skb_pull(p, D11_PHY_HDR_LEN);
 	__skb_trim(p, len_mpdu);
 
+	/* unmute transmit */
+	if (wlc->hw->suspended_fifos) {
+		hdr = (struct ieee80211_hdr *)p->data;
+		if (ieee80211_is_beacon(hdr->frame_control))
+			brcms_b_mute(wlc->hw, false);
+	}
+
 	memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
 	ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p);
 }
-- 
1.7.5.4



  parent reply	other threads:[~2012-04-11  9:53 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-11  9:52 [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver Arend van Spriel
2012-04-11  9:52 ` [PATCH 1/9] brcm80211: fmac: make brcmf_net_attach() static Arend van Spriel
2012-04-11  9:52 ` [PATCH 2/9] brcm80211: fmac: remove primary mac address handling from brcmf_net_attach Arend van Spriel
2012-04-11  9:52 ` [PATCH 3/9] brcm80211: fmac: register primary net device with device mac address Arend van Spriel
2012-04-11  9:52 ` [PATCH 4/9] brcm80211: fmac: add frame header extension support Arend van Spriel
2012-04-11  9:52 ` [PATCH 5/9] brcm80211: fmac: postpone dongle RF enabling Arend van Spriel
2012-04-11  9:52 ` [PATCH 6/9] brcm80211: fmac: clean up chip id table Arend van Spriel
2012-04-11  9:52 ` [PATCH 7/9] brcm80211: smac: do not use US as fallback regulatory hint Arend van Spriel
2012-04-13 14:48   ` Seth Forshee
2012-04-16  8:20     ` Arend van Spriel
2012-04-11  9:52 ` [PATCH 8/9] brcm80211: smac: only provide valid " Arend van Spriel
2012-04-11  9:52 ` Arend van Spriel [this message]
2012-04-13 17:57 ` [PATCH 0/9] brcm80211: minor bug fixes for broadcom driver John W. Linville
2012-04-16  8:51   ` Arend van Spriel
2012-04-16 17:18     ` John W. Linville

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1334137971-3972-10-git-send-email-arend@broadcom.com \
    --to=arend@broadcom.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).