OSDN Git Service

android-x86/kernel.git
13 years agob43: HT-PHY: init: copy tables and reset CCA
Rafał Miłecki [Fri, 12 Aug 2011 11:13:46 +0000 (13:13 +0200)]
b43: HT-PHY: init: copy tables and reset CCA

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: init: implement few simple PHY writes
Rafał Miłecki [Fri, 12 Aug 2011 11:13:45 +0000 (13:13 +0200)]
b43: HT-PHY: init: implement few simple PHY writes

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: init: zero EXTG registers
Rafał Miłecki [Fri, 12 Aug 2011 11:13:44 +0000 (13:13 +0200)]
b43: HT-PHY: init: zero EXTG registers

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwl8k: Traffic to clients gets affected when one client leaves a cyrpto bss
Nishant Sarmukadam [Fri, 12 Aug 2011 06:50:21 +0000 (12:20 +0530)]
mwl8k: Traffic to clients gets affected when one client leaves a cyrpto bss

When a client disassociates from a crypto enabled bss, data traffic to
other clients connected to the bss is stalled. This was due to a boolean
variable used to keep track if HW crypto is enabled i.e. if set key has
been called to add a key.  This flag was being reset every time delete
key was called e.g when a station leaves the bss. Once the flag is
reset, rx status flags were not being set for connected clients which
disrupts traffic to these clients. Fix this issue by not resetting the
flag since we do not need to reset this flag during the life time of the
bss.

Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: update mesh path selection frame format
Thomas Pedersen [Fri, 12 Aug 2011 02:35:15 +0000 (19:35 -0700)]
mac80211: update mesh path selection frame format

Make mesh path selection frames Mesh Action category, remove outdated
Mesh Path Selection category and defines, use updated reason codes, add
mesh_action_is_path_sel for readability, and update/correct path
selection IEs.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoieee80211: add mesh action codes
Thomas Pedersen [Fri, 12 Aug 2011 02:35:14 +0000 (19:35 -0700)]
ieee80211: add mesh action codes

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: update mesh peering frame format
Thomas Pedersen [Sat, 13 Aug 2011 03:01:00 +0000 (20:01 -0700)]
mac80211: update mesh peering frame format

This patch updates the mesh peering frames to the format specified in
the recently ratified 802.11s standard. Several changes took place to
make this happen:

- Change RX path to handle new self-protected frames
- Add new Peering management IE
- Remove old Peer Link IE
- Remove old plink_action field in ieee80211_mgmt header

These changes by themselves would either break peering, or work by
coincidence, so squash them all into this patch.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: update mesh peering frame codes
Thomas Pedersen [Fri, 12 Aug 2011 02:35:12 +0000 (19:35 -0700)]
mac80211: update mesh peering frame codes

Have the mesh peering frames use the self-protected action and reason codes
specified in 802.11s and defined in ieee80211.h. Remove the local enums.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoieee80211: introduce Self Protected Action codes
Thomas Pedersen [Fri, 12 Aug 2011 02:35:11 +0000 (19:35 -0700)]
ieee80211: introduce Self Protected Action codes

802.11s introduces a new action frame category, add action codes as well
as an entry in ieee80211_mgmt.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix mesh beacon format
Thomas Pedersen [Fri, 12 Aug 2011 02:35:10 +0000 (19:35 -0700)]
mac80211: fix mesh beacon format

Correct ordering of IEs in the mesh beacon while removing unneeded IEs
from mesh peering frames. Set privacy bit in capability info if security
is enabled. Add utility functions to aid in construction
of IEs and reduce code duplication.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: make forcing clock common (HT-PHY also uses that)
Rafał Miłecki [Thu, 11 Aug 2011 22:03:26 +0000 (00:03 +0200)]
b43: make forcing clock common (HT-PHY also uses that)

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: include HT-PHY in some common code
Rafał Miłecki [Thu, 11 Aug 2011 22:03:25 +0000 (00:03 +0200)]
b43: include HT-PHY in some common code

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: implement BCM4331 workaround for external PA lines
Rafał Miłecki [Thu, 11 Aug 2011 21:46:44 +0000 (23:46 +0200)]
bcma: implement BCM4331 workaround for external PA lines

We need to disable ext. PA lines for reading SPROM. It's disabled by
default, but this patch allows using bcma after loading wl, which leaves
workaround enabled.

Cc: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: support new RX header, noticed to be used in 598.314+ fw
Rafał Miłecki [Thu, 11 Aug 2011 15:16:27 +0000 (17:16 +0200)]
b43: support new RX header, noticed to be used in 598.314+ fw

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: support new TX header, noticed to be used by 598.314+ fw
Rafał Miłecki [Thu, 11 Aug 2011 13:07:16 +0000 (15:07 +0200)]
b43: support new TX header, noticed to be used by 598.314+ fw

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: use enum for firmware header format
Rafał Miłecki [Thu, 11 Aug 2011 13:07:15 +0000 (15:07 +0200)]
b43: use enum for firmware header format

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: rename TX header formats
Rafał Miłecki [Thu, 11 Aug 2011 13:07:14 +0000 (15:07 +0200)]
b43: rename TX header formats

