openwrt/staging/blogic.git
13 years agocfg80211: document wiphy->registered
Stanislaw Gruszka [Thu, 25 Aug 2011 15:07:24 +0000 (17:07 +0200)]
cfg80211: document wiphy->registered

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: refactor skb copy to failq in mesh_path_move_to_queue
John W. Linville [Wed, 24 Aug 2011 19:12:41 +0000 (15:12 -0400)]
mac80211: refactor skb copy to failq in mesh_path_move_to_queue

This seems a bit less awkward...

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonet/mac80211/debugfs: Convert to kstrou8_from_user
Peter Huewe [Tue, 7 Jun 2011 20:36:14 +0000 (22:36 +0200)]
net/mac80211/debugfs: Convert to kstrou8_from_user

This patch replaces the code for getting an number from a
userspace buffer by a simple call to kstrou8_from_user.
This makes it easier to read and less error prone.

Since the old buffer was only 10 bytes long and the value is masked by a
nibble-mask anyway, we don't need to use kstrtoul but rather kstrtou8.

Kernel Version: v3.0-rc2

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
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/luca...
John W. Linville [Mon, 29 Aug 2011 18:27:52 +0000 (14:27 -0400)]
Merge branch 'for-linville' of git://git./linux/kernel/git/luca/wl12xx

13 years agoath9k: add AR9580 support
Luis R. Rodriguez [Tue, 23 Aug 2011 20:37:07 +0000 (13:37 -0700)]
ath9k: add AR9580 support

This has been tested in STA and AP mode by Florian.

Cc: David Quan <dquan@qca.qualcomm.com>
Cc: Kathy Giori <kgiori@qca.qualcomm.com>
Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: Use do_div for 64-bit division to fix 32-bit kernels
Christian Lamparter [Thu, 25 Aug 2011 13:00:54 +0000 (15:00 +0200)]
carl9170: Use do_div for 64-bit division to fix 32-bit kernels

Use the do_div macro for 64-bit division. Otherwise, the module will
reference __udivdi3 under 32-bit kernels, which is not allowed in
kernel space.

drivers/built-in.o: In function `carl9170_collect_tally':
cmd.c:191: undefined reference to `__udivdi3'
cmd.c:192: undefined reference to `__udivdi3'
cmd.c:193: undefined reference to `__udivdi3'

Reported-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Tested-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: add AR9580 support
Luis R. Rodriguez [Wed, 24 Aug 2011 22:36:08 +0000 (15:36 -0700)]
ath9k_hw: add AR9580 support

Here are the AR9580 1.0 initvals checksums using the
Atheros initvals-tools [1]. This is useful for when
we udate the initvals again with other values. It ensures
that we match the same initvals used internally. The
tool is documented on the wiki [2].

$ ./initvals -f ar9580-1p0
0x00000000e912711f        ar9580_1p0_modes_fast_clock
0x000000004a488fc7        ar9580_1p0_radio_postamble
0x00000000f3888b02        ar9580_1p0_baseband_core
0x0000000003f783bb        ar9580_1p0_mac_postamble
0x0000000094be244a        ar9580_1p0_low_ob_db_tx_gain_table
0x0000000094be244a        ar9580_1p0_high_power_tx_gain_table
0x0000000090be244a        ar9580_1p0_lowest_ob_db_tx_gain_table
0x00000000ed9eaac6        ar9580_1p0_baseband_core_txfir_coeff_japan_2484
0x00000000c4d66d1b        ar9580_1p0_mac_core
0x00000000e8e9043a        ar9580_1p0_mixed_ob_db_tx_gain_table
0x000000003521a300        ar9580_1p0_wo_xlna_rx_gain_table
0x00000000301fc841        ar9580_1p0_soc_postamble
0x00000000a9a06b3a        ar9580_1p0_high_ob_db_tx_gain_table
0x00000000a15ccf1b        ar9580_1p0_soc_preamble
0x0000000029495000        ar9580_1p0_rx_gain_table
0x0000000037ac0ee8        ar9580_1p0_radio_core
0x00000000603a1b80        ar9580_1p0_baseband_postamble
0x000000003d8b4396        ar9580_1p0_pcie_phy_clkreq_enable_L1
0x00000000398b4396        ar9580_1p0_pcie_phy_clkreq_disable_L1
0x00000000397b4396        ar9580_1p0_pcie_phy_pll_on_clkreq

