GitHub/LineageOS/android_kernel_motorola_exynos9610.git
10 years agoath9k: Clear offchannel state properly
Sujith Manoharan [Sun, 16 Nov 2014 00:41:06 +0000 (06:11 +0530)]
ath9k: Clear offchannel state properly

When a pending roc or scan operation is cancelled,
the offchannel operation is cleared, but the offchannel
state in the main scheduler is not cleared. This causes
problems since an active GO will try to process a stale
offchannel request that was deferred earlier. Fix this
by clearing the state when there is no pending offchannel
(roc/scan) operation.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Fix thermometer programming
Sujith Manoharan [Sun, 16 Nov 2014 00:41:05 +0000 (06:11 +0530)]
ath9k: Fix thermometer programming

The registers that control the on-chip thermometer
need to be programmed based on the chainmask that
the solution supports, not the chainmask that is
present in the eeprom.

Cc: Miaoqing Pan <miaoqing@qca.qualcomm.com>
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Store the chip chainmask in HW capabilities
Sujith Manoharan [Sun, 16 Nov 2014 00:41:04 +0000 (06:11 +0530)]
ath9k: Store the chip chainmask in HW capabilities

Cc: Miaoqing Pan <miaoqing@qca.qualcomm.com>
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Enable TSF2 for generic HW timers
Sujith Manoharan [Sun, 16 Nov 2014 00:41:03 +0000 (06:11 +0530)]
ath9k: Enable TSF2 for generic HW timers

The base TSF is used for HW timers 0..7, but chips
in the AR9003 family and above can support more generic
timers. To use them, however, a second HW TSF needs to
be enabled. This patch allows usage of the extra
timers by starting the second TSF properly.

The extra set of HW timers is apparently also present
in AR9287, but we enable it only for the AR9003 family.

Cc: Kobi Cohen-Arazi <kobic@qti.qualcomm.com>
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Fix LED configuration
Sujith Manoharan [Sun, 16 Nov 2014 00:41:02 +0000 (06:11 +0530)]
ath9k: Fix LED configuration

On some x86 platforms, the LED gpio is active high
instead of active low. Identify such cards and modify
the GPIO usage to make sure LED works properly.

Cc: Russell Hu <rhu@qca.qualcomm.com>
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Use new QCA953x initvals
Miaoqing Pan [Sun, 16 Nov 2014 00:41:01 +0000 (06:11 +0530)]
ath9k: Use new QCA953x initvals

This patch updates the initvals for QCA953x v1.1 and v2.0

Signed-off-by: Miaoqing Pan <miaoqing@qca.qualcomm.com>
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: Update QCA953x initvals
Sujith Manoharan [Sun, 16 Nov 2014 00:41:00 +0000 (06:11 +0530)]
ath9k: Update QCA953x initvals

* Duplicates have been marked.
* New initvals for 1.1 and 2.0 versions.
* xPA support.
* Fix for low power issue.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: Enable software crypto for mgmt frame in Tx for USB devices
Chun-Yeow Yeoh [Sat, 15 Nov 2014 19:05:41 +0000 (03:05 +0800)]
ath9k_htc: Enable software crypto for mgmt frame in Tx for USB devices

In secured mesh, the unicast mgmt frame is encrypted using
the same key that used for encrypting the unicast data frame.
This patch "ath9k_htc_firmware: fix the offset of CCMP header
for mesh data frame" applied to open-ath9k-htc-firmware allows
the ath9k_htc to be loaded without "nohwcrypt=1". Unfortunately,
this is not working and we still need CCMP encryption of
transmitted management frames to be done in software.

So this patch allows the software encryption for transmitted
management frame to be done in software but remain the hardware
decryption for received management frame.

This patch is tested with the following hardwares:
- TP-Link TL-WN821N v3 802.11n [Atheros AR7010+AR9287]
- AR9271 802.11n

and managed to work with peer mesh STA equipped with ath9k.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k|ath9k_htc: Seperate the software crypto flag for Tx and Rx
Chun-Yeow Yeoh [Sat, 15 Nov 2014 19:05:40 +0000 (03:05 +0800)]
ath9k|ath9k_htc: Seperate the software crypto flag for Tx and Rx

Use the sw_mgmt_crypto_tx flag to trigger the CCMP encryption
for transmitted management frames to be done in software while
the sw_mgmt_crypto_rx flag is used to trigger the CCMP decryption
for received management frames to be done in software.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: enable auto TDLS support for SD8887
Avinash Patil [Thu, 13 Nov 2014 16:24:18 +0000 (21:54 +0530)]
mwifiex: enable auto TDLS support for SD8887

Auto TDLS support is enabled per device. As of now add this
feature only for SD8887.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: support for parsing TDLS discovery frames
Avinash Patil [Thu, 13 Nov 2014 16:24:17 +0000 (21:54 +0530)]
mwifiex: support for parsing TDLS discovery frames

This patch adds support for parsing TDLS discovery
frames. After parsing, we update peer RSSI information.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: add auto TDLS support
Avinash Patil [Thu, 13 Nov 2014 16:24:16 +0000 (21:54 +0530)]
mwifiex: add auto TDLS support

This patch adds auto TDLS support to mwifiex.

