GitHub/LineageOS/G12/android_kernel_amlogic_linux-4.9.git
13 years agortlwifi: use work for lps
Stanislaw Gruszka [Mon, 12 Dec 2011 11:43:23 +0000 (12:43 +0100)]
rtlwifi: use work for lps

Leaving leisure power save mode can take some time, so it's better to
perform that action in process context with interrupts enabled. This
patch changes lps_leave tasklet to work.

Reported-by: Philipp Dreimann <philipp@dreimann.net>
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Mike McCormack <mikem@ring3k.org>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: implement spurious tone avoidance
Rafał Miłecki [Sun, 11 Dec 2011 12:16:51 +0000 (13:16 +0100)]
b43: N-PHY: implement spurious tone avoidance

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: finish 2.4GHz 0x2056 radio setup
Rafał Miłecki [Sun, 11 Dec 2011 01:55:34 +0000 (02:55 +0100)]
b43: N-PHY: finish 2.4GHz 0x2056 radio setup

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: determine various PHY params
Rafał Miłecki [Sun, 11 Dec 2011 01:55:33 +0000 (02:55 +0100)]
b43: N-PHY: determine various PHY params

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: add table for antenna software control
Rafał Miłecki [Sun, 11 Dec 2011 01:55:32 +0000 (02:55 +0100)]
b43: N-PHY: add table for antenna software control

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: workaround BCM43224 hw bug in writing table id 9
Rafał Miłecki [Sun, 11 Dec 2011 01:55:31 +0000 (02:55 +0100)]
b43: N-PHY: workaround BCM43224 hw bug in writing table id 9

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: update some init values
Rafał Miłecki [Sun, 11 Dec 2011 01:55:30 +0000 (02:55 +0100)]
b43: N-PHY: update some init values

Changes were obtained from MMIO dump from 5.100.82.112.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: random trivial fixes for typos, missing writes
Rafał Miłecki [Sun, 11 Dec 2011 01:55:29 +0000 (02:55 +0100)]
b43: N-PHY: random trivial fixes for typos, missing writes

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: make two mci related functions static
Felix Fietkau [Sat, 10 Dec 2011 21:11:19 +0000 (22:11 +0100)]
ath9k: make two mci related functions static

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: support for suspend and resume
Rafał Miłecki [Fri, 9 Dec 2011 21:16:07 +0000 (22:16 +0100)]
bcma: support for suspend and resume

bcma used to lock up machine without enabling PCI or initializing CC.

Cc: stable@vger.kernel.org
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: wakeup and stop multiple tx queues in net_device
Avinash Patil [Fri, 9 Dec 2011 04:41:05 +0000 (20:41 -0800)]
mwifiex: wakeup and stop multiple tx queues in net_device

replace single queue function calls with equivalent multiple queue
functions. Wakeup queue and stop queue calls are guarded by spin lock.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: proper cleanup when RX multiport aggregation fails
Avinash Patil [Fri, 9 Dec 2011 04:41:04 +0000 (20:41 -0800)]
mwifiex: proper cleanup when RX multiport aggregation fails

Free SKBs allocated during multiport aggrgation setup when RX
multiport aggregation fails in the middle. With this handling
freeing SKB in mwifiex_process_int_status() for failure case
is removed.

Also handles single RX transaction failure.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: failure case handling for PCIe events
Amitkumar Karwar [Fri, 9 Dec 2011 04:41:03 +0000 (20:41 -0800)]
mwifiex: failure case handling for PCIe events

Event buffers for PCIe interface are allocated during driver
initialisation, and respective physical addresses are sent to FW
in *_PCIE_DESC_DETAILS command so that FW can do DMA. These buffers
will be freed while unloading the driver. Therefore we should not
free them in event handling error path. Also we should skip next
pending events in failure case.

Also fixed 'returning -1 instead of -ENOMEM is sloppy' warnings.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use bcma core access functions in nicpci.c
Arend van Spriel [Thu, 8 Dec 2011 23:06:59 +0000 (15:06 -0800)]
brcm80211: smac: use bcma core access functions in nicpci.c

Code in nicpci.c now uses the PCI(E) core as provided by the BCMA
bus driver to configure that core.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use bcma core control functions
Arend van Spriel [Thu, 8 Dec 2011 23:06:58 +0000 (15:06 -0800)]
brcm80211: smac: use bcma core control functions

BCMA provides functions to control the state of the cores so
using that and remove similar implementation from the driver.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove unused functions and/or prototypes
Arend van Spriel [Thu, 8 Dec 2011 23:06:57 +0000 (15:06 -0800)]
brcm80211: smac: remove unused functions and/or prototypes

Several functions provided by aiutils.c are not used in brcmsmac
driver and have been removed.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: replace ai_corereg() function with ai_cc_reg()
Arend van Spriel [Thu, 8 Dec 2011 23:06:56 +0000 (15:06 -0800)]
brcm80211: smac: replace ai_corereg() function with ai_cc_reg()