[1] git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/initvals-tool.git
[2] http://wireless.kernel.org/en/users/Drivers/ath9k_hw/initvals-tool

Cc: David Quan <dquan@qca.qualcomm.com>
Cc: Kathy Giori <kgiori@qca.qualcomm.com>
Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_htc: Add get_stats call back
Mohammed Shafi Shajakhan [Wed, 24 Aug 2011 19:31:22 +0000 (01:01 +0530)]
ath9k_htc: Add get_stats call back

currently this call back is used only in debugfs of mac80211

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: correct warning for uninitialized variable 'macstat'
John W. Linville [Wed, 24 Aug 2011 19:05:14 +0000 (15:05 -0400)]
b43: correct warning for uninitialized variable 'macstat'

  CC [M]  drivers/net/wireless/b43/pio.o
drivers/net/wireless/b43/pio.c: In function ‘pio_rx_frame’:
drivers/net/wireless/b43/pio.c:614:6: warning: ‘macstat’ may be used uninitialized in this function

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove replicated null check in ath_pci_aspm_init
John W. Linville [Wed, 24 Aug 2011 18:08:41 +0000 (14:08 -0400)]
ath9k: remove replicated null check in ath_pci_aspm_init

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: read clip state
Rafał Miłecki [Wed, 24 Aug 2011 09:52:35 +0000 (11:52 +0200)]
b43: HT-PHY: read clip state

We don't know yet when to restore it, implement just reading. We found
out what for are that PHY ops by comparing HT with N code.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: use separated function for forcing RF sequence
Rafał Miłecki [Wed, 24 Aug 2011 09:52:34 +0000 (11:52 +0200)]
b43: HT-PHY: use separated function for forcing RF sequence

Comparison of the HT and N code has shown similarities in the ops
performed after b43_mac_phy_clock_set. That way we understood what is
happening in the HT-PHY code.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMAINTANERS: update Qualcomm Atheros addresses
Luis R. Rodriguez [Tue, 23 Aug 2011 22:07:31 +0000 (15:07 -0700)]
MAINTANERS: update Qualcomm Atheros addresses

Qualcomm ate up Atheros, all of the old e-mail addresses
no longer work and e-mails sent to it will bounce. Update
the addresses to the new shiny Qualcomm Atheros (QCA) ones.

Cc: stable@kernel.org
Cc: netdev@vger.kernel.org
Cc: jouni@qca.qualcomm.com
Cc: yangjie@qca.qualcomm.com
Cc: vthiagar@qca.qualcomm.com
Cc: senthilb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: relicense regulatory header to ISC
Luis R. Rodriguez [Tue, 23 Aug 2011 22:03:34 +0000 (15:03 -0700)]
wireless: relicense regulatory header to ISC

I will suck out stuff to userspace to start the regulatory
revampamp, this work will be permissively licensed.

Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: add uapsd_queues and max_sp params fields
Eliad Peller [Tue, 23 Aug 2011 11:37:47 +0000 (14:37 +0300)]
mac80211: add uapsd_queues and max_sp params fields

Add uapsd_queues and max_sp fields to ieee80211_sta.
These fields might be needed by low-level drivers in
order to configure the AP.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: add STA WME parameters
Eliad Peller [Tue, 23 Aug 2011 11:37:46 +0000 (14:37 +0300)]
nl80211/cfg80211: add STA WME parameters

Add new NL80211_ATTR_STA_WME nested attribute that contains
wme params needed by the low-level driver (uapsd_queues and
max_sp).

Add these params to the station_parameters struct as well.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: allow action frames with unknown BSSID in GO mode
Arik Nemtsov [Tue, 23 Aug 2011 07:21:27 +0000 (10:21 +0300)]
mac80211: allow action frames with unknown BSSID in GO mode