Auto TDLS functionality works as follows:
1. Whenever userspace application has triggered TDLS connection with
any peer, driver would store this peer mac address details in its database.
2. After this driver whenever driver receives packet on direct link,
it would store rssi and timestamp in peer information.
3. Whenever a packet is to be transmitted to non-AP peer in station mode,
driver would check if TDLS link can be established by looking at peer RSSI
information. Driver would initiate TDLS setup in such cases.
4. Periodic timer is used for updating peer information.
5. Auto TDLS peer list & timer are cleared during disconnection or driver unload.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: wmm support for TDLS link
Avinash Patil [Thu, 13 Nov 2014 16:24:15 +0000 (21:54 +0530)]
mwifiex: wmm support for TDLS link

This patch adds WMM support for TDLS link. Patch
add WMM info IE for TDLS setup request/response frames
while WMM parameter for TDLS confirm frame.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: do not explicitly disable TDLS link during teardown
Avinash Patil [Thu, 13 Nov 2014 16:24:14 +0000 (21:54 +0530)]
mwifiex: do not explicitly disable TDLS link during teardown

When Teardown event from FW is indicated to userspace, userspace
would trigger tdls_oper handler to disable TDLS link.
We need not do this explicitly here.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: update rx packet descriptor structure to match FW
Avinash Patil [Thu, 13 Nov 2014 16:24:13 +0000 (21:54 +0530)]
mwifiex: update rx packet descriptor structure to match FW

RX packet descriptor structure has recently changed in FW.
This patch updates rxpd accordingly.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: fix the assignment of hw queues for mesh interface
Chun-Yeow Yeoh [Wed, 12 Nov 2014 08:40:19 +0000 (16:40 +0800)]
ath9k: fix the assignment of hw queues for mesh interface

We need to assign the hw queues for mesh interface. Otherwise,
we are not able to bring up the mesh interface due to the
IEEE80211_INVAL_HW_QUEUE error.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: common-spectral: don't depend from ATH9K_DEBUGFS
Oleksij Rempel [Wed, 12 Nov 2014 07:32:08 +0000 (08:32 +0100)]
ath9k: common-spectral: don't depend from ATH9K_DEBUGFS

we can have here two variants. Add
ATH9K_CMN_DEBUGFS y if ATH9K_CMN_DEBUGFS || ATH9K_HTC_DEBUGFS
wich will add more configurations and testcases. Or remove ATH9K_HTC_DEBUGFS
which need more time to be done.

So, make common-spectral ignore ATH9K_DEBUGFS option for now.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: ath9k_htc_op_ps_wakeup() can be static
kbuild test robot [Tue, 11 Nov 2014 22:24:17 +0000 (06:24 +0800)]
ath9k_htc: ath9k_htc_op_ps_wakeup() can be static

drivers/net/wireless/ath/ath9k/htc_drv_init.c:56:6: sparse: symbol 'ath9k_htc_op_ps_wakeup' was not declared. Should it be static?
drivers/net/wireless/ath/ath9k/htc_drv_init.c:61:6: sparse: symbol 'ath9k_htc_op_ps_restore' was not declared. Should it be static?
drivers/net/wireless/ath/ath9k/htc_drv_init.c:66:19: sparse: symbol 'ath9k_htc_ps_ops' was not declared. Should it be static?

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: ath9k_op_ps_wakeup() can be static
kbuild test robot [Tue, 11 Nov 2014 22:19:48 +0000 (06:19 +0800)]
ath9k: ath9k_op_ps_wakeup() can be static

drivers/net/wireless/ath/ath9k/init.c:91:6: sparse: symbol 'ath9k_op_ps_wakeup' was not declared. Should it be static?
drivers/net/wireless/ath/ath9k/init.c:96:6: sparse: symbol 'ath9k_op_ps_restore' was not declared. Should it be static?
drivers/net/wireless/ath/ath9k/init.c:101:19: sparse: symbol 'ath9k_ps_ops' was not declared. Should it be static?

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: module load parameter for interface creation
Avinash Patil [Wed, 5 Nov 2014 14:08:11 +0000 (19:38 +0530)]
mwifiex: module load parameter for interface creation

This patch adds module load parameter driver_mode for mwifiex
which would enable driver to create AP or P2P client interface while loading
module. driver_mode is bitmap of interface modes for station, AP and
P2P client.

Station interface is created by default and is unaffected by driver_mode
parameter.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: fix misc debugfs when not using chan context
Ben Greear [Tue, 4 Nov 2014 23:22:49 +0000 (15:22 -0800)]
ath9k: fix misc debugfs when not using chan context

When channel-context is not enabled, all vifs belong to
the first context, but it is not configured as 'assigned'.

Fix misc debugfs file to print out info for non-assigned
contexts, and also print whether ctx is assigned or not.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoMerge branch 'for-linville' of git://github.com/kvalo/ath
John W. Linville [Mon, 17 Nov 2014 20:28:39 +0000 (15:28 -0500)]
Merge branch 'for-linville' of git://github.com/kvalo/ath

Kalle Valo <kvalo@qca.qualcomm.com> says:

"One ath6kl patch and rest for ath10k, but nothing really major which
stands out. Most notable:

o fix resume (Bartosz)

o firmware restart is now faster and more reliable (Michal)