Replace "old" and "new" with number of the first firmware known to use
the given format.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Tear down BA session on BAR tx failure
Helmut Schaa [Thu, 11 Aug 2011 14:17:42 +0000 (16:17 +0200)]
mac80211: Tear down BA session on BAR tx failure

As described at [1] some STAs (i.e. Intel 5100 Windows) can end up
correctly BlockAcking incoming frames without delivering them to user
space if a AMPDU subframe got lost and we don't flush the receipients
reorder buffer with a BlockAckReq. This in turn results in stuck
connections.

According to 802.11n-2009 it is not necessary to send a BAR to flush
the recepients RX reorder buffer but we still do that to be polite.

However, assume the following frame exchange:

AP -> STA, AMPDU (failed)
AP -> STA, BAR (failed)

The client in question then ends up in the same situation and won't
deliver frames to userspace anymore since we weren't able to flush
its reorder buffer.

This is not a hypothetical situation but I was able to observe this
exact behavior during a stress test between a rt2800pci AP and a Intel
5100 Windows client.

In order to work around this issue just tear down the BA session as
soon as a BAR failed to be TX'ed.

[1] http://comments.gmane.org/gmane.linux.kernel.wireless.general/66867

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: Introduce defines for BAR TID_INFO & MULTI_TID fields
Helmut Schaa [Thu, 11 Aug 2011 14:17:41 +0000 (16:17 +0200)]
wireless: Introduce defines for BAR TID_INFO & MULTI_TID fields

While at it also fix the indention of the other IEEE80211_BAR_CTRL_ defines.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: reload phy and bss settings after core restarts
Felix Fietkau [Wed, 10 Aug 2011 19:50:30 +0000 (13:50 -0600)]
b43: reload phy and bss settings after core restarts