When operating as a P2P GO, we receive some P2P action frames where the
BSSID is set to the peer MAC address. Specifically, this occurs for
invitation responses. These are valid action frames and they should be
passed up.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Send legacy rated frames as unaggregated
Rajkumar Manoharan [Tue, 23 Aug 2011 07:02:57 +0000 (12:32 +0530)]
ath9k: Send legacy rated frames as unaggregated

Currently the aggregation is formed till the aggregation limit
is reached and the rate lookup is done for the first frame alone.
But there can be a legacy rated frames in tid queue. This patch
limits the subframe addition based on presence of legacy rate and
sends the legacy rated frames as unaggregated one.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix race condition between assoc_done and first EAP packet
Guy Eilam [Wed, 17 Aug 2011 12:18:15 +0000 (15:18 +0300)]
mac80211: fix race condition between assoc_done and first EAP packet

When associating to an AP, the station might miss the first EAP
packet that the AP sends due to a race condition between the association
success procedure and the rx flow in mac80211.
In such cases, the packet might fall in ieee80211_rx_h_check due to
the fact that the relevant rx->sta wasn't allocated yet.
Allocation of the relevant station info struct before actually
sending the association request and setting it with a new
dummy_sta flag solve this problem.
The station will accept only EAP packets from the AP while it
is in the pre-association/dummy state.
This dummy station entry is not seen by normal sta_info_get()
calls, only by sta_info_get_bss_rx().
The driver is not notified for the first insertion of the
dummy station. The driver is notified only after the association
is complete and the dummy flag is removed from the station entry.
That way, all the rest of the code flow should be untouched by
this change.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: refactor sta_info_insert_rcu to 3 main stages
Guy Eilam [Wed, 17 Aug 2011 12:18:14 +0000 (15:18 +0300)]
mac80211: refactor sta_info_insert_rcu to 3 main stages

Divided the sta_info_insert_rcu function to 3 mini-functions:
sta_info_insert_check - the initial checks done when inserting
a new station
sta_info_insert_ibss - the function that handles the station
addition for IBSS interfaces
sta_info_insert_non_ibss - the function that handles the station
addition in other cases

The outer API was not changed.
The refactoring was done for better usage of the different
stages in the station addition in new scenarios added
in the next commit.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: drop Kconfig option of forcing PIO mode
Rafał Miłecki [Tue, 16 Aug 2011 10:14:07 +0000 (12:14 +0200)]
b43: drop Kconfig option of forcing PIO mode

We have module param called use_pio which is much easier to use.

Cc: Larry Finger <larry.finger@lwfinger.net>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: mesh gate fixes
Thomas Pedersen [Thu, 25 Aug 2011 17:36:14 +0000 (10:36 -0700)]
mac80211: mesh gate fixes

Since a v1 of the mesh gate series was accidentally applied, this patch
contains the changes in v2.

These are:
- automatically make mesh gate a root node.
- use TU_TO_EXP_TIME macro.
- initialize timer instead of checking for NULL timer function.
- cleanups.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: update readme file
Amitkumar Karwar [Tue, 23 Aug 2011 00:26:37 +0000 (17:26 -0700)]
libertas: update readme file

Since all wext specific code is removed, currently there is no
way to configure deep sleep mode. This patch removes deep sleep
configuration information in readme file.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: rtl8192de: Convert to use the new rate-mapping routine in rtlwifi
Larry Finger [Mon, 22 Aug 2011 21:50:18 +0000 (16:50 -0500)]
rtlwifi: rtl8192de: Convert to use the new rate-mapping routine in rtlwifi

This patch also deletes the now unused parts of rtl8192de/def.h.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: rtl8192se: Convert to use the new rate-mapping routine in rtlwifi
Larry Finger [Mon, 22 Aug 2011 21:50:17 +0000 (16:50 -0500)]
rtlwifi: rtl8192se: Convert to use the new rate-mapping routine in rtlwifi

This patch also deletes the now unused parts of rtl8192se/def.h.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: rtl8192cu: Convert to use the new rate-mapping routine in rtlwifi
Larry Finger [Mon, 22 Aug 2011 21:50:16 +0000 (16:50 -0500)]
rtlwifi: rtl8192cu: Convert to use the new rate-mapping routine in rtlwifi