The ai_corereg() function is only used in the driver to safely
access the chipcommon core. The function has been renamed to
ai_cc_reg() removing the need to provide a core index parameter.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove SI_FAST() macro usage
Arend van Spriel [Thu, 8 Dec 2011 23:06:55 +0000 (15:06 -0800)]
brcm80211: smac: remove SI_FAST() macro usage

The use of SI_FAST() macro interferes with the BCMA integration as
it causes BCMA and aiutils.c to get out of sync on what the current
core is. When everything is using BCMA we will try to add SI_FAST
functionality to BCMA to avoid unnecessary core switching.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use bcma functions for register access in phy code
Arend van Spriel [Thu, 8 Dec 2011 23:06:54 +0000 (15:06 -0800)]
brcm80211: smac: use bcma functions for register access in phy code

This adds the use of bcma functions to access the registers within
the phy source code.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use bcma function for register access in dma.c
Arend van Spriel [Thu, 8 Dec 2011 23:06:53 +0000 (15:06 -0800)]
brcm80211: smac: use bcma function for register access in dma.c

The dma.c source file now uses the register access functions
provided by bcma.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use DMA-API calls for descriptor allocations
Arend van Spriel [Thu, 8 Dec 2011 23:06:52 +0000 (15:06 -0800)]
brcm80211: smac: use DMA-API calls for descriptor allocations

Using BCMA hides the specifics about the host interface. The
driver is now using the DMA-API to do dma related calls. BCMA
provides the device object to use in the DMA-API calls.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use bcma core register access functions for 802.11 core
Arend van Spriel [Thu, 8 Dec 2011 23:06:51 +0000 (15:06 -0800)]
brcm80211: smac: use bcma core register access functions for 802.11 core

The driver now uses the bcma register access functions to read and
write the registers on the 802.11 core. The dma and phy code need
to be modified next and access to the other cores. That will be done
in coming patches.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove enumeration rom parsing function
Arend van Spriel [Thu, 8 Dec 2011 23:06:50 +0000 (15:06 -0800)]
brcm80211: smac: remove enumeration rom parsing function

The core enumeration rom is already parsed by the bcma bus driver and
there is no need to repeat the exercise. The ai_scan() function still
exists but is targetted for removal as well.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: change ai_attach interface taking a bcma_bus object
Arend van Spriel [Thu, 8 Dec 2011 23:06:49 +0000 (15:06 -0800)]
brcm80211: smac: change ai_attach interface taking a bcma_bus object

The ai_attach now takes a bcma_bus object as its parameter to
obtain all required information needed for chip control.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: rename struct si_info field pbus to pcibus
Arend van Spriel [Thu, 8 Dec 2011 23:06:48 +0000 (15:06 -0800)]
brcm80211: smac: rename struct si_info field pbus to pcibus

When moving to bcma usage there are two busses in play. The pci bus
connecting the device to the host and the bcma bus connecting the
cores in the device. To distinguish this the attribute pbus has been
renamed to a more explicit name, ie. pcibus.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: change attach interfaces in main.c for bcma support
Arend van Spriel [Thu, 8 Dec 2011 23:06:47 +0000 (15:06 -0800)]
brcm80211: smac: change attach interfaces in main.c for bcma support

The driver is probed through bcma which provides a device representing
the core. This device is now passed in brcms_c_attach and brcms_b_attach
functions.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: change from pci device driver to bcma device driver
Arend van Spriel [Thu, 8 Dec 2011 23:06:46 +0000 (15:06 -0800)]
brcm80211: smac: change from pci device driver to bcma device driver

A new bus driver called "bcma" has been introduced into the kernel tree
which considers the Broadcom AMBA chip interconnect as a bus. Each core in
the chip is a bcma device. This commit changes brcms_mac80211.c into
a bcma device driver.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: use inline access functions for struct si_pub fields
Arend van Spriel [Thu, 8 Dec 2011 23:06:45 +0000 (15:06 -0800)]
brcm80211: smac: use inline access functions for struct si_pub fields

Instead of directly accessing the fields in struct si_pub the driver
now uses inline access functions. This is in preparation of the bcma
integration as a lot of information will be provided by bcma module.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: move fields from struct si_pub to struct si_info
Arend van Spriel [Thu, 8 Dec 2011 23:06:44 +0000 (15:06 -0800)]
brcm80211: smac: move fields from struct si_pub to struct si_info

The structure si_pub contained couple of fields that were only
used internally in aiutils.c. These have been moved to the
si_info structure.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove unused fields from struct si_pub definition
Arend van Spriel [Thu, 8 Dec 2011 23:06:43 +0000 (15:06 -0800)]
brcm80211: smac: remove unused fields from struct si_pub definition