b43_op_config and b43_op_bss_info_changed apply many settings by directly
writing to hardware registers. These settings are lost as soon as the core
is restarted and the initvals are reloaded. This was discovered because
restarting hostapd led to the beacon interval getting set to ~33s (see
https://dev.openwrt.org/ticket/8033 for more information).

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: do btcoex ASPM disabling at initialization time
Stanislaw Gruszka [Fri, 5 Aug 2011 11:10:34 +0000 (13:10 +0200)]
ath9k: do btcoex ASPM disabling at initialization time

Disable ASPM in pci ->probe on upstream (device) and downstream
(PCIe port) component. According to e1000e driver authors this is
required. I did not find that requirement in PCIe spec, but it seems
to be logical for me.

This need to be fixed for CONFIG_PCIEASPM, that will be done later ...

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: merge common ->config_pci_powersave() checks
Stanislaw Gruszka [Fri, 5 Aug 2011 11:10:33 +0000 (13:10 +0200)]
ath9k: merge common ->config_pci_powersave() checks

Move common checks into wrapper function. Since ASPM can be only enabled
on PCIe devices ->is_pciexpress check is unneeded.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove ->config_pci_powersave() redundant argument
Stanislaw Gruszka [Fri, 5 Aug 2011 11:10:32 +0000 (13:10 +0200)]
ath9k: remove ->config_pci_powersave() redundant argument

We always call ->config_pci_powersave() with both restore and power_off
arguments equal to 0 or both equal to 1, so merge them into one
argument.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agostaging: remove ath6kl
Kalle Valo [Fri, 12 Aug 2011 18:45:44 +0000 (21:45 +0300)]
staging: remove ath6kl

ath6kl is now in drivers/net/wireless/ath so the staging driver
is not supported anymore and should be removed.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Greg KH <gregkh@suse.de>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: use cfg80211 dynamic scan table and cfg80211_get_bss API
Amitkumar Karwar [Thu, 11 Aug 2011 01:53:57 +0000 (18:53 -0700)]
mwifiex: use cfg80211 dynamic scan table and cfg80211_get_bss API

Instead of maintaining static scan table in driver, scan list is sent
to cfg80211 stack (after parsing each scan command response).
In assoc handler (for infra and ibss network) requested BSS information
is retrieved using cfg80211_get_bss() API.

With the changes above some redundant code are removed.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: avoid sending a-mpdu packets to sleeping stations
Felix Fietkau [Wed, 10 Aug 2011 21:23:35 +0000 (15:23 -0600)]
ath9k: avoid sending a-mpdu packets to sleeping stations

If the driver gets a tx status report for an A-MPDU sent to a station that
just went to sleep, that leaves a race condition where this tx status can
trigger another A-MPDU transmission.
To fix this, check if the station is sleeping before queueing the tid.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: Add extra IE configuration to AP mode setup
Jouni Malinen [Wed, 10 Aug 2011 20:55:56 +0000 (23:55 +0300)]
nl80211/cfg80211: Add extra IE configuration to AP mode setup

The NL80211_CMD_NEW_BEACON command is, in practice, requesting AP mode
operations to be started. Add new attributes to provide extra IEs
(e.g., WPS IE, P2P IE) for drivers that build Beacon, Probe Response,
and (Re)Association Response frames internally (likely in firmware).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: Add crypto settings into NEW_BEACON
Jouni Malinen [Wed, 10 Aug 2011 20:54:35 +0000 (23:54 +0300)]
nl80211/cfg80211: Add crypto settings into NEW_BEACON

This removes need from drivers to parse the beacon tail/head data
to figure out what crypto settings are to be used in AP mode in case
the Beacon and Probe Response frames are fully constructed in the
driver/firmware.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: Allow SSID to be specified in new beacon command
Jouni Malinen [Wed, 10 Aug 2011 20:53:31 +0000 (23:53 +0300)]
nl80211/cfg80211: Allow SSID to be specified in new beacon command

This makes it easier for drivers that generate Beacon and Probe Response
frames internally (in firmware most likely) in AP mode.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211/mac80211: move information element parsing logic to cfg80211
Yogesh Ashok Powar [Wed, 10 Aug 2011 01:02:26 +0000 (18:02 -0700)]
cfg80211/mac80211: move information element parsing logic to cfg80211

Moving the parsing logic for retrieving the information elements
stored in management frames, e.g. beacons or probe responses,
and making it available to other cfg80211 drivers.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
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 agoath9k: remove eeprom txgain override for minor version < 19
Marek Lindner [Wed, 3 Aug 2011 14:35:16 +0000 (16:35 +0200)]
ath9k: remove eeprom txgain override for minor version < 19

ath9k_hw_4k_get_eeprom() overrides the eeprom value for txgain if the
minor version is not 19 or above with a value of 0.
ar9002_hw_init_mode_gain_regs() relies on this information to
determine whether this is a high power wifi card or not. The override
caused the driver to always use the 'normal' power tables even for
high power devices if their minor version was not high enough. Thus
leading to reduced power output.

This isn't needed for the AR9285; the check originated with the
AR9280 setup code which requires the EEPROM version check.

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Acked-by: Adrian Chadd <adrian@freebsd.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: Make addition of new sinfo fields safer
Jouni Malinen [Thu, 11 Aug 2011 08:46:22 +0000 (11:46 +0300)]
nl80211/cfg80211: Make addition of new sinfo fields safer

Add a comment pointing out the use of enum station_info_flags for
all new struct station_info fields. In addition, memset the sinfo
buffer to zero before use on all paths in the current tree to avoid
leaving uninitialized pointers in the data.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: fix a crash in nl80211_send_station
Felix Fietkau [Thu, 11 Aug 2011 01:00:33 +0000 (19:00 -0600)]
cfg80211: fix a crash in nl80211_send_station

mac80211 leaves sinfo->assoc_req_ies uninitialized, causing a random
pointer memory access in nl80211_send_station.
Instead of checking if the pointer is null, use sinfo->filled, like
the rest of the fields.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove obselete comments
Mohammed Shafi Shajakhan [Wed, 10 Aug 2011 10:54:57 +0000 (16:24 +0530)]
ath9k: remove obselete comments

the comments are obselete as the virtual wiphy support was removed from
the driver

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: optimize rate control statistics
Mohammed Shafi Shajakhan [Tue, 9 Aug 2011 16:03:43 +0000 (21:33 +0530)]
ath9k: optimize rate control statistics

for the ease of debugging, we display only the rate control statistics
for currently operating mode and bandwidth

Cc: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Cc: "Balasubramanian, senthilkumar" <senthilb@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix erroneous clearing of MESH_PATH_SN_VALID flag
Javier Cardona [Mon, 8 Aug 2011 23:30:50 +0000 (16:30 -0700)]
mac80211: fix erroneous clearing of MESH_PATH_SN_VALID flag

When a PREQ or PREP is received from an intermediate node, it contains
useful information for path selection but it doesn't include the
originator's sequence number.   Therefore, when updating the mesh path
to that intermediate node, we should not set the MESH_PATH_SN_VALID
flag.  BUT, if the flag is set, it should not be unset as we might have
received a valid sequence number for that intermediate node in the past.

This issue was reported, fixed and tested by Ya Bo (游波) and Pedro
Larbig (ASPj).

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_htc: minor clean-up
Mohammed Shafi Shajakhan [Mon, 8 Aug 2011 15:48:49 +0000 (21:18 +0530)]
ath9k_htc: minor clean-up

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: clear sta.drv_priv on reconfiguration
Eliad Peller [Mon, 8 Aug 2011 13:50:22 +0000 (16:50 +0300)]
mac80211: clear sta.drv_priv on reconfiguration

drivers might assume sta.drv_priv is clear while
the sta is added, so clear it on reconfinguration.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211/nl80211: Send AssocReq IEs to user space in AP mode
Jouni Malinen [Mon, 8 Aug 2011 09:11:52 +0000 (12:11 +0300)]
cfg80211/nl80211: Send AssocReq IEs to user space in AP mode

When user space SME/MLME (e.g., hostapd) is not used in AP mode, the
IEs from the (Re)Association Request frame that was processed in
firmware need to be made available for user space (e.g., RSN IE for
hostapd). Allow this to be done with cfg80211_new_sta().

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211: Indicate driver-based offchannel TX on mgmt_tx_cancel_wait
Jouni Malinen [Mon, 8 Aug 2011 09:10:30 +0000 (12:10 +0300)]
nl80211: Indicate driver-based offchannel TX on mgmt_tx_cancel_wait

Drivers that support frame transmission with mgmt_tx() may not support
driver-based offchannel TX. Use mgmt_tx_cancel_wait instead of mgmt_tx
when figuring out whether to indicate support for this with
NL80211_ATTR_OFFCHANNEL_TX_OK.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211_hwsim: Fix RX status reporting for HT
Jouni Malinen [Sat, 6 Aug 2011 20:07:00 +0000 (23:07 +0300)]
mac80211_hwsim: Fix RX status reporting for HT

RX_FLAG_HT must be included when reporting MCS rates. Without
this, mac80211 ended up dropping any frame sent at MCS index 12
or higher and that resulted in oddly random looking errors in
mac80211_hwsim tests.

Signed-off-by: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMerge branch 'for-linville' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo...
John W. Linville [Wed, 10 Aug 2011 17:51:19 +0000 (13:51 -0400)]
Merge branch 'for-linville' of git://git./linux/kernel/git/kvalo/ath6kl

13 years agoath6kl: fix function name conflicts with ath9k
Kalle Valo [Wed, 10 Aug 2011 06:49:12 +0000 (09:49 +0300)]
ath6kl: fix function name conflicts with ath9k

Stephen reported that compilation fails if both ath6kl and ath9k are
compiled in:

drivers/net/wireless/ath/ath6kl/built-in.o: In function `htc_start':
(.opd+0x600): multiple definition of `htc_start'
drivers/net/wireless/ath/ath9k/built-in.o:(.opd+0x3e40): first defined here
drivers/net/wireless/ath/ath6kl/built-in.o: In function `.htc_stop':
(.text+0x7b40): multiple definition of `.htc_stop'
drivers/net/wireless/ath/ath9k/built-in.o:(.text+0x67b34): first defined he=
re
drivers/net/wireless/ath/ath6kl/built-in.o: In function `.htc_start':
(.text+0x7d18): multiple definition of `.htc_start'
drivers/net/wireless/ath/ath9k/built-in.o:(.text+0x67ba0): first defined he=
re
drivers/net/wireless/ath/ath6kl/built-in.o: In function `htc_stop':
(.opd+0x5e8): multiple definition of `htc_stop'
drivers/net/wireless/ath/ath9k/built-in.o:(.opd+0x3e28): first defined here

To fix this add ath6kl prefix to all public functions in htc.c.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoMerge branch 'ath6kl-next' of master.kernel.org:/pub/scm/linux/kernel/git/kvalo/ath6kl
John W. Linville [Tue, 9 Aug 2011 20:02:26 +0000 (16:02 -0400)]
Merge branch 'ath6kl-next' of /linux/kernel/git/kvalo/ath6kl

13 years agob43: Remove EXPERIMENTAL designation from LP PHY selection
Larry Finger [Sat, 30 Jul 2011 16:30:27 +0000 (11:30 -0500)]
b43: Remove EXPERIMENTAL designation from LP PHY selection

Since kernel 3.0, the problems with controlling b43 devices that have
low-power (LP) PHYs have been fixed and the EXPERIMENTAL designation
can be fixed.

This patch also fixes a typo as the device supports 802.11b communications.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: remove some dead code in if_spi_prog_helper_firmware()
Dan Carpenter [Sat, 6 Aug 2011 14:23:44 +0000 (07:23 -0700)]
libertas: remove some dead code in if_spi_prog_helper_firmware()

We always hit the goto and skip the printk().  The original code does
the right thing even though it looks messy.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agort2x00: Fix PCI interrupt processing race on SMP systems
Helmut Schaa [Sat, 6 Aug 2011 11:13:48 +0000 (13:13 +0200)]
rt2x00: Fix PCI interrupt processing race on SMP systems

When toggle_irq is called for PCI devices to disable device interrupts
it used tasklet_disable to wait for a possibly running tasklet to finish.
However, on SMP systems the tasklet might still be scheduled on another CPU.
Instead, use tasklet_kill to ensure that all scheduled tasklets are finished
before returning from toggle_irq.

Furthermore, it was possible that a tasklet reenabled its interrupt even
though interrupts have been disabled already. Fix this by checking the
DEVICE_STATE_ENABLED_RADIO flag before reenabling single interrupts
during tasklet processing.

While at it also enable/kill the TBTT and PRETBTT tasklets in the
toggle_irq callback and only use tasklet_kill in stop_queue to wait
for a currently scheduled beacon update before returning.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: Remove raw read/write routines from header
Larry Finger [Sat, 6 Aug 2011 10:55:19 +0000 (05:55 -0500)]
rtlwifi: Remove raw read/write routines from header

Now that the driver no longer uses the raw r/w routines, remove their definitions.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: Eliminate raw reads and writes from PCIe portion
Larry Finger [Sat, 6 Aug 2011 10:55:18 +0000 (05:55 -0500)]
rtlwifi: Eliminate raw reads and writes from PCIe portion

The PCIe driver used raw reads and writes on the PCIe hardware.
As all of these are only affecting the configuration space, all of
then can be converted to pci_{read,write}_config_XX calls.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Use atomic reference count for interrupt ops
Rajkumar Manoharan [Fri, 5 Aug 2011 13:29:41 +0000 (18:59 +0530)]
ath9k: Use atomic reference count for interrupt ops

Let us enable/disable interrupts based on reference count.
By doing this we can ensure that interrupts are never be
enabled in the middle of tasklet processing. Instead of
addressing corner cases like "ath9k: avoid enabling interrupts
while processing rx", this approach handles it in generic manner.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix incorrect spur_freq_sd for AR9003
Rajkumar Manoharan [Fri, 5 Aug 2011 13:29:42 +0000 (18:59 +0530)]
ath9k_hw: Fix incorrect spur_freq_sd for AR9003

Spur frequency was incorrectly computed with 10Mhz offset
which could cause the filter would not notch out the spur
and also this could improve rx sensitivity in HT40.

Cc: Madhan Jaganathan <madhanj@qca.qualcomm.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: do not enable interrupt on set interrupt mask
Rajkumar Manoharan [Fri, 5 Aug 2011 13:29:40 +0000 (18:59 +0530)]
ath9k: do not enable interrupt on set interrupt mask

At preset set_interrupt also enables interrupt after changing
mask. This is not necessary in all cases and also sometime it
breaks the assumption that interrupt was disabled. So let us
enable the interrupt explicity if it was disabled earlier.
This could also avoid unnecessary register ops and also helps
the follow up patch to have global ref count for interrupts ops.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: use register name in place of magic value
Alex Hacker [Wed, 3 Aug 2011 11:41:54 +0000 (17:41 +0600)]
ath9k_hw: use register name in place of magic value

Signed-off-by: Alex Hacker <hacker@epn.ru>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: print driver version information
Amitkumar Karwar [Wed, 3 Aug 2011 01:42:23 +0000 (18:42 -0700)]
mwifiex: print driver version information

Add code to display driver version information in dmesg after
loading the driver successfully.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: implement if_sdio runtime power management
Daniel Drake [Mon, 1 Aug 2011 15:43:27 +0000 (16:43 +0100)]
libertas: implement if_sdio runtime power management

The SDIO card is now fully powered down when the network interface is
brought down.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: disable functionality when interface is down
Daniel Drake [Mon, 1 Aug 2011 15:43:13 +0000 (16:43 +0100)]
libertas: disable functionality when interface is down

Modify the driver so that it does not function when the interface is
down, in preparation for runtime power management.

No commands can be run while the interface is down, so the ndo_dev_stop
routine now directly does all necessary work (including asking the device
to disconnect from the network and disabling multicast functionality)
directly.

power_save and power_restore hooks are added meaning that card drivers
can take steps to turn the device off when the interface is down.

The MAC address can now only be changed when all interfaces are down;
the new address will be programmed when an interface gets brought up.
This matches mac80211 behaviour.

Also, some small cleanups/simplifications were made in the surrounding
device handling logic.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Don't use EAPOL frames for rate sampling
Helmut Schaa [Mon, 1 Aug 2011 09:32:53 +0000 (11:32 +0200)]
mac80211: Don't use EAPOL frames for rate sampling

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Fill in skb->protocol information for injected frames
Helmut Schaa [Mon, 1 Aug 2011 09:32:52 +0000 (11:32 +0200)]
mac80211: Fill in skb->protocol information for injected frames

Some drivers (ath9k for example) are using skb->protocol to treat EAPOL
frames somehow special (disallow aggregation for example).

When running in AP mode hostapd injects the EAPOL frames through a
monitor interface and thus skb->protocol isn't set at all. Hence, if the
injected frame is a data frame and carries a rfc1042 headaer update the
skb->protocol field accordingly.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: Update REG_DBG_PRINT macro and uses
Joe Perches [Fri, 29 Jul 2011 21:51:25 +0000 (14:51 -0700)]
cfg80211: Update REG_DBG_PRINT macro and uses

Several uses were missing terminating newlines.
Typo fix and macro neatening.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Update AR9003 high_power tx gain table
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:20 +0000 (17:38 +0530)]
ath9k_hw: Update AR9003 high_power tx gain table