o it's now possible to test hardware restart functionality without
  crashing the firmware using hw-restart parameter with
  simulate_fw_crash debugfs file (Michal)"

Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath10k: fix mismatched wmi api call
Peter Oh [Mon, 17 Nov 2014 14:44:15 +0000 (16:44 +0200)]
ath10k: fix mismatched wmi api call

Fix to use v10.2 wmi call for firmware v10.2.
It turned out that peer association function was using
v10.1 wmi call for v10.2 firmware during code review.

Signed-off-by: Peter Oh <poh@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
10 years agoath10k: advertise support for AP mode channel width changes
Rajkumar Manoharan [Mon, 17 Nov 2014 14:44:15 +0000 (16:44 +0200)]
ath10k: advertise support for AP mode channel width changes

This will enable AP mode to change channel width dynamically
based on 20/40 intolerance report sent by associated client.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
10 years agoath10k: add modpram 'skip_otp' to ignore empty otp error during BMI
Rajkumar Manoharan [Mon, 17 Nov 2014 14:44:14 +0000 (16:44 +0200)]
ath10k: add modpram 'skip_otp' to ignore empty otp error during BMI

This patch would help bring up wifi interface with default board
data in case of failures in otp download. It is useful for initial
calibration.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
10 years agoath10k: handle ieee80211 header and payload tracing separately
Rajkumar Manoharan [Wed, 5 Nov 2014 13:44:31 +0000 (19:14 +0530)]
ath10k: handle ieee80211 header and payload tracing separately

For packet log, the transmitted frame 802.11 header alone is sufficient.
Recording entire packet is also consuming lot of disk space. To optimize
this, tx and rx data tracepoints are splitted into header and payload
tracepoints.

To record tx ieee80211 headers

     trace-cmd record -e ath10k_tx_hdr

To record complete packets

     trace-cmd record -e ath10k_tx_hdr -e ath10k_tx_payload

Cc: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
10 years agoath9k_htc: remove return of value in empty definintion of ath9k_htc_deinit_debug
John W. Linville [Tue, 11 Nov 2014 22:12:17 +0000 (17:12 -0500)]
ath9k_htc: remove return of value in empty definintion of ath9k_htc_deinit_debug

Cc: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: simplify ad hoc join capability info
James Cameron [Tue, 11 Nov 2014 05:21:28 +0000 (16:21 +1100)]
mwifiex: simplify ad hoc join capability info

While preparing an ad-hoc start command, the capability info bitmap is
needlessly set from the command, and then the ESS bit cleared.

Change to set the bitmap directly without reference to the command.

Signed-off-by: James Cameron <quozl@laptop.org>
Acked-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agowlcore: make wlcore_cmd_send_failsafe() static
Luciano Coelho [Mon, 10 Nov 2014 07:25:57 +0000 (09:25 +0200)]
wlcore: make wlcore_cmd_send_failsafe() static

The wlcore_cmd_send_failsafe() function is only called in the cmd.c
file, where it is definde.  Make it static.

Additionally, move the EXPORT_SYMBOL macro for wl1271_cmd_send() to
the right place.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agowlcore: check minimum buffer size in some cmd_send functions
Luciano Coelho [Mon, 10 Nov 2014 07:25:17 +0000 (09:25 +0200)]
wlcore: check minimum buffer size in some cmd_send functions

Check for the minimum required buffer length in wlcore_cmd_send() and
wlcore_cmd_configure_failsafe.  This ensures that we will never try to
use a buffer that is smaller than the required header.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: fix version display problem on big endian platforms
Amitkumar Karwar [Fri, 7 Nov 2014 10:14:52 +0000 (02:14 -0800)]
mwifiex: fix version display problem on big endian platforms

It's been observed that wrong firmware version (ex. 66.14.96.p9
instead of 14.66.9.p96) is displayed on big endian platforms.

The problem is fixed here.

Reported-by: Daniel Mosquera <daniel.mosquera@ctag.com>
Tested-by: Daniel Mosquera <daniel.mosquera@ctag.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: add spectral scan debug interface
Oleksij Rempel [Thu, 6 Nov 2014 07:53:38 +0000 (08:53 +0100)]
ath9k_htc: add spectral scan debug interface

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: process rx spectral packets
Oleksij Rempel [Thu, 6 Nov 2014 07:53:37 +0000 (08:53 +0100)]
ath9k_htc: process rx spectral packets

use code provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: trigger spectral scan on set_channel
Oleksij Rempel [Thu, 6 Nov 2014 07:53:36 +0000 (08:53 +0100)]
ath9k_htc: trigger spectral scan on set_channel

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: set initial spec_config values
Oleksij Rempel [Thu, 6 Nov 2014 07:53:35 +0000 (08:53 +0100)]
ath9k_htc: set initial spec_config values

use values provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: add struct ath_spec_scan_priv to ath9k_htc_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:34 +0000 (08:53 +0100)]
ath9k_htc: add struct ath_spec_scan_priv to ath9k_htc_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: add ath_ps_ops bindings
Oleksij Rempel [Thu, 6 Nov 2014 07:53:33 +0000 (08:53 +0100)]
ath9k_htc: add ath_ps_ops bindings

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k_htc: fix rs_datalen conversation
Oleksij Rempel [Thu, 6 Nov 2014 07:53:32 +0000 (08:53 +0100)]
ath9k_htc: fix rs_datalen conversation