Several fields from the si_pub structure were not used or only set
once but never checked. These fields have been removed.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: use static keyword for inline function declaration in bcma.h
Arend van Spriel [Thu, 8 Dec 2011 23:06:42 +0000 (15:06 -0800)]
bcma: use static keyword for inline function declaration in bcma.h

Just scratching an itch here, but it makes more sense to use the
static keyword if you think about how the compiler treats inline
functions.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: add set/mask macros for 16-bit register access
Arend van Spriel [Thu, 8 Dec 2011 23:06:41 +0000 (15:06 -0800)]
bcma: add set/mask macros for 16-bit register access

The BCMA header only had definitions for 32-bit register access. Used
those as a template for the 16-bit flavour. Also changed them to inline
functions to be on the safe side. As offset parameter is used twice there
would be a problem when used like this: bcma_set32(core, offset++, val);

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: remove drive strength code for unsupported chips
Franky Lin [Thu, 8 Dec 2011 23:06:40 +0000 (15:06 -0800)]
brcm80211: fmac: remove drive strength code for unsupported chips

bcm4325 and bcm4336 are not supported by brcmfmac. Remove the
drive strength setting code specific for these chips.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: add bcm4330 support
Franky Lin [Thu, 8 Dec 2011 23:06:39 +0000 (15:06 -0800)]
brcm80211: fmac: add bcm4330 support

This patch adds support for bcm4330 chip which has a SDIO device
id 0x4330. All basic functionalities of bcm4330 are supported by
brcmfmac after this patch.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: fix firmware shared structures version
Franky Lin [Thu, 8 Dec 2011 23:06:38 +0000 (15:06 -0800)]
brcm80211: fmac: fix firmware shared structures version

Some shared structures in fullmac have a wrong combination of
version number and declarations. This patch fixes it by upgrading
them to the latest version. This allows brcmfmac to support new
firmwares with new features.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: save bus interface structure in function 2 device
Franky Lin [Thu, 8 Dec 2011 23:06:37 +0000 (15:06 -0800)]
brcm80211: fmac: save bus interface structure in function 2 device

bus interface was stored in sdio card device. The device pointer
is used as parameter of interface functions between common layer
and bus layer to make the function declaration generic for different
bus type. But the card device is a parent device layer for SDIO
function devices. It doesn't contain all contexts needed by udev.
This patch moves the shared structure to private driver data pointer
of SDIO function 2 device which is more appopriate for net device
and cfg80211 registration.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: notify core hints that helps to restore regd settings
Rajkumar Manoharan [Thu, 8 Dec 2011 18:29:26 +0000 (23:59 +0530)]
cfg80211: notify core hints that helps to restore regd settings

Regulatory updates set by CORE are ignored for custom regulatory cards.
Let us notify the changes to the driver, as some drivers uses core hint
to restore its orig_* reg domain setting.

Cc: Paul Stewart <pstew@google.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Reconfigure tx power on regulatory update
Rajkumar Manoharan [Thu, 8 Dec 2011 18:29:25 +0000 (23:59 +0530)]
ath9k: Reconfigure tx power on regulatory update

Whenever the regulatory got updated by country IE for the world
roaming cards, need to reconfigure the tx power immediately to
increase the power level.

Reviewed-by: Sam Leffler <sleffler@google.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath: optimize processing of CTLs for country IEs for world roaming cards
Luis R. Rodriguez [Thu, 8 Dec 2011 18:29:24 +0000 (23:59 +0530)]
ath: optimize processing of CTLs for country IEs for world roaming cards

When we receive a country IE hint and we have a world roaming card
we can optimize output power further by ensuring that we use the
calibrated data for the country by using that country's own CTL data.
That is -- when world roaming and when we process a country IE we
no longer need to use the lowest output power of all CTLs instead
we use an optimized CTL output power for that specific country.

We accomplish this by copying the regulatory data prior on init
and restoring it when cfg80211 tells us it gets a core hint. Core
hints are only sent on init and when it wants to restore reguulatory
settings. We take advantage of this fact and apply the cached
regulatory data when we get a core hint. When we get a country IE
hint though we process the regulatory data as if programmed for
a specific country.

Tested-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath: add a helper for processing reg data on init
Luis R. Rodriguez [Thu, 8 Dec 2011 18:29:23 +0000 (23:59 +0530)]
ath: add a helper for processing reg data on init

This has no functional change. The helper can be used later
for other things like country IE changes and following the CTL
for different countries.

Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: extract FEM info from SPROM
Rafał Miłecki [Thu, 8 Dec 2011 17:02:22 +0000 (18:02 +0100)]
bcma: extract FEM info from SPROM

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agossb: extract FEM info from SPROM
Rafał Miłecki [Thu, 8 Dec 2011 17:02:21 +0000 (18:02 +0100)]
ssb: extract FEM info from SPROM

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Make use of ieee80211_is_* functions in tx status path
Helmut Schaa [Thu, 8 Dec 2011 12:11:55 +0000 (13:11 +0100)]
mac80211: Make use of ieee80211_is_* functions in tx status path