The high_power tx gain table is changed to match the low_ob_db tx gain
table for both 5G and 2G.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Update the radio parameters related to high_power
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:19 +0000 (17:38 +0530)]
ath9k_hw: Update the radio parameters related to high_power

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Optimize rx descriptor processing for AR9003
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:16 +0000 (17:38 +0530)]
ath9k_hw: Optimize rx descriptor processing for AR9003

No need to process RxDone and ds_info status again in case
valid rx status is given.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Remove virtual wiphy specific frame type
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:14 +0000 (17:38 +0530)]
ath9k: Remove virtual wiphy specific frame type

This patch cleanups virtual wiphy specific frametype structure

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Dump modal eeprom header
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:13 +0000 (17:38 +0530)]
ath9k: Dump modal eeprom header

Debugfs file location:
<debugfs_mnt>/ieee80211/phy#/ath9k/modal_eeprom

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Dump base eeprom header
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:12 +0000 (17:38 +0530)]
ath9k: Dump base eeprom header

Debugfs file location:
<debugfs_mnt>/ieee80211/phy#/ath9k/base_eeprom

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Add dump_eeprom support for eeprom_def
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:11 +0000 (17:38 +0530)]
ath9k_hw: Add dump_eeprom support for eeprom_def

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Add dump_eeprom support for AR9287
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:10 +0000 (17:38 +0530)]
ath9k_hw: Add dump_eeprom support for AR9287

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Add dump_eeprom support for eeprom_4k
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:09 +0000 (17:38 +0530)]
ath9k_hw: Add dump_eeprom support for eeprom_4k

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Add dump_eeprom support for AR9003
Rajkumar Manoharan [Fri, 29 Jul 2011 12:08:08 +0000 (17:38 +0530)]
ath9k_hw: Add dump_eeprom support for AR9003

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolib80211: remove exports for functions not called by other modules
Pavel Roskin [Fri, 29 Jul 2011 02:50:44 +0000 (22:50 -0400)]
lib80211: remove exports for functions not called by other modules

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: add core rev 17 used on bcma SoC.
Hauke Mehrtens [Sat, 23 Jul 2011 11:57:34 +0000 (13:57 +0200)]
b43: add core rev 17 used on bcma SoC.