For some reason it didn't coused obvious problems.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: For AR9271 chipsets, set count = 0 for endless samples.
Oleksij Rempel [Thu, 6 Nov 2014 07:53:31 +0000 (08:53 +0100)]
ath9k: For AR9271 chipsets, set count = 0 for endless samples.

not sure why.
Initially provided by Ashish Patro <patro@cs.wisc.edu>

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: move spectral.* to common-spectral.*
Oleksij Rempel [Thu, 6 Nov 2014 07:53:30 +0000 (08:53 +0100)]
ath9k: move spectral.* to common-spectral.*

and rename exports from ath9k_spectral_* to ath9k_cmn_spectral_*

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: move ath9k_spectral_scan_ from main.c to spectral.c
Oleksij Rempel [Thu, 6 Nov 2014 07:53:29 +0000 (08:53 +0100)]
ath9k: move ath9k_spectral_scan_ from main.c to spectral.c

Now we should be ready to make this code common.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: make ath9k_spectral_scan_ do not depend on ath_softc
Oleksij Rempel [Thu, 6 Nov 2014 07:53:28 +0000 (08:53 +0100)]
ath9k: make ath9k_spectral_scan_ do not depend on ath_softc

last preparation before moving ath9k_spectral_scan_ to spectral.c

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: use ath_common instead of ieee80211_hw in ath9k_spectral_scan_
Oleksij Rempel [Thu, 6 Nov 2014 07:53:27 +0000 (08:53 +0100)]
ath9k: use ath_common instead of ieee80211_hw in ath9k_spectral_scan_

we don't have here any ieee80211_hw dependencies any way.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: use ath_ps_ops in ath9k_spectral_scan_
Oleksij Rempel [Thu, 6 Nov 2014 07:53:26 +0000 (08:53 +0100)]
ath9k: use ath_ps_ops in ath9k_spectral_scan_

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: add ath_ps_ops bindings
Oleksij Rempel [Thu, 6 Nov 2014 07:53:25 +0000 (08:53 +0100)]
ath9k: add ath_ps_ops bindings

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath: add struct ath_ps_ops
Oleksij Rempel [Thu, 6 Nov 2014 07:53:24 +0000 (08:53 +0100)]
ath: add struct ath_ps_ops

we will need it to make common code

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: remove all struct ath_softc dependencies from spectral code
Oleksij Rempel [Thu, 6 Nov 2014 07:53:23 +0000 (08:53 +0100)]
ath9k: remove all struct ath_softc dependencies from spectral code

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: add ath_hw to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:22 +0000 (08:53 +0100)]
ath9k: add ath_hw to ath_spec_scan_priv

spectral code mostly depends on ath_hw, not on ath_softc

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: use struct dentry by ath9k_spectral_init_debug
Oleksij Rempel [Thu, 6 Nov 2014 07:53:21 +0000 (08:53 +0100)]
ath9k: use struct dentry by ath9k_spectral_init_debug

this will alow us to make ath_softc independent code.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: move spec_config to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:20 +0000 (08:53 +0100)]
ath9k: move spec_config to ath_spec_scan_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: move spectral_mode to ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:19 +0000 (08:53 +0100)]
ath9k: move spectral_mode to ath_spec_scan_priv

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: add struct ath_spec_scan_priv
Oleksij Rempel [Thu, 6 Nov 2014 07:53:18 +0000 (08:53 +0100)]
ath9k: add struct ath_spec_scan_priv

and move rfs_chan_spec_scan to this struct. We will need it
for common spectral scan code.

Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: fix warning while starting BSS
Avinash Patil [Wed, 5 Nov 2014 11:34:31 +0000 (17:04 +0530)]
mwifiex: fix warning while starting BSS

We see this warning while starting mwifiex AP:
Unsupported RX-STBC, default to 2x2

This was happening because of wrong offset while copying HT
capabilities from BSS configuration of start_ap handler.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: do not setup AMPDU/AMSDU with broadcast receiver
Avinash Patil [Wed, 5 Nov 2014 11:34:30 +0000 (17:04 +0530)]
mwifiex: do not setup AMPDU/AMSDU with broadcast receiver

It is observed that device sometimes sends BA setup requests for
broadcast mac address.
This patch adds a check to avoid checking availability of
AMPDU/AMSDU streams for broadcast mac address.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: fix out of memory issue observed for USB chipsets
Amitkumar Karwar [Wed, 5 Nov 2014 11:34:29 +0000 (17:04 +0530)]
mwifiex: fix out of memory issue observed for USB chipsets

On some platforms, system goes out of memory during heavy
Rx traffic with our USB chipsets.

In case of SDIO/PCIe, after receiving 50 packets in Rx queue
we stop processing interrupts till packets pending fall below
low threshold i.e 20. We don't have similar logic for USB,
so if host platform is slow, we would hit a case where firmware
keeps on pushing packets at high speed than driver/kernel can
process.

We will stop submitting URBs for Rx data when pending packet
count reaches high threshold and restart them when enough
packets are consumed to solve the problem.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=85071
Reported-by: Marek Belisko <marek.belisko@gmail.com>
Tested-by: Marek Belisko <marek.belisko@gmail.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: remove data_complete handler
Avinash Patil [Wed, 5 Nov 2014 11:34:28 +0000 (17:04 +0530)]
mwifiex: remove data_complete handler