This patch also removes the now unused code from rtl8192ce/def.h.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: rtl8192ce: Convert to use the new rate-mapping routine in rtlwifi
Larry Finger [Mon, 22 Aug 2011 21:50:15 +0000 (16:50 -0500)]
rtlwifi: rtl8192ce: Convert to use the new rate-mapping routine in rtlwifi

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: Install updated rate-mapping routine
Larry Finger [Mon, 22 Aug 2011 21:50:14 +0000 (16:50 -0500)]
rtlwifi: Install updated rate-mapping routine

In preparation for fixing the rate-mapping situation, place a driver-agnostic
version in rtlwifi. This one contains the updated rate incormation.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agodrivers/net/wireless/mwifiex/scan.c: test the just-initialized value
Julia Lawall [Mon, 22 Aug 2011 14:16:14 +0000 (16:16 +0200)]
drivers/net/wireless/mwifiex/scan.c: test the just-initialized value

Test the just-initialized value rather than some other one.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r@
identifier x,y,f!={PTR_ERR,ERR_PTR,ERR_CAST};
statement S;
@@

x = f(...);
(
if (\(x == NULL\|IS_ERR(x)\)) S
|
*if (\(y == NULL\|IS_ERR(y)\))
 { ... when != x
   return ...; }
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43/legacy: Remove firmware IDs
Michael Büsch [Sun, 21 Aug 2011 15:24:47 +0000 (17:24 +0200)]
b43/legacy: Remove firmware IDs

This removes the "FWxx" ID strings from the b43 and b43legacy
drivers. They were once used to match a specific driver revision
to a set of firmware files. However, this is hardly useful today.
Additionally, the IDs are not updated and maintained properly, so
they might mislead users.

Signed-off-by: Michael Buesch <m@bues.ch>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Disable Walsh spatial spreading for 2 chains
Rajkumar Manoharan [Sat, 20 Aug 2011 12:04:19 +0000 (17:34 +0530)]
ath9k_hw: Disable Walsh spatial spreading for 2 chains

The Walsh bit is disabled for regulatory consideration.

FCC limit for walsh enable is lower than that for walsh disable. So
disabling walsh bit will not limit tx power/affect tx power even in
cases where we are not FCC limited (most client cards). If the tx
power is not FCC limited, then enabling/disabling walsh bit will
not affect Avg. EVM/overall performance in any visible manner.

Cc: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Change rate control to use legacy rate as last MRR
Rajkumar Manoharan [Sat, 20 Aug 2011 11:52:10 +0000 (17:22 +0530)]
ath9k: Change rate control to use legacy rate as last MRR

In congested network, having all rate reties at MCS rates
is failing to transmit the frame offenly. By the time reaching
the success rate set, the application gets timed out. One such
scenario is that authentication time out during 4-Way handshake.
This patch uses a legacy rate as last retry sequnce for
unaggregated frames or if the first selected rate's PER is ~80%
of max limit. And also observed from the tx status that the frame
was trasmitted successfully by using legacy rates.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix descriptor status of TxOpExceeded
Rajkumar Manoharan [Sat, 20 Aug 2011 11:52:09 +0000 (17:22 +0530)]
ath9k_hw: Fix descriptor status of TxOpExceeded

Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Add support for get_stats callback
Mohammed Shafi Shajakhan [Sat, 20 Aug 2011 11:51:42 +0000 (17:21 +0530)]
ath9k: Add support for get_stats callback

this useful for debugging and to keep track of success/failure of
frames such as ACK, RTS and FCS error count in a noisy environment

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agop54: improve site survey
Christian Lamparter [Fri, 19 Aug 2011 23:53:59 +0000 (01:53 +0200)]
p54: improve site survey

The firmware keeps track of channel usage. This data can
be used by the automatic channel selection to find the best
channel.

Survey data from wlan4
frequency: 5200 MHz [in use]
noise: -91 dBm
channel active time: 811909 ms
channel busy time: 63395 ms
channel transmit time: 59636 ms
Survey data from wlan4
frequency: 5210 MHz
noise: -91 dBm
channel active time: 121 ms
channel busy time: 119 ms
channel transmit time: 0 ms

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMAINTAINERS: Add NFC subsystem entry
Aloisio Almeida Jr [Fri, 19 Aug 2011 19:09:49 +0000 (16:09 -0300)]
MAINTAINERS: Add NFC subsystem entry

Update MAINTAINERS with NFC subsystem and drivers entry.

Signed-off-by: Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoNFC: Reserve tx head and tail room
Samuel Ortiz [Fri, 19 Aug 2011 13:47:11 +0000 (15:47 +0200)]
NFC: Reserve tx head and tail room

We can have the NFC core layer allocating the tx head and tail
room for the drivers and avoid 1 or more SKBs copy on write on
the Tx path.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: signedness bug in bcma_get_next_core()
Dan Carpenter [Tue, 23 Aug 2011 19:15:35 +0000 (22:15 +0300)]
bcma: signedness bug in bcma_get_next_core()

The u32 would never be less than zero so the error handling would
break.  I changed it to s32 to match how bcma_erom_get_mst_port() is
declared.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: fix MGMT packets when using TKIP
Bill Jordan [Fri, 19 Aug 2011 15:10:22 +0000 (11:10 -0400)]
ath9k: fix MGMT packets when using TKIP

Prevent 8 bytes from being truncated from MGMT packets
when using TKIP.

Signed-off-by: Bill Jordan <bjordan@rajant.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: warn when forcing PIO mode
Rafał Miłecki [Tue, 16 Aug 2011 19:44:21 +0000 (21:44 +0200)]
b43: warn when forcing PIO mode

We have resolved all the known issues with DMA mode, however some users
(or distros) are still forcing PIO mode by config files. Without
debugging enabled it's not noticable at all. Add the warning for them.

Cc: Gregory Bellier <gregory.bellier@gmail.com>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: fix EIFS value to microseconds
Alex Hacker [Tue, 16 Aug 2011 10:41:40 +0000 (16:41 +0600)]
ath9k_hw: fix EIFS value to microseconds

The EIFS value read from AR_D_GBL_IFS_EIFS register in core clocks and then
written back as microsecond value.

Signed-off-by: Alex Hacker <hacker@epn.ru>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: LCN-PHY: init 0x2064 radio
Rafał Miłecki [Mon, 15 Aug 2011 16:50:56 +0000 (18:50 +0200)]
b43: LCN-PHY: init 0x2064 radio

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: LCN-PHY: basic PHY init
Rafał Miłecki [Mon, 15 Aug 2011 16:50:55 +0000 (18:50 +0200)]
b43: LCN-PHY: basic PHY init

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: export HW random number generator
Christian Lamparter [Mon, 15 Aug 2011 18:09:54 +0000 (20:09 +0200)]
carl9170: export HW random number generator

All AR9170 hardware have a 16-Bit random number generator.
The documentation claims the values are suitable for
"security keys".

The "throughput" is around 320Kibit/s. It's slow, but it
does work without introducing any special offload
firmware commands.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: improve site survey
Christian Lamparter [Mon, 15 Aug 2011 17:50:48 +0000 (19:50 +0200)]
carl9170: improve site survey

The firmware keeps track of channel usage. This data can
be used by the automatic channel selection to find the
*best* channel.

Survey data from wlan22
frequency:                      2412 MHz [in use]
noise:                          -86 dBm
channel active time:            3339608 ms
channel busy time:              270982 ms
channel transmit time:          121515 ms
Survey data from wlan22
frequency:                      2417 MHz
noise:                          -86 dBm
channel active time:            70 ms
channel busy time:              2 ms
channel transmit time:          1 ms

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: import updated firmware headers
Christian Lamparter [Mon, 15 Aug 2011 17:39:51 +0000 (19:39 +0200)]
carl9170: import updated firmware headers

Import new headers from our firmware branch:
git://git.kernel.org/pub/scm/linux/kernel/git/chr/carl9170fw.git

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: fix timekeeping for HW_COUNTER firmwares
Christian Lamparter [Mon, 15 Aug 2011 16:45:54 +0000 (18:45 +0200)]
carl9170: fix timekeeping for HW_COUNTER firmwares

AR9170_PWR_REG_PLL_ADDAC is used to set the main clock
divisor which affects the AHB/CPU speed. Because this
would interfere with the firmware internal timekeeping,
the function has to be moved into the firmware.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: handle mesh networks in lbs_iface_active()
Dan Carpenter [Mon, 15 Aug 2011 11:25:35 +0000 (14:25 +0300)]
libertas: handle mesh networks in lbs_iface_active()

There was an extra semicolon so the if condition wasn't used.  We
checked "priv->dev" twice instead of "priv->mesh_dev".

Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: LCN-PHY: add init tables
Rafał Miłecki [Sun, 14 Aug 2011 23:23:09 +0000 (01:23 +0200)]
b43: LCN-PHY: add init tables

They were taken from MMIO dump with few RegExps and vim.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: LCN-PHY: switch analog
Rafał Miłecki [Sun, 14 Aug 2011 21:27:30 +0000 (23:27 +0200)]
b43: LCN-PHY: switch analog

Analog is switched on right after reading PHY version:
 read16 0xfaafc3e0 -> 0xa801
 phy_read(0x043b) -> 0x0000
phy_write(0x043b) <- 0x0000
Switched off after after killing radio:
>>> Switch Radio(OFF) end
 phy_read(0x043c) -> 0x0000
phy_write(0x043c) <- 0x0007
 phy_read(0x043b) -> 0x0000
phy_write(0x043b) <- 0x0007

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: LCN-PHY: implement disabling radio
Rafał Miłecki [Sun, 14 Aug 2011 21:27:29 +0000 (23:27 +0200)]
b43: LCN-PHY: implement disabling radio

wl reads radio version, then disables it. That's how we found it in MMIO
dump:
 radio_read(0x0000) -> 0x0031 <-- RADIO READ WITHOUT 0x200 SET!
 radio_read(0x0001) -> 0x0064 <-- RADIO READ WITHOUT 0x200 SET!
 radio_read(0x0002) -> 0x0020 <-- RADIO READ WITHOUT 0x200 SET!
 read32 0xfaafc120 -> 0x04000400
 phy_read(0x044d) -> 0x0000
phy_write(0x044d) <- 0x0000
 phy_read(0x044c) -> 0x1fff
phy_write(0x044c) <- 0x1fff
 phy_read(0x04b7) -> 0x0000
phy_write(0x04b7) <- 0x0000
 phy_read(0x04b1) -> 0x0000
phy_write(0x04b1) <- 0x0000
 phy_read(0x04b0) -> 0x7dff
phy_write(0x04b0) <- 0x7dff
 phy_read(0x04fa) -> 0x0000
phy_write(0x04fa) <- 0x0000
 phy_read(0x04f9) -> 0x007f
phy_write(0x04f9) <- 0x007f

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: LCN-PHY: add very basic PHY ops
Rafał Miłecki [Sun, 14 Aug 2011 21:27:28 +0000 (23:27 +0200)]
b43: LCN-PHY: add very basic PHY ops

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: fix DMA on some bugged hardware
Rafał Miłecki [Sun, 14 Aug 2011 18:16:37 +0000 (20:16 +0200)]
b43: fix DMA on some bugged hardware

Some hardware with 64-bit DMA uses lower address word for setting
routing (translation) bit. Add workaround for such boards.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agossb: fix DMA translation for some specific boards
Rafał Miłecki [Sun, 14 Aug 2011 17:39:40 +0000 (19:39 +0200)]
ssb: fix DMA translation for some specific boards

Signed-off-by: Michael Buesch <m@bues.ch>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove a bogus WARN_ON
Felix Fietkau [Sat, 13 Aug 2011 16:13:49 +0000 (10:13 -0600)]
ath9k: remove a bogus WARN_ON

On embedded hardware it's normal to not have a PCI device for the PCI
bridge that the wifi card is attached to. pdev->bus->self will be
NULL in that case. In that case, simply return without emitting an
useless kernel stack trace.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Dump modal noisefloor calibration history
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:18 +0000 (10:28 +0530)]
ath9k: Dump modal noisefloor calibration history

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

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Fix invalid noisefloor reading due to channel update
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:17 +0000 (10:28 +0530)]
ath9k: Fix invalid noisefloor reading due to channel update