This ieee80211 core was found on a Netgear wndr3400.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: use boardflags define from ssb code
Rafał Miłecki [Sat, 23 Jul 2011 09:10:12 +0000 (11:10 +0200)]
bcma: use boardflags define from ssb code

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agossb: define boardflags
Rafał Miłecki [Sat, 23 Jul 2011 09:10:11 +0000 (11:10 +0200)]
ssb: define boardflags

They are SPROM specific, so all should be defined in ssb code.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath6kl: Release the memory allocated for the firmware
Raja Mani [Thu, 4 Aug 2011 13:56:30 +0000 (19:26 +0530)]
ath6kl: Release the memory allocated for the firmware

Nowhere the firmware memory is freed, free it during
the device destroy process.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Fix crash during the connection process
Raja Mani [Thu, 4 Aug 2011 13:56:29 +0000 (19:26 +0530)]
ath6kl: Fix crash during the connection process

Sometimes, the network manager is failing to connect to the AP due
to the below kernel crash message. The reason behind this,
after issuing the connect command to the chip, the chip is sending
disconnect event and then immediately one connect event to the host
in some random cases.

The host driver resets all states (including cfg80211 state machine)
when it receives disconnect event from the chip. But, still the host
driver reports the next received connect event to cfg80211, at that time
cfg80211 SME state would have been in IDLE state, which was causing
the below kernel crash.