This patch removes redundant data complete handler.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agomwifiex: rx workqueue support for USB interface
Avinash Patil [Wed, 5 Nov 2014 11:34:27 +0000 (17:04 +0530)]
mwifiex: rx workqueue support for USB interface

This patch adds RX workqueue support for USB interfaces.
Currently rx_pending is applicable for cmd/events and Rx
data in USB interface. Let's use it only for Rx data.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoath9k: add support for reporting tx power to mac80211
Felix Fietkau [Tue, 4 Nov 2014 15:56:57 +0000 (16:56 +0100)]
ath9k: add support for reporting tx power to mac80211

Track it per channel context instead of in the softc

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agobcma: get IRQ numbers from dt
Hauke Mehrtens [Sat, 1 Nov 2014 15:54:56 +0000 (16:54 +0100)]
bcma: get IRQ numbers from dt

It is not possible to auto detect the irq numbers used by the cores on
an arm SoC. If bcma was registered with device tree it will search for
some device tree nodes with the irq number and add it to the core
configuration.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agobcma: make it possible to specify a IRQ num in bcma_core_irq()
Hauke Mehrtens [Sat, 1 Nov 2014 15:54:55 +0000 (16:54 +0100)]
bcma: make it possible to specify a IRQ num in bcma_core_irq()

This moves bcma_core_irq() to main.c and add a extra parameter with a
number so that we can return different irq number for devices with more
than one.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
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 [Tue, 11 Nov 2014 21:30:48 +0000 (16:30 -0500)]
Merge branch 'for-upstream' of git://git./linux/kernel/git/bluetooth/bluetooth-next

10 years ago6lowpan: move skb_free from error paths in decompression
Martin Townsend [Thu, 6 Nov 2014 19:15:13 +0000 (19:15 +0000)]
6lowpan: move skb_free from error paths in decompression

Currently we ensure that the skb is freed on every error path in IPHC
decompression which makes it easy to introduce skb leaks.  By centralising
the skb_free into the receive function it makes future decompression routines
easier to maintain.  It does come at the expense of ensuring that the skb
passed into the decompression routine must not be copied.

Signed-off-by: Martin Townsend <mtownsend1973@gmail.com>
Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoBluetooth: Sort switch cases by opcode's numeric value
Kuba Pawlak [Thu, 6 Nov 2014 18:36:53 +0000 (19:36 +0100)]
Bluetooth: Sort switch cases by opcode's numeric value

Opcodes in switch/case in hci_cmd_status_evt are not sorted
by value. This patch restores proper ordering.

Signed-off-by: Kuba Pawlak <kubax.t.pawlak@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoBluetooth: Clear role switch pending flag
Kuba Pawlak [Thu, 6 Nov 2014 18:36:52 +0000 (19:36 +0100)]
Bluetooth: Clear role switch pending flag

If role switch was rejected by the controller and HCI Event: Command Status
returned with status "Command Disallowed" (0x0C) the flag
HCI_CONN_RSWITCH_PEND remains set. No further role switches are
possible as this flag prevents us from sending any new HCI Switch Role
requests and the only way to clear it is to receive a valid
HCI Event Switch Role.

This patch clears the flag if command was rejected.

2013-01-01 00:03:44.209913 < HCI Command: Switch Role (0x02|0x000b) plen 7
    bdaddr BC:C6:DB:C4:6F:79 role 0x00
    Role: Master
2013-01-01 00:03:44.210867 > HCI Event: Command Status (0x0f) plen 4
    Switch Role (0x02|0x000b) status 0x0c ncmd 1
    Error: Command Disallowed

Signed-off-by: Kuba Pawlak <kubax.t.pawlak@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoat86rf230: fix simple_return.cocci warnings
Fengguang Wu [Thu, 6 Nov 2014 07:31:57 +0000 (15:31 +0800)]
at86rf230: fix simple_return.cocci warnings

drivers/net/ieee802154/at86rf230.c:1365:1-3: WARNING: end returns can be simpified

 Simplify a trivial if-return sequence.  Possibly combine with a
 preceding function call.
Generated by: scripts/coccinelle/misc/simple_return.cocci

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: fix typo promisuous to promiscuous
Alexander Aring [Wed, 5 Nov 2014 19:51:29 +0000 (20:51 +0100)]
mac802154: fix typo promisuous to promiscuous

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: use IEEE802154_EXTENDED_ADDR_LEN
Alexander Aring [Wed, 5 Nov 2014 19:51:28 +0000 (20:51 +0100)]
mac802154: use IEEE802154_EXTENDED_ADDR_LEN

This patch removes the af_ieee802154 defines and use the
IEEE802154_EXTENDED_ADDR_LEN. We should do this everywhere in the
802.15.4 subsystem because af_ieee802154 should be normally an uapi
header.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoat86rf230: add force slotted operation bit
Alexander Aring [Wed, 5 Nov 2014 19:51:27 +0000 (20:51 +0100)]
at86rf230: add force slotted operation bit

This patch adds a force setting of slotted operation bit. The atben
chips sometimes set these bit. The reason is unknown. Nevertheless we
don't support slotted operation so we set this bit now force while
probing.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoat86rf230: generate random perm extended address
Alexander Aring [Wed, 5 Nov 2014 19:51:26 +0000 (20:51 +0100)]
at86rf230: generate random perm extended address