While switching b/w HT20/40, the current channel's nf values
are updated into history buffer. Since the current channel's
channel type, channel flag got updated before reading
nf value from hw. This channel type mismatch is causing invalid
readings when hw is on ht20 but getnf tries to read on extn chains.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Fix noisefloor history update for extn chains
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:16 +0000 (10:28 +0530)]
ath9k: Fix noisefloor history update for extn chains

Before doing hw reset the current channel's noisefloor readings
are updated into history buffer. The extension chain's readings
are considered only if the current channel was configured in HT40.
While moving from HT40 to HT20, the extn chain's readings are
skipped though the current channel is in ht40. This patch updates
extn chain reading based on channel flag.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Move ath9k_init_crypto to common
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:15 +0000 (10:28 +0530)]
ath9k: Move ath9k_init_crypto to common

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Remove SC_OP_ENABLE_APM
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:14 +0000 (10:28 +0530)]
ath9k: Remove SC_OP_ENABLE_APM

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Remove unnecessary chainmask configuration
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:13 +0000 (10:28 +0530)]
ath9k_hw: Remove unnecessary chainmask configuration

The chainmasks were already configured at process_ini
before doing init calibration.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: qinfo never be NULL in setuptxqueue
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:12 +0000 (10:28 +0530)]
ath9k: qinfo never be NULL in setuptxqueue

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Remove unused argument tsf from ath9k_hw_rxprocdesc
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:11 +0000 (10:28 +0530)]
ath9k: Remove unused argument tsf from ath9k_hw_rxprocdesc

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Re-enable RXOEL interrupt after processing rx buffers
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:10 +0000 (10:28 +0530)]
ath9k: Re-enable RXOEL interrupt after processing rx buffers