Now, host driver's sme state machine is checked every time before
delivering connect event to cfg80211

  WARNING: at net/wireless/sme.c:517 cfg80211_connect_result+0x10d/0x120()
  [..]
  Call Trace:
  [<c0145732>] warn_slowpath_common+0x72/0xa0
  [<c05d676d>] ? cfg80211_connect_result+0x10d/0x120
  [<c05d676d>] ? cfg80211_connect_result+0x10d/0x120
  [<c0145782>] warn_slowpath_null+0x22/0x30
  [<c05d676d>] cfg80211_connect_result+0x10d/0x120
  [<f83ff497>] ath6kl_cfg80211_connect_event+0x427/0x4f0 [ath6kl]
  [<c035d26a>] ? put_dec+0x2a/0xa0
  [<c035d645>] ? number+0x365/0x380
  [<c0154675>] ? mod_timer+0x135/0x260
  [<c035e00e>] ? format_decode+0x2fe/0x370
  [<c01263c8>] ? default_spin_lock_flags+0x8/0x10
  [<c05fd91f>] ? _raw_spin_lock_irqsave+0x2f/0x50
  [<c0146032>] ? console_unlock+0x172/0x1c0
  [<f8402659>] ath6kl_connect_event+0x89/0x400 [ath6kl]
  [<f840826e>] ath6kl_wmi_control_rx+0x98e/0x1d60 [ath6kl]
  [<c01335b5>] ? __wake_up+0x45/0x60
  [<f84053aa>] ath6kl_rx+0x56a/0x770 [ath6kl]
  [<c04d0242>] ? mmc_release_host+0x22/0x40
  [<c04d9329>] ? sdio_release_host+0x19/0x30
  [<f840a27a>] ? ath6kl_sdio_read_write_sync+0x7a/0xc0 [ath6kl]
  [<f83f82b1>] do_rx_completion+0x41/0x50 [ath6kl]
  [<f83faa6a>] htc_rxmsg_pending_handler+0x6ba/0xbd0 [ath6kl]
  [<f8404bb0>] ? ath6kl_tx_data_cleanup+0x30/0x30 [ath6kl]
  [<f840a1c0>] ? ath6kl_sdio_irq_handler+0x30/0x70 [ath6kl]
  [<f83f7cd5>] ath6kldev_intr_bh_handler+0x2a5/0x630 [ath6kl]
  [<f840a1c0>] ath6kl_sdio_irq_handler+0x30/0x70 [ath6kl]
  [<c04d97c7>] sdio_irq_thread+0xc7/0x2d0
  [<c013aeb0>] ? default_wake_function+0x10/0x20
  [<c012fc98>] ? __wake_up_common+0x48/0x70
  [<c04d9700>] ? sdio_claim_irq+0x200/0x200
  [<c0163854>] kthread+0x74/0x80
  [<c01637e0>] ? kthread_worker_fn+0x160/0x160
  [<c0604c06>] kernel_thread_helper+0x6/0x10

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Cleanup void * in ath6kl_cfg80211_scan_node()
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 12:42:15 +0000 (18:12 +0530)]
ath6kl: Cleanup void * in ath6kl_cfg80211_scan_node()

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Use ath6kl_cfg80211_scan_node() directly instead of function pointer
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 09:12:52 +0000 (14:42 +0530)]
ath6kl: Use ath6kl_cfg80211_scan_node() directly instead of function pointer

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove ath6kl_wmi_iterate_nodes()
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 09:06:55 +0000 (14:36 +0530)]
ath6kl: Remove ath6kl_wmi_iterate_nodes()