This patch adds support for a random generated perm extended address for
the at86rf230 driver.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: add support for perm_extended_addr
Alexander Aring [Wed, 5 Nov 2014 19:51:25 +0000 (20:51 +0100)]
mac802154: add support for perm_extended_addr

This patch adding support for a perm extended address. This is useful
when a device supports an eeprom with a programmed static extended address.
If a device doesn't support such eeprom or serial registers then the
driver should generate a random extended address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: cleanup ieee802154_netdev_to_extended_addr
Alexander Aring [Wed, 5 Nov 2014 19:51:24 +0000 (20:51 +0100)]
mac802154: cleanup ieee802154_netdev_to_extended_addr

This patch cleanups the ieee802154_be64_to_le64 to have a similar
function like ieee802154_le64_to_be64 only with switched source and
destionation types.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: add ieee802154_le64_to_be64
Alexander Aring [Wed, 5 Nov 2014 19:51:23 +0000 (20:51 +0100)]
mac802154: add ieee802154_le64_to_be64

This patch adds a new function to convert a le64 to a be64. This is
useful to translate an extended address to a netdev dev_addr.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: add ieee802154_random_extended_addr
Alexander Aring [Wed, 5 Nov 2014 19:51:22 +0000 (20:51 +0100)]
ieee802154: add ieee802154_random_extended_addr

This patch adds a new function to generate a random IEEE 802.15.4
extended address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: add IEEE802154_EXTENDED_ADDR_LEN
Alexander Aring [Wed, 5 Nov 2014 19:51:21 +0000 (20:51 +0100)]
ieee802154: add IEEE802154_EXTENDED_ADDR_LEN

This patch adds a new define for getting the length of an extended
address.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: add ieee802154_vif struct
Alexander Aring [Wed, 5 Nov 2014 19:51:20 +0000 (20:51 +0100)]
mac802154: add ieee802154_vif struct

This patch adds an ieee802154_vif similar like the ieee80211_vif which
holds the interface type and maybe further more attributes like the
ieee80211_vif structure.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Cc: Varka Bhadram <varkabhadram@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: add default interface registration
Alexander Aring [Wed, 5 Nov 2014 19:51:19 +0000 (20:51 +0100)]
mac802154: add default interface registration

This patch adds a default interface registration for a wpan interface
type. Currently the 802.15.4 subsystem need to call userspace tools to
add an interface. This patch is like mac80211 handling for registration
a station interface type by default.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: remove mlme get_phy callback
Alexander Aring [Wed, 5 Nov 2014 19:51:18 +0000 (20:51 +0100)]
ieee802154: remove mlme get_phy callback

This patch removes the get_phy callback from mlme ops structure. Instead
we doing a dereference via ieee802154_ptr dev pointer. For backwards
compatibility we need to run get_device after dereference wpan_phy via
ieee802154_ptr.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: rework interface registration
Alexander Aring [Wed, 5 Nov 2014 19:51:17 +0000 (20:51 +0100)]
ieee802154: rework interface registration

This patch meld mac802154_netdev_register into ieee802154_if_add
function. Also we have now only one alloc_netdev call with one interface
setup routine "ieee802154_if_setup" instead two different one for each
interface type. This patch checks via runtime the interface type and do
different handling now. Additional we add the wpan_dev struct in
ieee802154_sub_if_data and set the new ieee802154_ptr while netdev
registration. This behaviour is very similar the mac80211 netdev
registration functionality.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: move dev_hold out of ieee802154_if_add
Alexander Aring [Wed, 5 Nov 2014 19:51:16 +0000 (20:51 +0100)]
mac802154: move dev_hold out of ieee802154_if_add

This patch moves the dev_hold call inside of nl-phy ieee802154_add_iface
function. The ieee802154_add_iface is the only one function which use the
ieee802154_if_add function and contains the corresponding dev_put call.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: move interface add handling in iface
Alexander Aring [Wed, 5 Nov 2014 19:51:15 +0000 (20:51 +0100)]
mac802154: move interface add handling in iface

This patch moves and renames the mac802154_add_iface and
mac802154_netdev_register functions into iface.c. The function
mac802154_add_iface is renamed to ieee802154_if_add which is a similar naming
convention like mac80211.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac802154: move interface del handling in iface
Alexander Aring [Wed, 5 Nov 2014 19:51:14 +0000 (20:51 +0100)]
mac802154: move interface del handling in iface

This patch moves and rename the mac802154_del_iface function into
iface.c and rename the function to ieee802154_if_remove which is a similar
naming convention like mac80211.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: remove nl802154 unused functions
Alexander Aring [Wed, 5 Nov 2014 19:51:13 +0000 (20:51 +0100)]
ieee802154: remove nl802154 unused functions

The include/net/nl802154.h file contains a lot of prototypes which are
not used inside of ieee802154 subsystem. This patch removes this file
and make the only one used prototype "ieee802154_nl_start_confirm" as
static declaration in ieee802154/nl-mac.c

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoieee802154: rework wpan_phy index assignment
Alexander Aring [Wed, 5 Nov 2014 19:51:12 +0000 (20:51 +0100)]
ieee802154: rework wpan_phy index assignment