Use ieee80211_is_data, ieee80211_is_mgmt and ieee80211_is_first_frag
in the tx status path. This makes the code easier to read and allows us
to remove two local variables: frag and type.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoieee80211: Introduce ieee80211_is_first_frag
Helmut Schaa [Thu, 8 Dec 2011 12:11:54 +0000 (13:11 +0100)]
ieee80211: Introduce ieee80211_is_first_frag

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Purge A-MPDU TX queues before station destructions
Yogesh Ashok Powar [Thu, 8 Dec 2011 09:26:15 +0000 (14:56 +0530)]
mac80211: Purge A-MPDU TX queues before station destructions

When a station leaves suddenly while ampdu traffic to that station is still
running, there is a possibility that the ampdu pending queues are not freed due
to a race condition leading to memory leaks. In '__sta_info_destroy' when we
attempt to destroy the ampdu sessions in 'ieee80211_sta_tear_down_BA_sessions',
the driver calls 'ieee80211_stop_tx_ba_cb_irqsafe' to delete the ampdu
structures (tid_tx) and splice the pending queues and this job gets queued in
sdata workqueue. However, the sta entry can get destroyed before the above work
gets scheduled and hence the race.

Purging the queues and freeing the tid_tx to avoid the leak. The better solution
would be to fix the race, but that can be taken up in a separate patch.

Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: Fix race in bss timeout
Vasanthakumar Thiagarajan [Thu, 8 Dec 2011 08:58:47 +0000 (14:28 +0530)]
cfg80211: Fix race in bss timeout

It is quite possible to run into a race in bss timeout where
the drivers see the bss entry just before notifying cfg80211
of a roaming event but it got timed out by the time rdev->event_work
got scehduled from cfg80211_wq. This would result in the following
WARN-ON() along with the failure to notify the user space of
the roaming. The other situation which is happening with ath6kl
that runs into issue is when the driver reports roam to same AP
event where the AP bss entry already got expired. To fix this,
move cfg80211_get_bss() from __cfg80211_roamed() to cfg80211_roamed().

[158645.538384] WARNING: at net/wireless/sme.c:586
__cfg80211_roamed+0xc2/0x1b1()
[158645.538810] Call Trace:
[158645.538838]  [<c1033527>] warn_slowpath_common+0x65/0x7a
[158645.538917]  [<c14cfacf>] ? __cfg80211_roamed+0xc2/0x1b1
[158645.538946]  [<c103354b>] warn_slowpath_null+0xf/0x13
[158645.539055]  [<c14cfacf>] __cfg80211_roamed+0xc2/0x1b1
[158645.539086]  [<c14beb5b>] cfg80211_process_rdev_events+0x153/0x1cc
[158645.539166]  [<c14bd57b>] cfg80211_event_work+0x26/0x36
[158645.539195]  [<c10482ae>] process_one_work+0x219/0x38b
[158645.539273]  [<c14bd555>] ? wiphy_new+0x419/0x419
[158645.539301]  [<c10486cb>] worker_thread+0xf6/0x1bf
[158645.539379]  [<c10485d5>] ? rescuer_thread+0x1b5/0x1b5
[158645.539407]  [<c104b3e2>] kthread+0x62/0x67
[158645.539484]  [<c104b380>] ? __init_kthread_worker+0x42/0x42
[158645.539514]  [<c151309a>] kernel_thread_helper+0x6/0xd

Reported-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: unlock on error path in ieee80211_ibss_join()
Dan Carpenter [Thu, 8 Dec 2011 06:49:03 +0000 (09:49 +0300)]
mac80211: unlock on error path in ieee80211_ibss_join()

We recently introduced a new return here but it needs an unlock first.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix handling of MCI interrupt
Mohammed Shafi Shajakhan [Thu, 8 Dec 2011 06:29:03 +0000 (11:59 +0530)]
ath9k_hw: Fix handling of MCI interrupt

in my previous patches of handling MCI interrupt I overlooked
the case of interrupt status/mask variable being zeroed out in
the below code, so ath_isr does not cache the MCI interrupt
in the intrstatus. finally MCI interrupt handling won't be
handled in ath9k_tasklet for the scheduled interrupts.
Fix this by moving the MCI interrupt code in the appropriate
position in ar9003_hw_get_isr

Cc: Wilson Tsao <wtsao@qca.qualcomm.com>
Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: check for asynchronous interrupts before bailing out
Mohammed Shafi Shajakhan [Thu, 8 Dec 2011 06:29:02 +0000 (11:59 +0530)]
ath9k_hw: check for asynchronous interrupts before bailing out

in ar9003_hw_get_isr we bail out if we don't have any primary
interrupts and synchronous interrupts, also make sure we don't
have any asynchronous interrupts

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMerge branch 'wireless-next' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
John W. Linville [Tue, 13 Dec 2011 20:08:02 +0000 (15:08 -0500)]
Merge branch 'wireless-next' of git://git./linux/kernel/git/iwlwifi/iwlwifi