Use wlan_iterate_nodes() directly.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Pass only the needed scan_table to ath6kl_wmi_iterate_nodes()
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 09:02:43 +0000 (14:32 +0530)]
ath6kl: Pass only the needed scan_table to ath6kl_wmi_iterate_nodes()

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Move initialization/deinitialization of scan_table to appropriate functions
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 08:54:54 +0000 (14:24 +0530)]
ath6kl: Move initialization/deinitialization of scan_table to appropriate functions

By having scan_table in struct ath6kl, it makes sense to move initialization
to ath6kl_init() and deinitialization to ath6kl_destroy().

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Cleanup parameters of wlan_node_table_init()
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 08:46:57 +0000 (14:16 +0530)]
ath6kl: Cleanup parameters of wlan_node_table_init()

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove ath6kl_wmi_get_current_bssid()
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 08:43:53 +0000 (14:13 +0530)]
ath6kl: Remove ath6kl_wmi_get_current_bssid()

Use the bssid from ath6kl directly.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove bssid from struct wmi
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 08:39:07 +0000 (14:09 +0530)]
ath6kl: Remove bssid from struct wmi

This is nothing but bssid of struct ath6kl.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Cleanup parameters for wlan_refresh_inactive_nodes()
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 08:19:32 +0000 (13:49 +0530)]
ath6kl: Cleanup parameters for wlan_refresh_inactive_nodes()

And remove the reference to wmi in ath6kl_node_table.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Move scan table from wmi to ath6kl
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 08:08:33 +0000 (13:38 +0530)]
ath6kl: Move scan table from wmi to ath6kl

It does not need to be in wmi

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Cleanup void *parent_dev in struct wmi
Vasanthakumar Thiagarajan [Thu, 21 Jul 2011 06:30:49 +0000 (12:00 +0530)]
ath6kl: Cleanup void *parent_dev in struct wmi

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: change aggreation timeout message from an error to a debug message
Kalle Valo [Thu, 21 Jul 2011 07:54:26 +0000 (10:54 +0300)]
ath6kl: change aggreation timeout message from an error to a debug message

When I connect to my Linksys WT610N AP supporting 11n I see a lot of
aggreation timeout errors:

[  408.885053] ath6kl: aggr timeout (st 3109 end 3140)
[  463.872108] ath6kl: aggr timeout (st 3671 end 3702)
[  495.010060] ath6kl: aggr timeout (st 3983 end 4014)
[  503.604047] ath6kl: aggr timeout (st 4065 end 0)
[  518.963047] ath6kl: aggr timeout (st 141 end 172)
[  525.014066] ath6kl: aggr timeout (st 205 end 236)
[  573.957051] ath6kl: aggr timeout (st 701 end 732)
[  585.019067] ath6kl: aggr timeout (st 816 end 847)

But still the connection seems to work. To not clutter the logs change
the error message to a debug message. But add a fixme comment so that
this will be investigated.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: remove dependency to wireless extensions
Kalle Valo [Thu, 21 Jul 2011 07:43:17 +0000 (10:43 +0300)]
ath6kl: remove dependency to wireless extensions

ath6kl Kconfig still had dependencies to wext, remove those as they are
not needed anymore.

Now ath6kl should not have any wext code left. Time to have a beer and
celebrate this.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: fix crash when interface is closed but scan is ongoing
Kalle Valo [Thu, 21 Jul 2011 07:22:50 +0000 (10:22 +0300)]
ath6kl: fix crash when interface is closed but scan is ongoing

When ath6kl module was removed while a scan was ongoing the driver would
crash in ath6kl_cfg80211_scan_complete_event().

Fix the function not to iterate nodes when the scan is aborted. The nodes
are already freed when the module is being unloaded. This patch removes the
null check entirely as the wmi structure is not accessed anymore during
module unload.

Also fix a bug where the status was checked as a bitfield with '&' operator.
But it's not a bitfield, just a regular error code.

This is a port of my patch from ath6kl staging with the same title.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: fix atomicity in ath6kl_cfg80211_scan_node()
Kalle Valo [Thu, 21 Jul 2011 07:04:54 +0000 (10:04 +0300)]
ath6kl: fix atomicity in ath6kl_cfg80211_scan_node()

ath6kl_cfg80211_scan_node() was calling cfg80211_inform_bss_frame()
with CFP_KERNEL but the function is executed with a spin lock taken.
This is wrong and the function must use GFP_ATOMIC instead.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: don't force foreground scan when connected
Kalle Valo [Thu, 21 Jul 2011 06:40:00 +0000 (09:40 +0300)]
ath6kl: don't force foreground scan when connected

In my setup data transfer stalls when there's data transmission during
scan. After some testing I found out that using background scan
when connected to makes the problem go away. This is more like
a workaround than a proper fix, but as the stall is so severe the
workaround is justified.

With a dual band card this increases scan time when connected from
1.9s to 4.4s. When not connected the scan time is not affected and
is the same 1.9s.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Use bit field macros to maintain wlan enabled and disabled status
Raja Mani [Tue, 19 Jul 2011 13:57:33 +0000 (19:27 +0530)]
ath6kl: Use bit field macros to maintain wlan enabled and disabled status

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Avoid two memset to clear src and desr mac addr variable memory in ath6kl_wmi...
Raja Mani [Tue, 19 Jul 2011 13:57:32 +0000 (19:27 +0530)]
ath6kl: Avoid two memset to clear src and desr mac addr variable memory in ath6kl_wmi_dot11_hdr_remove()

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Rearrange the variable and the value position in IF condition
Raja Mani [Tue, 19 Jul 2011 13:57:31 +0000 (19:27 +0530)]
ath6kl: Rearrange the variable and the value position in IF condition

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Print bad trailer data only when htc fails to parse trailer info
Raja Mani [Tue, 19 Jul 2011 13:57:30 +0000 (19:27 +0530)]
ath6kl: Print bad trailer data only when htc fails to parse trailer info

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove unused struct ath6kl_async_reg_io_buffer
Vasanthakumar Thiagarajan [Mon, 18 Jul 2011 08:53:32 +0000 (14:23 +0530)]
ath6kl: Remove unused struct ath6kl_async_reg_io_buffer

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Move chk_irq_status_cnt from ath6kl_device to htc_target
Vasanthakumar Thiagarajan [Mon, 18 Jul 2011 08:53:31 +0000 (14:23 +0530)]
ath6kl: Move chk_irq_status_cnt from ath6kl_device to htc_target

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Bypass reading irq status based on chk_irq_status_cnt
Vasanthakumar Thiagarajan [Mon, 18 Jul 2011 08:53:30 +0000 (14:23 +0530)]
ath6kl: Bypass reading irq status based on chk_irq_status_cnt

This is a regression.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Move scatter information from ath6kl_device to htc_target
Vasanthakumar Thiagarajan [Mon, 18 Jul 2011 08:53:29 +0000 (14:23 +0530)]
ath6kl: Move scatter information from ath6kl_device to htc_target

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Move block_sz and block_mask from ath6kl_device to htc_target
Vasanthakumar Thiagarajan [Mon, 18 Jul 2011 08:53:28 +0000 (14:23 +0530)]
ath6kl: Move block_sz and block_mask from ath6kl_device to htc_target

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>