dect
/
linux-2.6
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/drivers/net/wireless/brcm80211/brcmsmac
Arend van Spriel 7b2385b953 brcmsmac: rework of mac80211 .flush() callback operation
This patch addresses a long standing issue of the driver with the
mac80211 .flush() callback. Since implementing the .flush() callback
a number of issues have been fixed, but a WARN_ON_ONCE() was still
triggered because the timeout on the flush could still occur.

This patch changes the awkward design using msleep() into one using
a waitqueue. The waiting flush() context will kick the transmit dma
when it is idle and the timeout used waiting for the event is set
to 500 ms. Worst case there can be 64 frames outstanding for transmit
in the driver. At a rate of 1Mbps that would take 1.5 seconds assuming
MTU is 1500 bytes and ignoring retries. The WARN_ON_ONCE() is also
removed as this was put in to indicate the flush timeout as a reason
for the driver to stall. That was not happening since fixing endless
AMPDU retries with following upstream commit:

commit 85091fc0a7
Author: Arend van Spriel <arend@broadcom.com>
Date:   Thu Feb 23 18:38:22 2012 +0100

    brcm80211: smac: fix endless retry of A-MPDU transmissions

bugzilla: 42840 <https://bugzilla.kernel.org/show_bug.cgi?id=42840>
bugzilla@redhat: <https://bugzilla.redhat.com/show_bug.cgi?id=799168>
bugzilla@redhat: <https://bugzilla.redhat.com/show_bug.cgi?id=787649>

Cc: Jonathan Nieder <jrnieder@gmail.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Camaleón <noelamac@gmail.com>
Cc: Milan Bouchet-Valat <nalimilan@club-internet.fr>
Cc: Seth Forshee <seth.forshee@canonical.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Piotr Haber <phaber@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Acked-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-02-04 16:46:28 -05:00
..
phy brcmsmac: Use udelay instead of usleep_range 2013-01-02 14:38:26 -05:00
Makefile brcmsmac: Add support for writing debug messages to the trace buffer 2012-11-20 14:06:03 -05:00
aiutils.c brcmsmac: fix uninitialized variable warning on arm architecture 2012-12-10 15:33:05 -05:00
aiutils.h brcmsmac: use chip and package id constants from bcma 2012-07-10 12:16:52 -04:00
ampdu.c brcmsmac: Improve tx trace and debug support 2012-11-20 14:07:38 -05:00
ampdu.h brcmsmac: Remove internal tx queue 2012-11-20 14:04:23 -05:00
antsel.c brcmsmac: Use debug macros for general error and debug statements 2012-11-20 14:06:16 -05:00
antsel.h
brcms_trace_events.c
brcms_trace_events.h brcmsmac: Add tracepoint for AMPDU session information 2012-11-20 14:08:06 -05:00
channel.c brcmsmac: Use debug macros for general error and debug statements 2012-11-20 14:06:16 -05:00
channel.h brcm80211: smac: use current regulatory domain when checking whether OFDM is allowed 2012-06-20 15:14:40 -04:00
d11.h wireless: Remove unnecessary ; from while (0) macros 2012-04-11 16:23:56 -04:00
debug.c brcmsmac: remove duplicated include from debug.c 2012-12-06 14:58:55 -05:00
debug.h brcmsmac: add copyright information for Canonical 2013-01-02 14:38:36 -05:00
dma.c brcmsmac: Fix possible NULL pointer dereference in _dma_ctrlflags() 2012-11-30 14:00:39 -05:00
dma.h brcmsmac: Add brcms_dbg_dma() debug macro 2012-11-20 14:07:12 -05:00
mac80211_if.c brcmsmac: rework of mac80211 .flush() callback operation 2013-02-04 16:46:28 -05:00
mac80211_if.h brcmsmac: rework of mac80211 .flush() callback operation 2013-02-04 16:46:28 -05:00
main.c brcmsmac: rework of mac80211 .flush() callback operation 2013-02-04 16:46:28 -05:00
main.h brcmsmac: Improve tx trace and debug support 2012-11-20 14:07:38 -05:00
phy_shim.c brcmsmac: remove brcmsmac own sprom parsing 2012-05-16 12:45:23 -04:00
phy_shim.h brcmsmac: remove brcmsmac own sprom parsing 2012-05-16 12:45:23 -04:00
pmu.c brcmsmac: use chip and package id constants from bcma 2012-07-10 12:16:52 -04:00
pmu.h brcmsmac: remove si_pmu_spuravoid_pllupdate() 2012-07-10 12:16:50 -04:00
pub.h brcmsmac: rework of mac80211 .flush() callback operation 2013-02-04 16:46:28 -05:00
rate.c
rate.h brcm80211: smac: remove phy api bypass in rate.h 2011-11-08 15:54:09 -05:00
scb.h
stf.c brcmsmac: Add brcms_dbg_ht() debug macro 2012-11-20 14:07:25 -05:00
stf.h
types.h brcm80211: Convert log message levels to debug levels 2012-11-20 14:05:37 -05:00
ucode_loader.c
ucode_loader.h