13 years agoiwlwifi regression in 20111205 merge
Nikolay Martynov [Fri, 9 Dec 2011 02:43:39 +0000 (21:43 -0500)]
iwlwifi regression in 20111205 merge

  It looks like the regression was introduced between 20111202 and
20111205 (linux-next tree). Symptoms: connection to AP seem to be
established, but no data goes though it in any way. Tested on intel
5300.
  Peek at the changes have shown that it looks like at least part of
the code wasn't merged properly. It was originally committed into
iwl_agn.c but code in question was moved to iwl-mac80211.c.
  This patch puts code in place and my card works again.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowl12xx: silence tx_attr uninitialized warning in wl1271_tx_fill_hdr
John W. Linville [Thu, 8 Dec 2011 21:15:58 +0000 (16:15 -0500)]
wl12xx: silence tx_attr uninitialized warning in wl1271_tx_fill_hdr

  CC [M]  drivers/net/wireless/wl12xx/tx.o
drivers/net/wireless/wl12xx/tx.c: In function ‘wl1271_tx_fill_hdr’:
drivers/net/wireless/wl12xx/tx.c:288:6: warning: ‘tx_attr’ may be used uninitialized in this function

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: use IWL_MAX_TID_COUNT instead of TID_MAX_LOAD_COUNT
Johannes Berg [Fri, 2 Dec 2011 20:25:12 +0000 (12:25 -0800)]
iwlagn: use IWL_MAX_TID_COUNT instead of TID_MAX_LOAD_COUNT

We track the load only on 8 TIDs, previously this
was TID_MAX_LOAD_COUNT. Since IWL_MAX_TID_COUNT
is now 8 as well, use that to make the code more
easily understandable.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: use IWL_MAX_TID_COUNT for WoWLAN
Johannes Berg [Fri, 2 Dec 2011 20:24:45 +0000 (12:24 -0800)]
iwlagn: use IWL_MAX_TID_COUNT for WoWLAN

Now that I corrected IWL_MAX_TID_COUNT to be 8
instead of 9, we can use it in WoWLAN suspend.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: fix TID use bug
Johannes Berg [Fri, 2 Dec 2011 20:22:54 +0000 (12:22 -0800)]
iwlagn: fix TID use bug

The driver everywhere uses max TID count as 9,
which is wrong, it should be 8.

I think the reason it uses 9 here is off-by-one
confusion by whoever wrote this. We do use the
value IWL_MAX_TID_COUNT for "not QoS/no TID"
but that is completely correct even if it is 8
and not 9 since 0-7 are only valid.

As a side effect, this fixes the following bug:

 Open BA session requested for 00:23:cd:16:8a:7e tid 8
 ------------[ cut here ]------------
 kernel BUG at drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h:350!
 ...

