firefly-linux-kernel-4.4.55.git
10 years agobrcmfmac: add missing curly braces in brcmf_fws_txstatus_suppressed()
Arend van Spriel [Thu, 12 Dec 2013 10:58:49 +0000 (11:58 +0100)]
brcmfmac: add missing curly braces in brcmf_fws_txstatus_suppressed()

The 0-day testing from Fenguang Wu issued the following warning:

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next.git master
head:   4b074b07625f603d40d4d04937f8874a00415dc4
commit: 1e86d69662d7d86360624f74bbe1b5fa1b8ffb13
    [33/59] brcmfmac: Update fwsignal to fix out of order tx.

>> drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c:1393:2-56:
    code aligned with following code on line 1394

vim +1393 drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c

84bcc0c3  1387  }
84bcc0c3  1388
84bcc0c3  1389  entry->generation = genbit;
84bcc0c3  1390
2747e5f7  1391  ret = brcmf_proto_hdrpull(fws->drvr, false, &ifidx, skb);
2747e5f7  1392  if (ret == 0)
1e86d696 @1393  brcmf_skb_htod_tag_set_field(skb, GENERATION, ..
1e86d696 @1394  brcmf_skbcb(skb)->htod_seq = seq;
1e86d696  1395  if (brcmf_skb_htod_seq_get_field(skb, FROMFW)) {
1e86d696  1396  brcmf_skb_htod_seq_set_field(skb, ..
1e86d696  1397  brcmf_skb_htod_seq_set_field(skb, ..

This warning is valid and the if statement needs curly braces here.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agonet: wirelesse: wcn36xx: pull allocation outside of critical section
Michal Nazarewicz [Wed, 11 Dec 2013 16:43:39 +0000 (17:43 +0100)]
net: wirelesse: wcn36xx: pull allocation outside of critical section

Commit [3469adb3: fix potential NULL pointer dereference] introduced
a check of msg_ind allocation, but omitted allocation of msg_ind->msg.
Moreover, it introduced two if statements, which looked a bit clunky.

This commit moves allocation code outside of the critical section so
there's no need to dance around mutex_unlock, and adds the missing
allocation check.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoMerge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
John W. Linville [Wed, 18 Dec 2013 20:09:58 +0000 (15:09 -0500)]
Merge branch 'for-john' of git://git./linux/kernel/git/iwlwifi/iwlwifi-next

10 years agoiwlwifi: mvm: rs: fix variable shadowing
Johannes Berg [Tue, 17 Dec 2013 10:34:25 +0000 (11:34 +0100)]
iwlwifi: mvm: rs: fix variable shadowing

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: EyalX Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: fix RTS protection being set indefinitely
Eyal Shapira [Mon, 16 Dec 2013 23:08:50 +0000 (01:08 +0200)]
iwlwifi: mvm: rs: fix RTS protection being set indefinitely

RTS protection was turned on once aggregation was enabled but it
was never turned off. Remove turning on RTS protection in the LQ command
completely as TX_CMD_FLG_PROT_REQUIRE gets set in iwl_mvm_set_tx_cmd
for every Tx which is part of an aggregation. This would already cause
RTS protection to be used during aggregations.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: set highest rate in VHT MCS Set
Eyal Shapira [Thu, 12 Dec 2013 13:53:14 +0000 (15:53 +0200)]
iwlwifi: mvm: set highest rate in VHT MCS Set

Set the Tx/Rx highest long GI rates in the VHT Supported MCS Set
field according to the chip capabilties.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: disable MCS9 Tx workaround
Eyal Shapira [Wed, 11 Dec 2013 07:32:28 +0000 (09:32 +0200)]
iwlwifi: mvm: rs: disable MCS9 Tx workaround

MCS9 introduces some corner cases in the current rs
algorithm which may lead to non optimal throughput and
instability in the throughput. Until all the corner
cases are resolved disable MCS9 for Tx as a workaround
which yields better throughput results as MCS8 is much
more stable.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Do not allow AP MAC context update if not active
Ilan Peer [Wed, 4 Dec 2013 14:47:14 +0000 (16:47 +0200)]
iwlwifi: mvm: Do not allow AP MAC context update if not active

Fix a regression introduced in "iwlwifi: mvm: fix ht protection flags"
where an AP/IBSS MAC context could have been updated even before the
context was added to the FW. This fix avoids the following warning:

WARNING: ... at .../drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c:1132
    iwl_mvm_mac_ctxt_changed+0x75/0x90 [iwlmvm]()
Changing inactive MAC 0c:8b:fd:01:1a:30/3
Modules linked in: [...]
Call Trace:
[<c16041fd>] dump_stack+0x41/0x52
[<c1041074>] warn_slowpath_common+0x84/0xa0
[<f80d8f45>] ? iwl_mvm_mac_ctxt_changed+0x75/0x90 [iwlmvm]
[<f80d8f45>] ? iwl_mvm_mac_ctxt_changed+0x75/0x90 [iwlmvm]
[<c1041133>] warn_slowpath_fmt+0x33/0x40
[<f80d8f45>] iwl_mvm_mac_ctxt_changed+0x75/0x90 [iwlmvm]
[<f80d517a>] iwl_mvm_bss_info_changed+0x22a/0x4b0 [iwlmvm]
[<c160831d>] ? mutex_unlock+0xd/0x10
[<f80d4678>] ? iwl_mvm_configure_filter+0x58/0x70 [iwlmvm]
[<f80d4f50>] ? iwl_mvm_mac_tx+0xc0/0xc0 [iwlmvm]
[<f8132d83>] ieee80211_bss_info_change_notify+0xa3/0x1d0 [mac80211]
[<f8149247>] ? ieee80211_del_virtual_monitor+0x127/0x1f0 [mac80211]
[<f8149cac>] ieee80211_do_open+0x12c/0xeb0 [mac80211]
[<c106c6de>] ? __raw_notifier_call_chain+0x1e/0x30
[<c106c70f>] ? raw_notifier_call_chain+0x1f/0x30
[<f814aa8d>] ieee80211_open+0x5d/0x60 [mac80211]
[<c1500c7b>] __dev_open+0xab/0x140
[<c160b39a>] ? _raw_spin_unlock_bh+0x2a/0x30
[<c1500f41>] __dev_change_flags+0x81/0x160
[<c10ab6fc>] ? __lock_is_held+0x3c/0x60
[<c15010d1>] dev_change_flags+0x21/0x60

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reported-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: fixup Makefile
Emmanuel Grumbach [Sun, 8 Dec 2013 08:48:13 +0000 (10:48 +0200)]
iwlwifi: mvm: fixup Makefile

debufs.o appeared twice in the Makefile. Fix that.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: refactor rate scale action decision
Eyal Shapira [Tue, 10 Dec 2013 22:55:36 +0000 (00:55 +0200)]
iwlwifi: mvm: rs: refactor rate scale action decision

Extract the scale action decision to a different function
in preparation of modifying it. While at it also convert
the scale action values from hardcoded values to a clear enum.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: remove unnecessary debug logs
Eyal Shapira [Tue, 10 Dec 2013 10:20:37 +0000 (12:20 +0200)]
iwlwifi: mvm: rs: remove unnecessary debug logs

The logs are emitted in a flow in which there were retries
and the rates in the rate table entry didn't match the active
or search table. This doesn't indicate a problem and is
expected in most cases where there will be retries for some
reason. Remove the logs.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: improve rates table algo
Eyal Shapira [Mon, 9 Dec 2013 11:02:56 +0000 (13:02 +0200)]
iwlwifi: mvm: rs: improve rates table algo

The new logic will attempt more rates with less retries
per rate. Also when starting off with MIMO it will
fallback to SISO with the same MCS and only then to Legacy.
Previously we fell back directly to Legacy.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: avoid recalc of supported legacy rate mask
Eyal Shapira [Mon, 9 Dec 2013 09:14:11 +0000 (11:14 +0200)]
iwlwifi: mvm: rs: avoid recalc of supported legacy rate mask

The supported legacy rate mask is initialized when rs
is initialized based on the remote peer supported rates.
There's no need to re mask it repeatedly with the supported
remote peer rates.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: refactor building the LQ command
Eyal Shapira [Wed, 4 Dec 2013 00:15:46 +0000 (02:15 +0200)]
iwlwifi: mvm: rs: refactor building the LQ command

Simplify the code a bit more by extracting the rates table
building logic into a separate function and handle setting
a fixed rate for debug in a separate flow.
Also avoid using and saving ucode rate format in different
places. Instead use rs_rate struct and convert to ucode format
only when filling the rates table in the LQ command.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Add and examine TLV flag for P2P client uAPSD support
Alexander Bondar [Tue, 12 Nov 2013 12:47:59 +0000 (14:47 +0200)]
iwlwifi: mvm: Add and examine TLV flag for P2P client uAPSD support

Current firmware doesn't handle well uAPSD in P2P Client.
When it will be fixed, the firmware will set a TLV flag to notify
the driver that uAPSD is supported in P2P client mode.
Check this flag when sending power command for P2P client.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: trans: turn set_pmi into an optional callback
Arik Nemtsov [Thu, 5 Dec 2013 16:31:45 +0000 (18:31 +0200)]
iwlwifi: trans: turn set_pmi into an optional callback

It is not currently implemented for SDIO, and not required for other slave
buses as well.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: trans: clear FW_ERROR status in common code
Arik Nemtsov [Wed, 4 Dec 2013 15:08:47 +0000 (17:08 +0200)]
iwlwifi: trans: clear FW_ERROR status in common code

Clear the FW_ERROR status before the common start_fw transport code.
Remove the transport specific clears.

After these patches the FW_ERROR flag is only set and cleared by common
transport code.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: trans: prevent reprobe on repeated FW errors before restart
Arik Nemtsov [Sun, 1 Dec 2013 11:50:40 +0000 (13:50 +0200)]
iwlwifi: trans: prevent reprobe on repeated FW errors before restart

In case a sync command timeouts or Tx is stuck while a FW error
interrupt arrives, we might call iwl_op_mode_nic_error twice before
a restart has been initiated. This will cause a reprobe. Unify calls
to this function at the transport level and only call it on the first
FW error in a given by checking the transport FW error flag.

While at it, remove the privately defined iwl_nic_error from PCIE code
and use the common callback instead.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: check iwl_nvm_init return value
Eliad Peller [Mon, 9 Dec 2013 11:15:02 +0000 (13:15 +0200)]
iwlwifi: mvm: check iwl_nvm_init return value

iwl_nvm_init() return value wasn't checked in some
path, which resulted in the following panic (if
there was some issue with the nvm):

Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = d0460000
[00000004] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP
Modules linked in: iwlmvm(+) iwlwifi mac80211 cfg80211 compat [last unloaded: compat]
PC is at iwl_mvm_mac_setup_register+0x12c/0x460 [iwlmvm]
LR is at 0x2710
pc : [<bf50dd4c>]    lr : [<00002710>]    psr: 20800013
sp : d00cfe18  ip : 0000081e  fp : d006b908
r10: d0711408  r9 : bf532e64  r8 : d006b5bc
r7 : d01af000  r6 : bf39cefc  r5 : d006ab00  r4 : d006b5a4
r3 : 00000001  r2 : 00000000  r1 : d006a120  r0 : d006b860

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: remove pointer to transport from op_mode
Emmanuel Grumbach [Sun, 8 Dec 2013 08:38:20 +0000 (10:38 +0200)]
iwlwifi: remove pointer to transport from op_mode

This pointer was not used anywhere.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: rs: move rs_program_fix_rate to cleanup ifdefs
Eyal Shapira [Tue, 3 Dec 2013 16:34:52 +0000 (18:34 +0200)]
iwlwifi: mvm: rs: move rs_program_fix_rate to cleanup ifdefs

Move rs_program_fix_rate right before it's caller where we're
already in the context of an ifdef CPTCFG_MAC80211_DEBUGFS so
we can get rid of the extra ifdefs surrounding the original
location.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: trans: prevent tx and cmds during FW error
Arik Nemtsov [Sun, 1 Dec 2013 11:02:18 +0000 (13:02 +0200)]
iwlwifi: trans: prevent tx and cmds during FW error

Stop Tx and commands from arriving to the transport layer when a FW
error has occurred. A HW recovery should take place before. Remove
transport specific checks of the same nature (note that not all
transports were protected).

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: trans: use a unified transport status
Arik Nemtsov [Sun, 1 Dec 2013 10:30:38 +0000 (12:30 +0200)]
iwlwifi: trans: use a unified transport status

The same bits are employed in all transport layers. Put the status
field in the common transport layer. This allows us to employ them
in common transport code.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: trans: divide stop_hw into stop_device/op_mode_leave
Arik Nemtsov [Sun, 24 Nov 2013 17:10:46 +0000 (19:10 +0200)]
iwlwifi: trans: divide stop_hw into stop_device/op_mode_leave

The stop_hw trans callback is not well defined. It is missing in many
cleanup flows and the division of labor between stop_device/stop_hw
is cumbersome. Remove stop_hw and use stop_device to perform both.
Implement this for all current transports.

PCIE needs some extra configuration the op-mode is leaving to configure
RF kill. Expose this explicitly as a new op_mode_leave trans callback.
Take the call to stop_device outside iwl_run_mvm_init_ucode, this
makes more sense and WARN when we want to run the INIT firmware while
it has run already.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: clarify smps_requests documentation
Johannes Berg [Wed, 4 Dec 2013 10:56:58 +0000 (11:56 +0100)]
iwlwifi: mvm: clarify smps_requests documentation

The documentation for smps_requests is unclear, rewrite it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: configure phy_ctxt with min_def
Eliad Peller [Thu, 31 Oct 2013 12:31:25 +0000 (14:31 +0200)]
iwlwifi: mvm: configure phy_ctxt with min_def

Configure the phy context to the minimum required
bandwidth, given by ctx->min_def.

Tuning to a narrower bandwidth should reduce the
noise level and consume less power.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: add multicast filtering support
Eliad Peller [Thu, 28 Nov 2013 12:08:50 +0000 (14:08 +0200)]
iwlwifi: mvm: add multicast filtering support

Configure the fw to filter multicast according to
the addresses given by mac80211.

Note that bssid should be given even if we want
to pass all the multicast frames.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: move iwl_mvm_set_tx_power to PHY area
Emmanuel Grumbach [Wed, 4 Dec 2013 11:53:39 +0000 (13:53 +0200)]
iwlwifi: mvm: move iwl_mvm_set_tx_power to PHY area

This is more related to phy contexts than to mac context.
Move this function to there.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: add per-vif power debugfs hooks
Alexander Bondar [Wed, 4 Dec 2013 08:13:24 +0000 (10:13 +0200)]
iwlwifi: mvm: add per-vif power debugfs hooks

This allows to tweak the power parameters per vif.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Enable power save on a single P2P client interface
Alexander Bondar [Mon, 2 Sep 2013 14:10:14 +0000 (17:10 +0300)]
iwlwifi: mvm: Enable power save on a single P2P client interface

Enable power save on P2P client interface only if it is the
only bound interface.
Avoid using uAPSD if P2P client is associated to GO that uses
opportunistic power save. This is due to current FW limitation.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Disable power save for monitor interface
Alexander Bondar [Wed, 23 Oct 2013 09:50:34 +0000 (11:50 +0200)]
iwlwifi: mvm: Disable power save for monitor interface

When monitor interface is activated device power save needs
to be disabled.
Re-consider power management status on other active
interfaces when monitor interface is bound or unbound.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Change power management dependency on multi MAC
Alexander Bondar [Tue, 27 Aug 2013 17:31:48 +0000 (20:31 +0300)]
iwlwifi: mvm: Change power management dependency on multi MAC

FW still does not support power management on multiple MAC interfaces.
Currently the driver enforce this limitation by disabling PM if second
interface is added. Change this behavior to allow PM on a single interface
even if other interfaces exist but not bound to any specific PHY.
PM will be enabled if only one single interface is bound.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Add uAPSD misbehaving AP notification handling
Alexander Bondar [Sun, 14 Apr 2013 17:59:37 +0000 (20:59 +0300)]
iwlwifi: mvm: Add uAPSD misbehaving AP notification handling

FW implements protective algorithm to identify AP's improper uAPSD
behavior. FW sends misbehaving AP notification in this case.
Add this notification handling. Avoid using uAPSD in next association
to the exactly same AP. Refactor iwl_mvm_power_build_cmd() to move
uAPSD related code to a separate function.

Signed-off-by: Alexander Bondar <alexander.bondar@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: publish Tx STBC support in VHT
Eyal Shapira [Tue, 12 Nov 2013 20:40:40 +0000 (22:40 +0200)]
iwlwifi: publish Tx STBC support in VHT

If the device is MIMO and VHT capable it supports Tx STBC.
Unlike HT, any chip that supports VHT also support STBC so
no need for a config parameter.
Using num_of_ants multiple times warranted caching it.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: set VHT beamformee STS cap correctly
Eyal Shapira [Sun, 3 Nov 2013 08:04:08 +0000 (10:04 +0200)]
iwlwifi: set VHT beamformee STS cap correctly

It was set to zero which reflects support of a single STS.
Set according to the number of Rx antennas which correctly
reflects the number of STSs the STA can receive in a VHT NDP.
This improves beamforming and has been tested to improve Rx
throughput.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: publish STBC support in HT
Eyal Shapira [Tue, 12 Nov 2013 20:37:28 +0000 (22:37 +0200)]
iwlwifi: publish STBC support in HT

Not all chips support STBC so allow this to be
another config parameter per chip type. If STBC
is supported then publish it in the HT caps.

Since 7260/7265/3160 chips support it - set the stbc
support bit.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: add a generic cipher scheme support
Max Stepanov [Tue, 27 Aug 2013 16:56:13 +0000 (19:56 +0300)]
iwlwifi: mvm: add a generic cipher scheme support

This patch adds a cipher scheme support to extend a set of
the supported ciphers. The driver reads a cipher scheme list TLV
from FW image and passes it to mac80211 on hw registration.
After the cipher schemes are registered the driver handles key
installation and Tx/Rx calls related to the new ciphers.

Signed-off-by: Max Stepanov <Max.Stepanov@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agoiwlwifi: mvm: Add Smart FIFO support
Lilach Edelstein [Sun, 6 Oct 2013 11:03:32 +0000 (13:03 +0200)]
iwlwifi: mvm: Add Smart FIFO support

Send firmware a Smart FIFO Configuration host command to allow
interrupt coalescing. The smart FIFO is enabled when there is
only one bound interface (other than  p2p devices which are
ignored) and it is of type station, and activated while the
station is associated.

Smart Fifo allows aggragations of DMA transactions and by that
causes processor and memory controller to stay for a longer time
on lower c-states, thus saving platform power.
Firmware relies on driver to activate and disable it.

Signed-off-by: Lilach Edelstein <lilach.edelstein@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
10 years agonl80211: add VHT support for set_bitrate_mask
Janusz Dziedzic [Thu, 5 Dec 2013 19:42:58 +0000 (20:42 +0100)]
nl80211: add VHT support for set_bitrate_mask

Add VHT MCS/NSS set support for nl80211_set_tx_bitrate_mask().
This should be used mainly for test purpose, to check
different MCS/NSS VHT combinations.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: read station mgmt keys via get_key call
Max Stepanov [Sun, 8 Dec 2013 11:31:29 +0000 (13:31 +0200)]
mac80211: read station mgmt keys via get_key call

Allow to read management keys stored in a station's gtk key
array with a get_key function.

Signed-off-by: Max Stepanov <Max.Stepanov@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: check pairwise key_idx on get_key call
Max Stepanov [Sun, 8 Dec 2013 11:30:52 +0000 (13:30 +0200)]
mac80211: check pairwise key_idx on get_key call

Verify that a pairwise key index value on ieee80211_get_key call
doesn't exceed the boundaries of the pairwise key array.

Signed-off-by: Max Stepanov <Max.Stepanov@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: align ieee80211_ibss_csa_beacon() with ieee80211_assign_beacon()
Luciano Coelho [Fri, 13 Dec 2013 19:13:51 +0000 (21:13 +0200)]
mac80211: align ieee80211_ibss_csa_beacon() with ieee80211_assign_beacon()

The return value of ieee80211_ibss_csa_beacon is not aligned with the
return value of ieee80211_assign_beacon().  For consistency and to be
able to use both functions with similar code, change
ieee80211_ibss_csa_beacon() not to send the bss changed notification
itself, but return what has changed so the caller can send the
notification instead.

Tested by: Simon Wunderlich <sw@simonwunderlich.de>
Acked by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: refactor ieee80211_ibss_process_chanswitch()
Luciano Coelho [Fri, 13 Dec 2013 19:13:50 +0000 (21:13 +0200)]
mac80211: refactor ieee80211_ibss_process_chanswitch()

Refactor ieee80211_ibss_process_chanswitch() to use
ieee80211_channel_switch() and avoid code duplication.

Tested by: Simon Wunderlich <sw@simonwunderlich.de>
Acked by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: update adjusting TBTT bit in beacon
Thomas Pedersen [Sun, 15 Dec 2013 21:14:16 +0000 (13:14 -0800)]
mac80211: update adjusting TBTT bit in beacon

This regression was introduced in "mac80211: cache mesh
beacon".

mesh_sync_offset_adjust_tbtt()  was assuming that the
beacon would be rebuilt in every single pre-tbtt
interrupt, but now the beacon update happens on the
workqueue, and it must be ready for immediate delivery to
the driver.

Save a pointer to the meshconf IE in the beacon_data (this
works because both the IE pointer and beacon buffer are
protected by the same rcu_{dereference,assign_pointer}())
for quick updates during pre-tbtt. This is faster and a
little prettier than iterating over the elements to find
the meshconf IE every time.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: reschedule sched scan after HW restart
David Spinadel [Sun, 8 Dec 2013 19:48:57 +0000 (21:48 +0200)]
mac80211: reschedule sched scan after HW restart

Keep the sched scan req when starting sched scan, and reschedule
it in case of HW restart during sched scan.
The upper layer don't have to know about the restart.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: make ieee80211_assign_beacon() static
Luciano Coelho [Sun, 8 Dec 2013 07:42:25 +0000 (09:42 +0200)]
mac80211: make ieee80211_assign_beacon() static

This function is not used anywhere else than in cfg.c, so there's no
need to export it.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: lock sdata in ieee80211_csa_connection_drop_work()
Luciano Coelho [Wed, 11 Dec 2013 18:39:46 +0000 (20:39 +0200)]
mac80211: lock sdata in ieee80211_csa_connection_drop_work()

We call ieee80211_ibss_disconnect(), which requires sdata to be
locked, so lock the sdata during ieee80211_csa_connection_drop_work().

Cc: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: let the driver reserve extra tailroom in beacons
Felix Fietkau [Sat, 14 Dec 2013 12:54:53 +0000 (13:54 +0100)]
mac80211: let the driver reserve extra tailroom in beacons

Can be used to add extra IEs (such as P2P NoA) without having to
reallocate the buffer.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: free all AP/VLAN keys at once
Johannes Berg [Wed, 4 Dec 2013 22:47:09 +0000 (23:47 +0100)]
mac80211: free all AP/VLAN keys at once

When the AP interface is stopped, free all AP and VLAN keys at
once to only require synchronize_net() once. Since that does
synchronize_net(), also move two such calls into the function
(using the new force_synchronize parameter) to avoid doing it
twice.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: optimise mixed AP/VLAN station removal
Johannes Berg [Wed, 4 Dec 2013 22:18:37 +0000 (23:18 +0100)]
mac80211: optimise mixed AP/VLAN station removal

Teach sta_info_flush() to optionally also remove stations
from all VLANs associated with an AP interface to optimise
the station removal (in particular, synchronize_net().)

To not have to add the vlans argument throughout, do some
refactoring.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: optimise synchronize_net() for sta_info_flush
Johannes Berg [Wed, 4 Dec 2013 22:12:31 +0000 (23:12 +0100)]
mac80211: optimise synchronize_net() for sta_info_flush

There's no reason to have one synchronize_net() for each
removed station, refactor the code slightly to have just
a single synchronize_net() for all stations.

Note that this is currently useless as hostapd removes
stations one by one and this coalescing never happens.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: move synchronize_net() before sta key removal
Johannes Berg [Wed, 4 Dec 2013 22:05:45 +0000 (23:05 +0100)]
mac80211: move synchronize_net() before sta key removal

There's no reason to do this inside the sta key removal
since the keys can only be reached through the sta (and
not by the driver at all) so once the sta can no longer
be reached, the keys are safe.

This will allow further optimisation opportunities with
multiple stations.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: don't delay station destruction
Johannes Berg [Wed, 4 Dec 2013 21:46:11 +0000 (22:46 +0100)]
mac80211: don't delay station destruction

If we can assume that stations are never referenced by the
driver after sta_state returns (and this is true since the
previous iwlmvm patch and for all other drivers) then we
don't need to delay station destruction, and don't need to
play tricks with rcu_barrier() etc.

This should speed up some scenarios like hostapd shutdown.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: move 4-addr sta pointer clearing before synchronize_rcu()
Johannes Berg [Wed, 4 Dec 2013 19:11:06 +0000 (20:11 +0100)]
mac80211: move 4-addr sta pointer clearing before synchronize_rcu()

The pointer should be cleared before synchronize_rcu() so that the
consequently dead station won't be found by any lookups in the TX
or RX paths.

Also check that the station is actually the one being removed, the
check is not needed because each 4-addr VLAN can only have a single
station and non-4-addr VLANs always have a NULL pointer there, but
the code is clearer this way (and we avoid the memory write.)

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoiwlwifi: mvm: use pre-RCU-sync sta removal operation
Johannes Berg [Wed, 4 Dec 2013 21:39:17 +0000 (22:39 +0100)]
iwlwifi: mvm: use pre-RCU-sync sta removal operation

iwlmvm relies on the current mac80211 behaviour of allowing
station pointers to be valid for an RCU grace period after
returning from the sta_state() callback. To optimise these
cases, this behaviour is going away, so make the driver use
the new sta_pre_rcu_remove() method to clear the pointer in
the fw_id_to_mac_id[] array.

Since this may happen while the station is still present in
the firmware, don't set the pointer to NULL but to -ENOENT
to mark this particular case. In client mode, the station
is kept even longer (until marking the MAC as unassociated)
so the drain flow must take this new behavior into account.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add pre-RCU-sync sta removal driver operation
Johannes Berg [Wed, 4 Dec 2013 21:39:17 +0000 (22:39 +0100)]
mac80211: add pre-RCU-sync sta removal driver operation

Currently, mac80211 allows drivers to keep RCU-protected station
references that are cleared when the station is removed from the
driver and consequently needs to synchronize twice, once before
removing the station from the driver (so it can guarantee that
the station is no longer used in TX towards the driver) and once
after the station is removed from the driver.

Add a new pre-RCU-synchronisation station removal operation to
the API to allow drivers to clear/invalidate their RCU-protected
station pointers before the RCU synchronisation.

This will allow removing the second synchronisation by changing
the driver API so that the driver may no longer assume a valid
RCU-protected pointer after sta_remove/sta_state returns.

The alternative to this would be to synchronize_rcu() in all the
drivers that currently rely on this behaviour (only iwlmvm) but
that would defeat the purpose.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoMerge remote-tracking branch 'wireless-next/master' into mac80211-next
Johannes Berg [Mon, 16 Dec 2013 10:23:45 +0000 (11:23 +0100)]
Merge remote-tracking branch 'wireless-next/master' into mac80211-next

10 years agoath9k: initialize retry chain flags in tx99 code
Lorenzo Bianconi [Mon, 9 Dec 2013 22:37:49 +0000 (23:37 +0100)]
ath9k: initialize retry chain flags in tx99 code

Initialize first chain flags in ath9k_build_tx99_skb() according to
configured channel mode and channel width

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoMAINTAINERS: remove myself as maintainer of TI WiLink drivers
Luciano Coelho [Mon, 9 Dec 2013 20:28:32 +0000 (22:28 +0200)]
MAINTAINERS: remove myself as maintainer of TI WiLink drivers

I don't have the time to maintain the TI WiLink WLAN drivers anymore.
Remove my name and mark them as Orphan.

Signed-off-by: Luciano Coelho <luca@coelho.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath5k: Reset Tx interrupt bits also on PISR
Nick Kossifidis [Sat, 7 Dec 2013 02:17:40 +0000 (02:17 +0000)]
ath5k: Reset Tx interrupt bits also on PISR

Some cards don't update the PISR properly when all SISR bits
for Tx interrupts are being cleared and as a result we get
interrupt storm. Since we handle all tx queues all together
(so we don't really use the SISR bits to do per-queue interrupt
handling), we can manualy update PISR by doing a write-to-clear
on its Tx interrupt bits.

Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agonfc: Fix FSF address in file headers
Jeff Kirsher [Fri, 6 Dec 2013 16:56:16 +0000 (08:56 -0800)]
nfc: Fix FSF address in file headers

Several files refer to an old address for the Free Software Foundation
in the file header comment.  Resolve by replacing the address with
the URL <http://www.gnu.org/licenses/> so that we do not have to keep
updating the header comments anytime the address changes.

CC: linux-wireless@vger.kernel.org
CC: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
CC: Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
CC: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agorfkill: Fix FSF address in file headers
Jeff Kirsher [Fri, 6 Dec 2013 11:32:14 +0000 (03:32 -0800)]
rfkill: Fix FSF address in file headers

Several files refer to an old address for the Free Software Foundation
in the file header comment.  Resolve by replacing the address with
the URL <http://www.gnu.org/licenses/> so that we do not have to keep
updating the header comments anytime the address changes.

CC: linux-wireless@vger.kernel.org
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agodrivers/net/wireless: Fix FSF address in file headers
Jeff Kirsher [Fri, 6 Dec 2013 11:32:13 +0000 (03:32 -0800)]
drivers/net/wireless: Fix FSF address in file headers

Several files refer to an old address for the Free Software Foundation
in the file header comment.  Resolve by replacing the address with
the URL <http://www.gnu.org/licenses/> so that we do not have to keep
updating the header comments anytime the address changes.

CC: linux-wireless@vger.kernel.org
CC: Simon Kelley <simon@thekelleys.org.uk>
CC: Christian Lamparter <chunkeey@googlemail.com>
CC: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoprism54: Fix FSF address in file headers
Jeff Kirsher [Fri, 6 Dec 2013 11:32:12 +0000 (03:32 -0800)]
prism54: Fix FSF address in file headers

Several files refer to an old address for the Free Software Foundation
in the file header comment.  Resolve by replacing the address with
the URL <http://www.gnu.org/licenses/> so that we do not have to keep
updating the header comments anytime the address changes.

CC: linux-wireless@vger.kernel.org
CC: "Luis R. Rodriguez" <mcgrof@gmail.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agort2x00: Fix FSF address in file headers
Jeff Kirsher [Fri, 6 Dec 2013 11:32:11 +0000 (03:32 -0800)]
rt2x00: Fix FSF address in file headers

Several files refer to an old address for the Free Software Foundation
in the file header comment.  Resolve by replacing the address with
the URL <http://www.gnu.org/licenses/> so that we do not have to keep
updating the header comments anytime the address changes.

CC: linux-wireless@vger.kernel.org
CC: Ivo van Doorn <IvDoorn@gmail.com>
CC: Gertjan van Wingerde <gwingerde@gmail.com>
CC: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agozd1211rw: Fix FSF address in file headers
Jeff Kirsher [Fri, 6 Dec 2013 11:32:10 +0000 (03:32 -0800)]
zd1211rw: Fix FSF address in file headers

Several files refer to an old address for the Free Software Foundation
in the file header comment.  Resolve by replacing the address with
the URL <http://www.gnu.org/licenses/> so that we do not have to keep
updating the header comments anytime the address changes.

CC: linux-wireless@vger.kernel.org
CC: Daniel Drake <dsd@gentoo.org>
CC: Ulrich Kunitz <kune@deine-taler.de>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoMerge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
John W. Linville [Wed, 11 Dec 2013 15:54:41 +0000 (10:54 -0500)]
Merge branch 'for-upstream' of git://git./linux/kernel/git/bluetooth/bluetooth-next

10 years agoMerge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
John W. Linville [Wed, 11 Dec 2013 15:49:24 +0000 (10:49 -0500)]
Merge branch 'for-john' of git://git./linux/kernel/git/iwlwifi/iwlwifi-next

10 years agoBluetooth: Fix handling of L2CAP Command Reject over LE
Johan Hedberg [Tue, 10 Dec 2013 08:52:48 +0000 (10:52 +0200)]
Bluetooth: Fix handling of L2CAP Command Reject over LE

If we receive an L2CAP command reject message over LE we should take
appropriate action on the corresponding channel. This is particularly
important when trying to interact with a remote pre-4.1 system using LE
CoC signaling messages. If we don't react to the command reject the
corresponding socket would not be notified until a connection timeout
occurs.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoath9k: Apply tuning caps for AR9330 and AR9485
Sujith Manoharan [Fri, 6 Dec 2013 10:58:54 +0000 (16:28 +0530)]
ath9k: Apply tuning caps for AR9330 and AR9485

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Fix internal regulator for AR955x
Sujith Manoharan [Fri, 6 Dec 2013 10:58:53 +0000 (16:28 +0530)]
ath9k: Fix internal regulator for AR955x

The internal regulator needs to be programmed
correctly for AR955x.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Enable manual peak calibration for AR9331 v1.1
Sujith Manoharan [Fri, 6 Dec 2013 10:58:52 +0000 (16:28 +0530)]
ath9k: Enable manual peak calibration for AR9331 v1.1

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Remove AR9330 v1.0 macro as it's not supported
Sujith Manoharan [Fri, 6 Dec 2013 10:58:51 +0000 (16:28 +0530)]
ath9k: Remove AR9330 v1.0 macro as it's not supported

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Fix regulatory compliance
Sujith Manoharan [Fri, 6 Dec 2013 10:58:50 +0000 (16:28 +0530)]
ath9k: Fix regulatory compliance

Adjusting the CCA registers for maximum permissible
noise floor in ETSI/Japan domains has to be done for
all AR9003 family chips.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Identify duplicate AR9565 v1.0 initvals
Sujith Manoharan [Fri, 6 Dec 2013 10:58:49 +0000 (16:28 +0530)]
ath9k: Identify duplicate AR9565 v1.0 initvals

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Identify duplicate AR9462 v2.0 initvals
Sujith Manoharan [Fri, 6 Dec 2013 10:58:48 +0000 (16:28 +0530)]
ath9k: Identify duplicate AR9462 v2.0 initvals

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Identify duplicate AR9485 initvals
Sujith Manoharan [Fri, 6 Dec 2013 10:58:47 +0000 (16:28 +0530)]
ath9k: Identify duplicate AR9485 initvals

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Update high power gain table for AR9300
Sujith Manoharan [Fri, 6 Dec 2013 10:58:46 +0000 (16:28 +0530)]
ath9k: Update high power gain table for AR9300

Now that the Buffalo-specific initvals have been
moved to a separate array, update the default high
power TX gain table for all AR9300 v2.2 devices.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Use a separate TX gain table for WZR-HP-G450H
Sujith Manoharan [Fri, 6 Dec 2013 10:58:45 +0000 (16:28 +0530)]
ath9k: Use a separate TX gain table for WZR-HP-G450H

The Buffalo device WZR-HP-G450H uses the index 3 for TX gain,
which is set to the high_power table currently. Later variants
of the router use the same index, but instead refer to the
low_ob_db gain table. This is not handled in the driver since
there is no way to distinguish board revisions and the high_power
table is used (incorrectly) for the newer variants.

By default, devices based on AR9300 using the TX gain index 3 have
to use the high_power table. To make sure that WZR-HP-G450H is not
broken when the high_power table is updated, use a separate array
based on information obtained from the platform data.

The current situation where only the original variant of WZR-HP-G450H
works properly stays unchanged.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Update AR9331 v1.2 initvals
Sujith Manoharan [Fri, 6 Dec 2013 10:58:44 +0000 (16:28 +0530)]
ath9k: Update AR9331 v1.2 initvals

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Update AR9331 v1.1 initvals
Sujith Manoharan [Fri, 6 Dec 2013 10:58:43 +0000 (16:28 +0530)]
ath9k: Update AR9331 v1.1 initvals

* Update radio/baseband/gain tables.
* Mark ar9331_modes_high_power_tx_gain_1p1 as a duplicate
* ar9331_1p1_mac_postamble is not a duplicate.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Remove AR955x INI duplicates
Sujith Manoharan [Fri, 6 Dec 2013 10:58:42 +0000 (16:28 +0530)]
ath9k: Remove AR955x INI duplicates

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Update mac_postamble for AR9003 family
Sujith Manoharan [Fri, 6 Dec 2013 10:58:41 +0000 (16:28 +0530)]
ath9k: Update mac_postamble for AR9003 family

Enable the ALWAYS_KEYSEARCH bit in the initvals. Currently
this is done in the driver, but adding this to the initvals
makes it easier to be in sync with the INI files given
by the systems engineering team.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Initialize baseband for DFS channels
Sujith Manoharan [Fri, 6 Dec 2013 10:58:40 +0000 (16:28 +0530)]
ath9k: Initialize baseband for DFS channels

Certain baseband registers require different values
to be programmed when operating in a DFS channel to
ensure that radar detection works correctly. This
is required for AR9300, AR9340 and AR9580.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Add initval arrays for DFS channels
Sujith Manoharan [Fri, 6 Dec 2013 10:58:39 +0000 (16:28 +0530)]
ath9k: Add initval arrays for DFS channels

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agortlwifi: rtl8192c-common: Fix sparse warning
Larry Finger [Fri, 6 Dec 2013 04:07:12 +0000 (22:07 -0600)]
rtlwifi: rtl8192c-common: Fix sparse warning

Sparse reports the following:

  CHECK   drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c:570:34: warning: dubious: !x & y

There should be a parens around the expression.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agowcn36xx: enable the beaconing in mesh mode
Chun-Yeow Yeoh [Fri, 6 Dec 2013 03:28:02 +0000 (11:28 +0800)]
wcn36xx: enable the beaconing in mesh mode

Enable the beaconing in wnc36xx by tweaking the tim offset and
force the use of AP-style beaconing. Otherwise, beaconing is not
working. The tim offset is set to 256. Otherwise, this will
overwrite mesh beacon submitted by mac80211.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: enable dfs for mesh mode
Chun-Yeow Yeoh [Wed, 4 Dec 2013 10:46:54 +0000 (18:46 +0800)]
ath9k: enable dfs for mesh mode

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: do not flood kmsg/dmesg with USB debug messages
Ujjal Roy [Tue, 3 Dec 2013 07:17:59 +0000 (23:17 -0800)]
mwifiex: do not flood kmsg/dmesg with USB debug messages

When TX data URB reaches high water mark the message
"data: -ENOSR is returned" is printed.
This is not an error case, so change it to debug print.

Signed-off-by: Ujjal Roy <royujjal@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: remove redundant goto exit_remove statement
Amitkumar Karwar [Tue, 3 Dec 2013 07:17:57 +0000 (23:17 -0800)]
mwifiex: remove redundant goto exit_remove statement

The check for 'priv' pointer is redundant. 'priv' won't
be used later in this routine.

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>
10 years agomwifiex: update statistics for bridged packets on AP interface
Ujjal Roy [Tue, 3 Dec 2013 07:17:56 +0000 (23:17 -0800)]
mwifiex: update statistics for bridged packets on AP interface

The bridged packets are updated to statistics on both TX and RX
paths. Also fix a typo in the comment.

Signed-off-by: Ujjal Roy <royujjal@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: correct TX byte count statistics
Ujjal Roy [Tue, 3 Dec 2013 07:17:55 +0000 (23:17 -0800)]
mwifiex: correct TX byte count statistics

The skb is modified in sending the TX packet. Save the original
packet length to a variable so that we can get the correct
statistics update.

Signed-off-by: Ujjal Roy <royujjal@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: correct RX byte count statistics
Ujjal Roy [Tue, 3 Dec 2013 07:17:54 +0000 (23:17 -0800)]
mwifiex: correct RX byte count statistics

The skb is modified in processing the RX packet. Save the original
packet length to a variable so that we can get the correct
statistics update.

Signed-off-by: Ujjal Roy <royujjal@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: fix rx_pending count imbalance
Ujjal Roy [Tue, 3 Dec 2013 07:17:53 +0000 (23:17 -0800)]
mwifiex: fix rx_pending count imbalance

RX packets are handled in different paths. Not all paths have
decrement of rx_pending counter. This patch fixes the counter
imbalance.

Signed-off-by: Ujjal Roy <royujjal@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: avoid using variable name eth_hdr
Bing Zhao [Tue, 3 Dec 2013 07:17:52 +0000 (23:17 -0800)]
mwifiex: avoid using variable name eth_hdr

eth_hdr is defined in kernel. Use a different variable name in
our functions.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: fix an issue with Appletalk devices
Amitkumar Karwar [Tue, 3 Dec 2013 07:17:51 +0000 (23:17 -0800)]
mwifiex: fix an issue with Appletalk devices

SNAP/LLC header in the AARP packet is being stripped off while
preparing an EthernetII header.
Annex M, Table M.3 in 802.11 spec says that some header
(ex. AppleTalk AARP(2)) should pass through untouched.
This patch modifies the check to exclude/include EthernetII
header translation for special cases.

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>
10 years agomwifiex: remove rfc1042_eth_hdr variable
Amitkumar Karwar [Tue, 3 Dec 2013 07:17:50 +0000 (23:17 -0800)]
mwifiex: remove rfc1042_eth_hdr variable

Use 'rfc1042_header' available in net/wireless/util.c

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>
10 years agomwifiex: declare snap_type as __be16 variable
Amitkumar Karwar [Tue, 3 Dec 2013 07:17:49 +0000 (23:17 -0800)]
mwifiex: declare snap_type as __be16 variable

Actually we are updating snap_type with h_proto (__be16 variable)
in ethernet frame header. Hence endianness conversion is not
required.

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>
10 years agomwifiex: use little-endian variables in firmware structures
Ujjal Roy [Tue, 3 Dec 2013 07:17:48 +0000 (23:17 -0800)]
mwifiex: use little-endian variables in firmware structures

The firmware expects the command structure members in little
endianness.

Signed-off-by: Ujjal Roy <royujjal@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agobcma: pci: remove DEFINE_PCI_DEVICE_TABLE macro
Jingoo Han [Mon, 2 Dec 2013 23:00:27 +0000 (08:00 +0900)]
bcma: pci: remove DEFINE_PCI_DEVICE_TABLE macro

Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro
is not preferred.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>