Once RXEOL was disabled, it never be enabled again. This patch
re-enables rxeol at the end of rx tasklet.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Fix rx overrun interrupt storm
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:09 +0000 (10:28 +0530)]
ath9k: Fix rx overrun interrupt storm

Whenever RXEOL is received, both RXORN and RXEOL got cleared
to avoid rx overrun interrupt storm. This was handled only for
edma chips. The same scenario was also observered with AR9280,
doing frequent channel type switch b/w HT20/40 with bidi traffic
that is causing failure to stop rx dma. This patch clears
the RXEOL & RXORN interrupts for all chips.

ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020
DMADBG_7=0x000062c0
ath: Could not stop RX, we could be confusing the DMA engine when we
start RX up
------------[ cut here ]------------
WARNING: at drivers/net/wireless/ath/ath9k/recv.c:532
ath_stoprecv+0x110/0x120 [ath9k]()
Call Trace:
 [<ffffffff8104a55a>] warn_slowpath_common+0x7a/0xb0
 [<ffffffff8104a5a5>] warn_slowpath_null+0x15/0x20
 [<ffffffffa0560380>] ath_stoprecv+0x110/0x120 [ath9k]
 [<ffffffffa055e6fa>] ath_reset+0x6a/0x200 [ath9k]

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix exceed transmission burst-time of 5GHz
Rajkumar Manoharan [Sat, 13 Aug 2011 04:58:08 +0000 (10:28 +0530)]
ath9k_hw: Fix exceed transmission burst-time of 5GHz