when you do
echo "tx start 8" > /sys/kernel/debug/ieee80211/*/*/*/*/agg_status

Cc: stable@vger.kernel.org
Reported-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: move calib_results list from iwl_priv to iwl_trans
Don Fry [Thu, 1 Dec 2011 00:58:39 +0000 (16:58 -0800)]
iwlwifi: move calib_results list from iwl_priv to iwl_trans

Move the calib_results list from the upper layer iwl_priv structure
to the lower layer iwl_trans structure.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: move device_pointers from iwl_priv to iwl_shared
Don Fry [Thu, 1 Dec 2011 00:12:59 +0000 (16:12 -0800)]
iwlwifi: move device_pointers from iwl_priv to iwl_shared

Move the low level ucode device_pointers structure to iwl_shared.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: move eeprom pointer from iwl_priv to iwl_shared
Don Fry [Wed, 30 Nov 2011 23:37:32 +0000 (15:37 -0800)]
iwlwifi: move eeprom pointer from iwl_priv to iwl_shared

The eeprom image is a device level component, move from iwl_priv
to iwl_shared, with associated code changes.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: set TX_CMD_FLG_STA_RATE_MSK for BAR frame
Wey-Yi Guy [Fri, 2 Dec 2011 16:09:10 +0000 (08:09 -0800)]
iwlwifi: set TX_CMD_FLG_STA_RATE_MSK for BAR frame

It is needed by firmware to use the correct rate for BAR frame transmission

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: P2P is not enabled by default
Wey-Yi Guy [Fri, 2 Dec 2011 15:33:57 +0000 (07:33 -0800)]
iwlwifi: P2P is not enabled by default

P2P still under development. it will not enabled by default, but user
always can enable it manually for testing.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: add device ID information support by testmode
Hsu, Kenny [Thu, 1 Dec 2011 09:12:50 +0000 (01:12 -0800)]
iwlwifi: add device ID information support by testmode

Create new tm command to report devce ID information to userspace
- IWL_TM_CMD_APP2DEV_GET_DEVICE_ID

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: rename CONFIG_IWLWIFI_DEVICE_SVTOOL to CONFIG_IWLWIFI_DEVICE_TESTMODE
Wey-Yi Guy [Wed, 30 Nov 2011 21:24:06 +0000 (13:24 -0800)]
iwlwifi: rename CONFIG_IWLWIFI_DEVICE_SVTOOL to CONFIG_IWLWIFI_DEVICE_TESTMODE

Change the name to match the works

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: remove reference to legacy devices
Wey-Yi Guy [Wed, 30 Nov 2011 08:14:53 +0000 (00:14 -0800)]
iwlwifi: remove reference to legacy devices

After driver split, no need to reference to legacy devices, remove comments

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: minor cleanup
Wey-Yi Guy [Wed, 30 Nov 2011 17:41:22 +0000 (09:41 -0800)]
iwlwifi: minor cleanup

Remove the defines only used by legacy devices

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: Display more uCode debug info
Wey-Yi Guy [Wed, 30 Nov 2011 20:32:42 +0000 (12:32 -0800)]
iwlwifi: Display more uCode debug info

When uCode encounter problem, it pass a lot of debug data to help debugging
the issue. We only show partial data before, why not display all of those.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: hide kernel option IWLWIFI_DEVICE_SVTOOL
Hsu, Kenny [Tue, 29 Nov 2011 00:54:52 +0000 (16:54 -0800)]
iwlwifi: hide kernel option IWLWIFI_DEVICE_SVTOOL

Because the testmode support should be the mandatory foundation
of test functionality, it is better to set kernel option
IWLWIFI_DEVICE_SVTOOL automatically instead of user configuration.

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: add uCode version information support by testmode
Hsu, Kenny [Mon, 28 Nov 2011 08:55:38 +0000 (00:55 -0800)]
iwlwifi: add uCode version information support by testmode

Create new tm command to report uCode version to userspace
- IWL_TM_CMD_APP2DEV_GET_FW_VERSION

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
Wey-Yi Guy [Thu, 8 Dec 2011 23:00:27 +0000 (15:00 -0800)]
Merge branch 'master' of git://git./linux/kernel/git/linville/wireless-next into wireless-next

13 years agoMerge branch 'wl12xx-next' into for-linville
Luciano Coelho [Thu, 8 Dec 2011 11:08:10 +0000 (13:08 +0200)]
Merge branch 'wl12xx-next' into for-linville

13 years agowl12xx: minor fix in sched_scan_ssid_list
Eyal Shapira [Wed, 7 Dec 2011 10:37:04 +0000 (12:37 +0200)]
wl12xx: minor fix in sched_scan_ssid_list

The user can pass broadcast SSID (ssid="") in the list of SSIDs for active scan.
In this case the loop was attempting to match SSIDs in the filter
list to this empty entry and marking them as HIDDEN (sending probe
request) by mistake

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
13 years agowl12xx: send testmode reply in wl1271_tm_cmd_interrogate
Eliad Peller [Tue, 6 Dec 2011 10:15:07 +0000 (12:15 +0200)]
wl12xx: send testmode reply in wl1271_tm_cmd_interrogate

wl1271_tm_cmd_interrogate creates a reply skb, but doesn't
send it (and thus just leaks it).
Add the missing cfg80211_testmode_reply() call.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
13 years agowl12xx: remove redundant commands from plt init
Eliad Peller [Tue, 6 Dec 2011 10:15:06 +0000 (12:15 +0200)]
wl12xx: remove redundant commands from plt init

During plt init we configure some redundant commands,
which are not needed for plt (specifically, we shouldn't
configure any role-specific params, as there are no
active roles). remove them.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
13 years agowl12xx: fix testmode test/interrogate commands
Eliad Peller [Tue, 6 Dec 2011 10:15:05 +0000 (12:15 +0200)]
wl12xx: fix testmode test/interrogate commands

fix several issues in testmode test/interrogate commands:
1. check the driver state is not OFF.
2. wakeup the chip from elp (if needed)
3. fix memory leak in wl1271_tm_cmd_interrogate()

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
13 years agowireless: disable wext sysfs by default
Johannes Berg [Tue, 6 Dec 2011 19:45:37 +0000 (20:45 +0100)]
wireless: disable wext sysfs by default

This code has been on the list to remove for a long
time, so disable it by default, add a warning to its
Kconfig, and schedule it for removal in 3.5.

The only known dependency, hal, has not required it
since its 0.5.12 release, which was in early 2009
and hal has since been deprecated completely.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: enable ANI for ar9100 chips
Nikolay Martynov [Wed, 7 Dec 2011 02:57:17 +0000 (21:57 -0500)]
ath9k: enable ANI for ar9100 chips

  Enable ANI for ar9100 since it seems to be working fine (and as a
matter of fact ANI was always performed for ar9100 since code which
was supposed to disable it didn't achieve this goal).
  This patch sets config.enable_ani to default (true) value for
ar9100.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: use config.enable_ani to check if ani should be performed
Nikolay Martynov [Sat, 3 Dec 2011 03:39:16 +0000 (22:39 -0500)]
ath9k: use config.enable_ani to check if ani should be performed

  Currently in ath9k code there is an attempt which is meant to
disable ANI for ar9100 and ar9340. But it doesn't really achieve
this. All it does is disable ANI init and setup (i.e. calls to
ath9k_hw_ani_setup and ath9k_hw_ani_init). Since ath9k_hw_ani_setup is
not called ah->config.ani_poll_interval is never initialized (i.e. it
is always zero) and ath_ani_calibrate always executes ANI procedures
(over uninitialized ANI parameters).
  Moreover, ath_ani_calibrate is being called each 1ms because
common->ani.timer is set to zero interval because
ah->config.ani_poll_interval==0 (and thus smallest value of all
intervals). Normally it should not be called this often.
  This patch changes the code so config.enable_ani is used to check if
ANI should be performed.
  config.enable_ani is initialized to true by default. This patch sets
it to false for ar9100 and ar9340.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: change calibration debug log to output all calibration types
Nikolay Martynov [Sat, 3 Dec 2011 03:39:15 +0000 (22:39 -0500)]
ath9k: change calibration debug log to output all calibration types

  To help debugging write a log entry when long calibration, short
calibration or ANI is performed.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: trivial: cosmetic fix in calibration debug log
Nikolay Martynov [Sat, 3 Dec 2011 03:39:14 +0000 (22:39 -0500)]
ath9k: trivial: cosmetic fix in calibration debug log

  Add missed space and change typo in calibration debugging log.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: cancel all workqueue activity when going idle
Felix Fietkau [Wed, 16 Nov 2011 12:08:43 +0000 (13:08 +0100)]
ath9k: cancel all workqueue activity when going idle

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: only drop packets in drv_flush when asked to
Felix Fietkau [Wed, 16 Nov 2011 12:08:42 +0000 (13:08 +0100)]
ath9k: only drop packets in drv_flush when asked to

Recently more places in mac80211 call drv_flush to ensure proper order
for state changes wrt. powersave, channel changes, etc. On some systems
such calls lead to spurious logspam about failing to stop tx dma, as well
as hardware resets that go along with that.
Instead of dropping packets in a place where it's completely unnecessary,
only do it when drop == true.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: rework power state handling
Felix Fietkau [Wed, 16 Nov 2011 12:08:41 +0000 (13:08 +0100)]
ath9k: rework power state handling

Turning off the radio when mac80211 tells the driver that it's idle is not
a good idea, as idle interfaces might still occasionally scan or send packets.
The only time the radio can be safely turned off is when drv_stop has been
called. In the mean time, use sc->ps_idle only to indicate network sleep vs
full sleep.
Move the LED GPIO changes out of the PCI suspend/resume path, the start/stop
functions already take care of that.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: always issue a full hw reset after waking up from full-sleep mode
Felix Fietkau [Wed, 16 Nov 2011 12:08:40 +0000 (13:08 +0100)]
ath9k: always issue a full hw reset after waking up from full-sleep mode

After waking up from full sleep, registers are accessible, but rx/tx
typically fails. A fast channel change will not recover from this, so
ensure that a full-sleep -> wake transition is always followed by a full
reset.

The reason why this hasn't created any serious problems yet is that it's
hidden by the (wrong) behavior of enabling/disabling the radio when the
wiphy idle state changes.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Remove WARN_ON in apply-ht-override logic.
Ben Greear [Mon, 5 Dec 2011 19:15:55 +0000 (11:15 -0800)]
mac80211: Remove WARN_ON in apply-ht-override logic.

AP interfaces routinely call this logic, so just silently
return when this happens instead of splatting the kernel
logs.

Reported-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: pci: use fixed windows when possible
Rafał Miłecki [Mon, 5 Dec 2011 18:13:39 +0000 (19:13 +0100)]
bcma: pci: use fixed windows when possible

Some cores are mapped in the fixed way, they registers can be accessed
all the time.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: accept public action frames with mismatched BSSID
Johannes Berg [Tue, 6 Dec 2011 09:39:40 +0000 (10:39 +0100)]
mac80211: accept public action frames with mismatched BSSID

Arik's patch "mac80211: allow action frames with unknown
BSSID in GO mode" allowed any action frames in P2P mode
to go through, but only to cooked monitor interfaces as
the IEEE80211_RX_RA_MATCH was still cleared. As a result
my no-monitor patches broke invitation responses.

Instead of allowing any action frames in P2P GO mode to
go through with a wrong BSSID like that patch did, allow
all public action frames. They will never be processed
by mac80211, but can be reported via nl80211 then.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix retransmit
Johannes Berg [Fri, 2 Dec 2011 21:08:52 +0000 (22:08 +0100)]
mac80211: fix retransmit

This fixes another regression from my "pass all
fragments to driver at once" patches -- if the
packet is being retransmitted then we don't go
through all handlers, but we still need to move
it to the skbs list, otherwise we run into the
first warning in __ieee80211_tx() and leak the
skb.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: move ucode notification from iwl_priv to iwl_shared
Don Fry [Fri, 2 Dec 2011 16:48:40 +0000 (08:48 -0800)]
iwlwifi: move ucode notification from iwl_priv to iwl_shared

Move the notification structures for ucode operations from the
iwl_priv structure to the iwl_shared structure, with associated
code changes.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: move ucode_type from iwl_priv to iwl_shared
Don Fry [Fri, 2 Dec 2011 16:48:39 +0000 (08:48 -0800)]
iwlwifi: move ucode_type from iwl_priv to iwl_shared

Move the ucode_type variable from the iwl_priv to the iwl_shared
structure with associated code changes.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: replace iwl_priv reference with iwl_trans for ucode.
Don Fry [Fri, 2 Dec 2011 16:48:38 +0000 (08:48 -0800)]
iwlwifi: replace iwl_priv reference with iwl_trans for ucode.

Replace the references to the iwl_priv structure with the iwl_trans
structure as the priv structure is never referenced other than to
access the trans structure.  Rename from iwlagn to iwl.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: rename iwl-agn-ucode as iwl-ucode
Don Fry [Fri, 2 Dec 2011 16:48:37 +0000 (08:48 -0800)]
iwlwifi: rename iwl-agn-ucode as iwl-ucode

iwl-agn-ucode is generic ucode operations, not limited just to iwlagn.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: Rename file name from iwl-sv-open.c to iwl-testmode.c
Wey-Yi Guy [Fri, 2 Dec 2011 16:48:36 +0000 (08:48 -0800)]
iwlwifi: Rename file name from iwl-sv-open.c to iwl-testmode.c

The file dealing with all the operations through testmode, rename it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: add WOWLAN uCode loading support by testmode
Hsu, Kenny [Fri, 2 Dec 2011 16:48:35 +0000 (08:48 -0800)]
iwlwifi: add WOWLAN uCode loading support by testmode

Create new tm command for WOWLAN uCode loading to support
further debugging function in userspace.

- IWL_TM_CMD_APP2DEV_LOAD_WOWLAN_FW

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: make debug levels more readable
Johannes Berg [Fri, 2 Dec 2011 16:48:34 +0000 (08:48 -0800)]
iwlagn: make debug levels more readable

Using the actual shifted constants here allows
one to read and or them more easily.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: remove MACDUMP debug
Johannes Berg [Fri, 2 Dec 2011 16:48:33 +0000 (08:48 -0800)]
iwlagn: remove MACDUMP debug

This is only used for TX debugging where there
already is more debugging and tracing is more
useful anyway, so remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: remove HC_DUMP debug
Johannes Berg [Fri, 2 Dec 2011 16:48:32 +0000 (08:48 -0800)]
iwlagn: remove HC_DUMP debug

This debug level is unused, remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: remove TX_REPLY_LIMIT debug
Johannes Berg [Fri, 2 Dec 2011 16:48:31 +0000 (08:48 -0800)]
iwlagn: remove TX_REPLY_LIMIT debug

This macro is unused right now.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: declare static for iwl_sram_cleanup function
Wey-Yi Guy [Fri, 2 Dec 2011 16:48:29 +0000 (08:48 -0800)]
iwlwifi: declare static for iwl_sram_cleanup function

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: add generic chunk size of tm dumpit packet
Hsu, Kenny [Fri, 2 Dec 2011 16:48:28 +0000 (08:48 -0800)]
iwlwifi: add generic chunk size of tm dumpit packet

Use generic chunk size of dumpit packet for
all necessary testmode commands instead of
add declaration individually.

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: add range checking in tm sram read command
Kenny Hsu [Fri, 2 Dec 2011 16:48:27 +0000 (08:48 -0800)]
iwlwifi: add range checking in tm sram read command

The size of sram may alter according to ucode type.
Retrieve the maximum sram size by current ucode
type for range checking to prevent wrong data access.

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: add tm commands for sram reading by dumpit
Hsu, Kenny [Fri, 2 Dec 2011 16:48:26 +0000 (08:48 -0800)]
iwlwifi: add tm commands for sram reading by dumpit

Create new testmode commands and attributes to suppot
sram data reading. Because the amount of sram data
may exceed single skb packet size. Using the nl80211
dump it funtion to deliver sram data to userspace.

- IWL_TM_CMD_APP2DEV_READ_SRAM
- IWL_TM_CMD_APP2DEV_DUMP_SRAM
- IWL_TM_ATTR_SRAM_ADDR
- IWL_TM_ATTR_SRAM_SIZE
- IWL_TM_ATTR_SRAM_DUMP

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>