This patch reworks the wpan_phy index incrementation. It's now similar
like wireless wiphy index incrementation. We move the wpan_phy index
attribute inside of cfg802154_registered_device and use atomic
operations instead locking mechanism via wpan_phy_mutex.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoMerge tag 'mac80211-next-for-john-2014-11-04' of git://git.kernel.org/pub/scm/linux...
John W. Linville [Tue, 4 Nov 2014 21:18:12 +0000 (16:18 -0500)]
Merge tag 'mac80211-next-for-john-2014-11-04' of git://git./linux/kernel/git/jberg/mac80211-next

Johannes Berg <johannes@sipsolutions.net> says:

"This relatively large batch of changes is comprised of the
following:
 * large mac80211-hwsim changes from Ben, Jukka and a bit myself
 * OCB/WAVE/11p support from Rostislav on behalf of the Czech Technical
   University in Prague and Volkswagen Group Research
 * minstrel VHT work from Karl
 * more CSA work from Luca
 * WMM admission control support in mac80211 (myself)
 * various smaller fixes, spelling corrections, and minor API additions"

Conflicts:
drivers/net/wireless/ath/wil6210/cfg80211.c

Signed-off-by: John W. Linville <linville@tuxdriver.com>
10 years agoieee802154: || vs && in ieee802154_is_valid_extended_addr()
Dan Carpenter [Tue, 4 Nov 2014 08:55:09 +0000 (11:55 +0300)]
ieee802154: || vs && in ieee802154_is_valid_extended_addr()

The ieee802154_is_valid_extended_addr() always returns true because
there is a typo.  The || should be &&.  Neither 0x0000000000000000ULL
nor 0xffffffffffffffffULL are valid addresses.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years ago6lowpan: fix udp header compression when using raw sockets
Simon Vincent [Tue, 4 Nov 2014 15:29:51 +0000 (15:29 +0000)]
6lowpan: fix udp header compression when using raw sockets

If you use RAW sockets the transport header offset is not set by the
ipv6 stack so when we get to the udp header compression it does not
compress the right part of the packet.

This patch adds a check for this scenario and sets the transport
header offset.

Signed-off-by: Simon Vincent <simon.vincent@xsilon.com>
Acked-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agomac80211: replace restart_complete() with reconfig_complete()
Eliad Peller [Tue, 4 Nov 2014 09:43:54 +0000 (11:43 +0200)]
mac80211: replace restart_complete() with reconfig_complete()

Drivers might want to know also when mac80211 has
completed reconfiguring after resume (e.g. in order
to know when frames can be passed to mac80211).

Rename restart_complete() to a more-generic reconfig_complete(),
and add a new enum to indicate the reconfiguration type.

Update the current users with the new prototype.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: increase U-APSD max service period length
Andrei Otcheretianski [Tue, 4 Nov 2014 09:33:04 +0000 (11:33 +0200)]
mac80211: increase U-APSD max service period length

Deliver up to 128 frames during service period instead of 8 if
unlimited is specified by the client during association.
8 was just an arbitrary value; so is 128 since unlimited can
be any number.

However for large traffic bursts, increasing this value looks
reasonable. Also, it seems that a few certification tests
expect more frames to be delivered during SP.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: handle RIC data element in reassociation request
Johannes Berg [Mon, 27 Oct 2014 11:03:19 +0000 (12:03 +0100)]
mac80211: handle RIC data element in reassociation request

When the RIC data element (RDE) is included in the IEs coming
from userspace for an association request, its handling is
currently broken as any IEs that are contained within it would
be split off from it and inserted again after all the IEs that
mac80211 generates (e.g. HT, VHT.)

To fix this, treat the RIC element specially, and stop after
it only when we find something that doesn't actually belong to
it. This assumes userspace is actually correctly building it,
directly after the fast BSS transition IE and before all the
others like extended capabilities.

This leaves as a potential problem the case where userspace is
building the following IEs:

[RDE] [vendor resource description] [vendor non-resource IE]

In this case, we'd erroneously consider all three IEs to be
part of the RIC data together, and not split them between the
two vendor IEs. Unfortunately, it isn't easily possible to
distinguish vendor IEs, so this isn't easy to fix. Luckily,
this case is rare as normally wpa_supplicant will include an
extended capabilities IE in the IEs, and that certainly will
break the two vendor IEs apart correctly.

Reviewed-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Beni Lev <beni.lev@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: 802.11p OCB mode support
Rostislav Lisovy [Mon, 3 Nov 2014 09:33:19 +0000 (10:33 +0100)]
mac80211: 802.11p OCB mode support

This patch adds 802.11p OCB (Outside the Context of a BSS) mode
support.

When communicating in OCB mode a mandatory wildcard BSSID
(48 '1' bits) is used.

The EDCA parameters handling function was changed to support
802.11p specific values.

The insertion of a newly discovered STAs is done in the similar way
as in the IBSS mode -- through the deferred insertion.

The OCB mode uses a periodic 'housekeeping task' for expiration of
disconnected STAs (in the similar manner as in the MESH mode).

New Kconfig option for verbose OCB debugging outputs is added.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: 802.11p OCB mode handling
Rostislav Lisovy [Mon, 3 Nov 2014 09:33:18 +0000 (10:33 +0100)]
cfg80211: 802.11p OCB mode handling