The WAR which adds extra delimiters when using RTS/CTS
with aggregation and non-enterprise AR9003 chips.
This extra padding is done after doing all the 4ms limit
checks and hence the total aggregate sizes are exceeding
the allowed duration. This patch limits the aggregate
sizes appropriately after including these extra delimiters.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years ago{nl,cfg,mac}80211: let userspace make meshif mesh gate
Javier Cardona [Tue, 9 Aug 2011 23:45:11 +0000 (16:45 -0700)]
{nl,cfg,mac}80211: let userspace make meshif mesh gate

Allow userspace to set NL80211_MESHCONF_GATE_ANNOUNCEMENTS attribute,
which will advertise this mesh node as being a mesh gate.
NL80211_HWMP_ROOTMODE must be set or this will do nothing.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years ago{nl,cfg,mac}80211: let userspace set RANN interval
Javier Cardona [Tue, 9 Aug 2011 23:45:10 +0000 (16:45 -0700)]
{nl,cfg,mac}80211: let userspace set RANN interval

Allow userspace to set Root Announcement Interval for our mesh
interface. Also, RANN interval is now in proper units of TUs.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years ago{nl,mac}80211: add missing root mode meshconf entries
Javier Cardona [Tue, 9 Aug 2011 23:45:09 +0000 (16:45 -0700)]
{nl,mac}80211: add missing root mode meshconf entries