This patch adds new iface type (NL80211_IFTYPE_OCB) representing
the OCB (Outside the Context of a BSS) mode.
When establishing a connection to the network a cfg80211_join_ocb
function is called (particular nl80211_command is added as well).
A mandatory parameters during the ocb_join operation are 'center
frequency' and 'channel width (5/10 MHz)'.

Changes done in mac80211 are minimal possible required to avoid
many warnings (warning: enumeration value 'NL80211_IFTYPE_OCB'
not handled in switch) during compilation. Full functionality
(where needed) is added in the following patch.

Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add support for driver tx power reporting
Felix Fietkau [Sat, 25 Oct 2014 22:32:53 +0000 (00:32 +0200)]
mac80211: add support for driver tx power reporting

The configured tx power is often limited by hardware capabilities,
channel settings, antenna configuration, etc.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
[fix tracing compilation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoieee80211: add "max length of AMPDU" enum for VHT
Eran Harary [Mon, 3 Nov 2014 18:06:47 +0000 (20:06 +0200)]
ieee80211: add "max length of AMPDU" enum for VHT

Maximum length of AMPDU that an STA can receive in VHT.
length = 2 ^ (13 + max_ampdu_length_exp) - 1.

Signed-off-by: Eran Harary <eran.harary@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoBluetooth: Fix sparse warnings in RFCOMM
Johan Hedberg [Tue, 4 Nov 2014 06:45:45 +0000 (08:45 +0200)]
Bluetooth: Fix sparse warnings in RFCOMM

This patch fixes the following sparse warnings in rfcomm/core.c:

net/bluetooth/rfcomm/core.c:391:16: warning: dubious: x | !y
net/bluetooth/rfcomm/core.c:546:24: warning: dubious: x | !y

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoath10k: fix pm resume after suspend
Bartosz Markowski [Fri, 31 Oct 2014 08:03:43 +0000 (09:03 +0100)]
ath10k: fix pm resume after suspend

Firmware was crashing when we were trying to warm reset it
after suspend. This was due to the fact that target registeres
can be accessed only if the hardware is awaken.

This patch makes sure to awake the device also on the hif up,
not only in case of probe call.

Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
10 years agoath6kl: remove incorrect reset_resume handler
Alexey Khoroshilov [Fri, 31 Oct 2014 00:45:37 +0000 (02:45 +0200)]
ath6kl: remove incorrect reset_resume handler

Existing implementation of reset_resume handler just calls
ath6kl_usb_remove() that deallocates all resources.
It can lead to double free, etc. on disconnect.

The patch removes reset_resume handler,
so usb core could conservatively reset the driver.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
10 years agonetdevice: add ieee802154_ptr to net_device
Alexander Aring [Sun, 2 Nov 2014 05:44:54 +0000 (06:44 +0100)]
netdevice: add ieee802154_ptr to net_device

This patch adds an ieee802154_ptr to the net_device structure.
Furthermore the 802.15.4 subsystem will introduce a nl802154 framework
which is similar like the nl80211 framework and a wpan_dev structure.
The wpan_dev structure will hold additional net_device attributes like
address options which are 802.15.4 specific. In the upcoming nl802154
implementation we will introduce a NL802154_FLAG_NEED_WPAN_DEV like
NL80211_FLAG_NEED_WDEV. For this flag an ieee802154_ptr in net_device is
needed. Additional we can access the wpan_dev attributes in upper layers
like IEEE 802.15.4 6LoWPAN easily. Current solution is a complicated
callback interface and getting these values over subif data structure
in mac802154.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
10 years agoBluetooth: Fix invalid response for 'Start Discovery' command
Szymon Janc [Mon, 3 Nov 2014 13:20:56 +0000 (14:20 +0100)]
Bluetooth: Fix invalid response for 'Start Discovery' command

According to Management Interface API 'Start Discovery' command should
generate a Command Complete event on failure. Currently kernel is
sending Command Status on early errors. This results in userspace
ignoring such event due to invalid size.

bluetoothd[28499]: src/adapter.c:trigger_start_discovery()
bluetoothd[28499]: src/adapter.c:cancel_passive_scanning()
bluetoothd[28499]: src/adapter.c:start_discovery_timeout()
bluetoothd[28499]: src/adapter.c:start_discovery_complete() status 0x0a
bluetoothd[28499]: Wrong size of start discovery return parameters

Reported-by: Jukka Taimisto <jtt@codenomicon.com>
Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: Add hci_conn_lookup_type() helper function
Marcel Holtmann [Mon, 3 Nov 2014 04:16:08 +0000 (05:16 +0100)]
Bluetooth: Add hci_conn_lookup_type() helper function

Some drivers require knowledge of what connection handle is assigned
to what connection link type (ACL or SCO/eSCO). Instead of having each
driver implement connection tracking, provide a simple helper function
for lookup of the link type.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
10 years agoBluetooth: btusb: Add internal callback for USB bulk rx data
Marcel Holtmann [Mon, 3 Nov 2014 04:16:07 +0000 (05:16 +0100)]
Bluetooth: btusb: Add internal callback for USB bulk rx data

Some vendors require special handling of the rx data from the USB
bulk endpoints. For that case provide an internal callback that
can overwrite it with a custom receive function.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>