This fix allows userspace to mark a meshif as a root node.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: mesh gate implementation
Javier Cardona [Tue, 9 Aug 2011 23:45:08 +0000 (16:45 -0700)]
mac80211: mesh gate implementation

In this implementation, a mesh gate is a root node with a certain bit
set in its RANN flags. The mpath to this root node is marked as a path
to a gate, and added to our list of known gates for this if_mesh. Once a
path discovery process fails, we forward the unresolved frames to a
known gate. Thanks to Luis Rodriguez for refactoring and bug fix help.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix mesh path flushing
Javier Cardona [Tue, 9 Aug 2011 23:45:07 +0000 (16:45 -0700)]
mac80211: fix mesh path flushing

Previously, mpaths were never flushed since the mpath is not active once
we call this function.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: mesh locking fixes
Javier Cardona [Tue, 9 Aug 2011 23:45:06 +0000 (16:45 -0700)]
mac80211: mesh locking fixes

mesh_queue_preq is invoked invoked from both user (work queue) and
softirq (timer) context, so the _bh version of spinlock needs to be
used. Also, the mpath->state_lock should be softirq safe as well.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix mpath timer NULL function
Javier Cardona [Tue, 9 Aug 2011 23:45:05 +0000 (16:45 -0700)]
mac80211: fix mpath timer NULL function

If we have an mpath whose timer has not been initialized, don't try to
delete it.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: improve mpath debugging
Javier Cardona [Tue, 9 Aug 2011 23:45:04 +0000 (16:45 -0700)]
mac80211: improve mpath debugging

make hwmp_dbg print the relevant sdata->name by default and improve
formatting. Also add mpath_dbg macro for debugging of mesh path
operations.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: allow writing longer tables with a single call
Rafał Miłecki [Tue, 23 Aug 2011 17:09:30 +0000 (19:09 +0200)]
b43: HT-PHY: allow writing longer tables with a single call

Sometimes we need to write table which is 2-10 elements long. It's
easier to create such a function instead of defining array every time.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: init: add missing small-tables writes
Rafał Miłecki [Sat, 13 Aug 2011 15:54:04 +0000 (17:54 +0200)]
b43: HT-PHY: init: add missing small-tables writes

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agortlwifi: add module parameter to set global debug level
Stefan Assmann [Sat, 13 Aug 2011 10:12:36 +0000 (12:12 +0200)]
rtlwifi: add module parameter to set global debug level

No need to recompile the module anymore to set the debug level.

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: init: add some AFE (Analog Frontend) operation
Rafał Miłecki [Fri, 12 Aug 2011 23:41:12 +0000 (01:41 +0200)]
b43: HT-PHY: init: add some AFE (Analog Frontend) operation

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: init: add missing PHY mask/set ops
Rafał Miłecki [Fri, 12 Aug 2011 23:41:11 +0000 (01:41 +0200)]
b43: HT-PHY: init: add missing PHY mask/set ops

MMIO hacks were used to trick ndis&wl. For example following:
 phy_read(0x0280) -> 0xffff
phy_write(0x0280) <- 0xff3e
***
 phy_read(0x0280) -> 0x0000
phy_write(0x0280) <- 0x003e
was translated to mask 0xff00 and set 0x3e.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: init: init BPHY and upload 0x1a table
Rafał Miłecki [Fri, 12 Aug 2011 13:27:34 +0000 (15:27 +0200)]
b43: HT-PHY: init: init BPHY and upload 0x1a table

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
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>