linux-2.6-microblaze.git
10 years agomac80211: add ieee80211_tx_status_noskb
Felix Fietkau [Wed, 19 Nov 2014 19:08:13 +0000 (20:08 +0100)]
mac80211: add ieee80211_tx_status_noskb

This can be used by drivers that cannot reliably map tx status
information onto specific skbs.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac0211: add a helper function for fixing up tx status rates
Felix Fietkau [Wed, 19 Nov 2014 19:08:12 +0000 (20:08 +0100)]
mac0211: add a helper function for fixing up tx status rates

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: pass tx info to ieee80211_lost_packet instead of an skb
Felix Fietkau [Wed, 19 Nov 2014 19:08:11 +0000 (20:08 +0100)]
mac80211: pass tx info to ieee80211_lost_packet instead of an skb

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: minstrel_ht: switch to .tx_status_noskb
Felix Fietkau [Wed, 19 Nov 2014 19:08:10 +0000 (20:08 +0100)]
mac80211: minstrel_ht: switch to .tx_status_noskb

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: minstrel: switch to .tx_status_noskb
Felix Fietkau [Wed, 19 Nov 2014 19:08:09 +0000 (20:08 +0100)]
mac80211: minstrel: switch to .tx_status_noskb

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add tx_status_noskb to rate_control_ops
Felix Fietkau [Wed, 19 Nov 2014 19:08:08 +0000 (20:08 +0100)]
mac80211: add tx_status_noskb to rate_control_ops

This op works like .tx_status, except it does not need access to the
skb. This will be used by drivers that cannot match tx status
information to specific packets.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: minstrel_ht: move aggregation check to .get_rate()
Felix Fietkau [Wed, 19 Nov 2014 19:08:07 +0000 (20:08 +0100)]
mac80211: minstrel_ht: move aggregation check to .get_rate()

Preparation for adding a no-skb tx status path

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: remove unneeded initialisations in nl80211_set_reg
Johannes Berg [Fri, 28 Nov 2014 13:54:31 +0000 (14:54 +0100)]
cfg80211: remove unneeded initialisations in nl80211_set_reg

Some variables are assigned unconditionally, remove their
initialisations to help avoid introducing errors later.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: leave invalid channels on regdomain change
Arik Nemtsov [Thu, 27 Nov 2014 07:44:55 +0000 (09:44 +0200)]
cfg80211: leave invalid channels on regdomain change

When the regulatory settings change, some channels might become invalid.
Disconnect interfaces acting on these channels, after giving userspace
code a grace period to leave them.

This mode is currently opt-in, and not all interface operating modes are
supported for regulatory-enforcement checks. A wiphy that wishes to use
the new enforcement code must specify an appropriate regulatory flag,
and all its supported interface modes must be supported by the checking
code.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Reviewed-by: Luis R. Rodriguez <mcgrof@suse.com>
[fix some indentation, typos]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add more missing checks for VHT tx rates
Felix Fietkau [Fri, 21 Nov 2014 22:29:14 +0000 (23:29 +0100)]
mac80211: add more missing checks for VHT tx rates

Fixes a crash on attempting to calculate the frame duration for a VHT
packet (which needs to be handled by hw/driver instead).

Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: make WEXT compatibility unselectable
Johannes Berg [Fri, 28 Nov 2014 11:14:06 +0000 (12:14 +0100)]
cfg80211: make WEXT compatibility unselectable

This option has been marked for deprecation and removal for
a little more than two years, but it's not been very clearly
signalled since it was always possible to just select it.

Make it unselectable now to signal anyone who's still using
it after all this time more clearly. They can still get it
back, but only by patching the kernel.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: copy chandef from AP vif to VLANs
Felix Fietkau [Mon, 24 Nov 2014 17:12:16 +0000 (18:12 +0100)]
mac80211: copy chandef from AP vif to VLANs

Instead of keeping track of all those special cases where
VLAN interfaces have no bss_conf.chandef, just make sure
they have the same as the AP interface they belong to.

Among others, this fixes a crash getting a VLAN's channel
from userspace since a NULL channel is returned as a good
result (return value 0) for VLANs since the commit below.

Cc: stable@vger.kernel.org [3.18 only]
Fixes: c12bc4885f4b3 ("mac80211: return the vif's chandef in ieee80211_cfg_get_channel()")
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
[rewrite commit log]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agonl80211: don't crash sending invalid chandef
Johannes Berg [Thu, 27 Nov 2014 16:26:56 +0000 (17:26 +0100)]
nl80211: don't crash sending invalid chandef

One of the cases for an invalid channel definition is that
the channel pointer is NULL, in which case the warning is
a bit late since we'll dereference the pointer. Bail out
of the function upon warning about this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: clean up beacon loss CQM event
Johannes Berg [Wed, 26 Nov 2014 11:42:02 +0000 (12:42 +0100)]
cfg80211: clean up beacon loss CQM event

Having it as a sub-event for RSSI thresholds is very ugly,
but luckily no userspace actually uses the events yet.

Move the event to its own function call internally and to
its own event attribute in nl80211.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: refactor the various CQM event sending code
Johannes Berg [Wed, 26 Nov 2014 11:37:43 +0000 (12:37 +0100)]
cfg80211: refactor the various CQM event sending code

Much of the code can be shared by moving it into helper functions
for the CQM event sending.

Also move the code closer together, even in the header file.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: check if channels allow 80 MHz for VHT probe requests
Johannes Berg [Mon, 24 Nov 2014 14:49:44 +0000 (15:49 +0100)]
mac80211: check if channels allow 80 MHz for VHT probe requests

If there are no channels allowing 80 MHz to be used, then the
station isn't really VHT capable even if the driver and device
support it in general. In this case, exclude the VHT capability
IE from probe request frames.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: remove pointless channel lookup in survey code
Johannes Berg [Fri, 21 Nov 2014 14:24:31 +0000 (15:24 +0100)]
cfg80211: remove pointless channel lookup in survey code

We have a channel pointer, and we use its center frequency
to look up a channel pointer - which will thus be exactly
the same as the original pointer.

Remove that pointless lookup and just use the pointer.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: disable 80+80/160 in VHT correctly
Johannes Berg [Mon, 24 Nov 2014 15:51:33 +0000 (16:51 +0100)]
mac80211: disable 80+80/160 in VHT correctly

The supported bandwidth field is a two-bit field, not a bitmap,
so treat it accordingly when disabling 80+80 or 160 MHz.

Note that we can only advertise "80+80 and 160" or "160", not
"80+80" by itself, so disabling 160 also disables 80+80.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoRevert "mac80211_hwsim: VHT add 160MHz width support"
Johannes Berg [Mon, 24 Nov 2014 15:39:03 +0000 (16:39 +0100)]
Revert "mac80211_hwsim: VHT add 160MHz width support"

This reverts commit c17aa52c5bf571533cc8561292f7316b9216eddc.

It was wrong, IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ
already implies that 160 MHz is supported, as it isn't a bitmap
but rather a value in a 2-bit field.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211_hwsim: Send alpha2 only if non-zero
Patrik Flykt [Fri, 21 Nov 2014 13:08:02 +0000 (15:08 +0200)]
mac80211_hwsim: Send alpha2 only if non-zero

A properly set alpha2 value consists of two chars that both contain
letters or digits. If no value is set, both chars keep their initial
value zero. Therefore do not send the alpha2 parameter to user space
if either of the characters has been left at its initial zero value.

Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: minstrel_ht: add a small optimization to minstrel_aggr_check
Felix Fietkau [Sat, 15 Nov 2014 23:27:55 +0000 (00:27 +0100)]
mac80211: minstrel_ht: add a small optimization to minstrel_aggr_check

Check the queue mapping earlier, skb->queue_mapping is more likely than
skb->data to still be in d-cache.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: notify drivers on sta rate table changes
Johannes Berg [Tue, 18 Nov 2014 23:10:42 +0000 (00:10 +0100)]
mac80211: notify drivers on sta rate table changes

This allows drivers with a firmware or chip-based rate lookup table to
use the most recent default rate selection without having to get it from
per-packet data or explicit ieee80211_get_tx_rate calls

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agonl80211: Broadcast CMD_NEW_INTERFACE and CMD_DEL_INTERFACE
Tomasz Bursztyka [Wed, 12 Nov 2014 14:26:45 +0000 (16:26 +0200)]
nl80211: Broadcast CMD_NEW_INTERFACE and CMD_DEL_INTERFACE

Let the other listeners being notified when a new or del interface
command has been issued, thus reducing later necessary request to be in
sync with current context.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211-hwsim: Add HWSIM_CMD_GET_RADIO command
Patrik Flykt [Wed, 12 Nov 2014 14:42:40 +0000 (16:42 +0200)]
mac80211-hwsim: Add HWSIM_CMD_GET_RADIO command

HWSIM_CMD_GET_RADIO returns information about a specific radio id or
all of them in response to a dump. Create the netlink skb or use the
one provided by the dump functionality. Use the existing attribute
appending function to fill in the same attributes when creating a
new hwsim radio.

Save alpha2 and struct ieee80211_regdomain in the hwsim data or else
they will be lost in the depths of regulatory infrastructure.

Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211-hwsim: Factor out netlink attribute appending
Patrik Flykt [Wed, 12 Nov 2014 14:42:39 +0000 (16:42 +0200)]
mac80211-hwsim: Factor out netlink attribute appending

Factor out netlink message attribute appending in order to reuse it
with later code. As a result move netlink skb allocation to the
calling function.

Signed-off-by: Patrik Flykt <patrik.flykt@linux.intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agonl80211: Replace interface socket owner attribute with more generic one
Jukka Rissanen [Thu, 13 Nov 2014 15:25:14 +0000 (17:25 +0200)]
nl80211: Replace interface socket owner attribute with more generic one

Replace NL80211_ATTR_IFACE_SOCKET_OWNER attribute with more generic
NL80211_ATTR_SOCKET_OWNER that can be used with other commands
that interface creation.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211-hwsim: remove unnecessary hwname check
Johannes Berg [Wed, 19 Nov 2014 17:51:55 +0000 (18:51 +0100)]
mac80211-hwsim: remove unnecessary hwname check

The hwname will always be set if idx is negative (as it's
a u32 read into an s64 it can't overflow either) so we can
remove the unnecessary check for hwname being non-NULL.

This was reported by smatch.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211-hwsim: hwname is always known so use the value from wiphy
Jukka Rissanen [Fri, 14 Nov 2014 11:16:34 +0000 (13:16 +0200)]
mac80211-hwsim: hwname is always known so use the value from wiphy

We can always know the hwname of the radio so use the value
from wiphy.

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: protect fools returning NULL in add_virtual_intf
Rafał Miłecki [Fri, 14 Nov 2014 17:43:28 +0000 (18:43 +0100)]
cfg80211: protect fools returning NULL in add_virtual_intf

Callback add_virtual_intf is supposed to return ERR_PTR and trying to
return NULL results in some "Unable to handle kernel paging request",
etc. As it may be complicated to debug & trace, let's catch it (WARN).

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: explicitly initialize some fields in custom reg path
Arik Nemtsov [Sun, 16 Nov 2014 14:37:47 +0000 (16:37 +0200)]
cfg80211: explicitly initialize some fields in custom reg path

Explicitly initialize the DFS state and beacon found state when handling
channels in the custom regulatory path.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Acked-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: update missing fields in custom regulatory path
Arik Nemtsov [Sun, 16 Nov 2014 14:37:46 +0000 (16:37 +0200)]
cfg80211: update missing fields in custom regulatory path

Some channels fields were not being updated in the custom regulatory
path. Update them according to the code in handle_channel().

Signed-off-by: Jonathan Doron <jonathanx.doron@intel.com>
Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Acked-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: skip legacy rate mask handling for VHT rates
Felix Fietkau [Sat, 15 Nov 2014 02:48:54 +0000 (03:48 +0100)]
mac80211: skip legacy rate mask handling for VHT rates

The rate mask code currently assumes that a rate is legacy if
IEEE80211_TX_RC_MCS is not set. This might be the cause of bogus VHT
rates being reported with minstrel_ht.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: don't allow 40MHz tx rates in case of 20MHz chandef
Eliad Peller [Tue, 11 Nov 2014 16:11:22 +0000 (18:11 +0200)]
mac80211: don't allow 40MHz tx rates in case of 20MHz chandef

When 20MHz chandef is used, 40MHz rates shouldn't be
used (by the rate-control algorithm), even if the sta
ht capabilities indicate support for it.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Singed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211_hwsim: support scanning with random MAC address
Johannes Berg [Thu, 12 Jun 2014 20:41:00 +0000 (22:41 +0200)]
mac80211_hwsim: support scanning with random MAC address

This adds support for scanning with random MAC address for
both software and hardware scan.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: allow drivers to support NL80211_SCAN_FLAG_RANDOM_ADDR
Johannes Berg [Thu, 12 Jun 2014 20:24:31 +0000 (22:24 +0200)]
mac80211: allow drivers to support NL80211_SCAN_FLAG_RANDOM_ADDR

Allow drivers to support NL80211_SCAN_FLAG_RANDOM_ADDR with software
based scanning and generate a random MAC address for them for every
scan request with the flag.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: rcu-ify scan and scheduled scan request pointers
Johannes Berg [Wed, 19 Nov 2014 10:55:49 +0000 (11:55 +0100)]
mac80211: rcu-ify scan and scheduled scan request pointers

In order to use the scan and scheduled scan request pointers during
RX to check for randomisation, make them accessible using RCU.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: allow drivers to support random MAC addresses for scan
Johannes Berg [Thu, 12 Jun 2014 19:39:05 +0000 (21:39 +0200)]
cfg80211: allow drivers to support random MAC addresses for scan

Add the necessary feature flags and a scan flag to support using
random MAC addresses for scan while unassociated.

The configuration for this supports an arbitrary MAC address
value and mask, so that any kind of configuration (e.g. fixed
OUI or full 46-bit random) can be requested. Full 46-bit random
is the default when no other configuration is passed.

Also add a small helper function to use the addr/mask correctly.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: remove redundant check
Eliad Peller [Wed, 12 Nov 2014 08:08:29 +0000 (10:08 +0200)]
mac80211: remove redundant check

local->scan_req was tested in the previous line, so it
can't be NULL.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: add wowlan net-detect support
Luciano Coelho [Wed, 17 Sep 2014 08:55:28 +0000 (11:55 +0300)]
cfg80211: add wowlan net-detect support

Add a new WoWLAN API to enable net-detect as a wake up trigger.
Net-detect allows the device to scan in the background while the
host is asleep to wake up the host system when a matching network
is found.

Reuse the scheduled scan attributes to specify how the scan is
performed while suspended and the matches that will trigger a
wake event.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: refactor nl80211_start_sched_scan so it can be reused
Luciano Coelho [Mon, 10 Nov 2014 14:13:46 +0000 (16:13 +0200)]
cfg80211: refactor nl80211_start_sched_scan so it can be reused

For net detect, we will need to reuse most of the scheduled scan
parsing function, but not all, so split out the attributes parsing
part out of the main start sched_scan function.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: synchronously reserve TID per station
Liad Kaufman [Wed, 19 Nov 2014 11:47:38 +0000 (13:47 +0200)]
mac80211: synchronously reserve TID per station

In TDLS (e.g., TDLS off-channel) there is a requirement for
some drivers to supply an unused TID between the AP and the
device to the FW, to allow sending PTI requests and to allow
the FW to aggregate on a specific TID for better throughput.

To ensure that the allocated TID is indeed unused, this patch
introduces an API for blocking the driver from TXing on that
TID.

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add specific-queue flushing support
Liad Kaufman [Sun, 9 Nov 2014 16:50:21 +0000 (18:50 +0200)]
mac80211: add specific-queue flushing support

If the HW supports IEEE80211_HW_QUEUE_CONTROL, allow
flushing only specific queues rather than all of them.

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add TDLS channel-switch Rx flow
Arik Nemtsov [Sun, 9 Nov 2014 16:50:20 +0000 (18:50 +0200)]
mac80211: add TDLS channel-switch Rx flow

When receiving a TDLS channel switch request or response, parse the frame
and call a new tdls_recv_channel_switch op in the low level driver with
the parsed data.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: introduce TDLS channel switch ops
Arik Nemtsov [Sun, 9 Nov 2014 16:50:19 +0000 (18:50 +0200)]
mac80211: introduce TDLS channel switch ops

Implement the cfg80211 TDLS channel switch ops and introduce new mac80211
ones for low-level drivers.
Verify low-level driver support for the new ops when using the relevant
wiphy feature bit. Also verify the peer supports channel switching before
passing the command down.

Add a new STA flag to track the off-channel state with the TDLS peer and
make sure to cancel the channel-switch if the peer STA is unexpectedly
removed.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add parsing of TDLS specific IEs
Arik Nemtsov [Sun, 9 Nov 2014 16:50:18 +0000 (18:50 +0200)]
mac80211: add parsing of TDLS specific IEs

These are used in TDLS channel switching code.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg80211: introduce TDLS channel switch commands
Arik Nemtsov [Wed, 19 Nov 2014 10:54:26 +0000 (12:54 +0200)]
cfg80211: introduce TDLS channel switch commands

Introduce commands to initiate and cancel TDLS channel-switching. Once
TDLS channel-switching is started, the lower level driver is responsible
for continually initiating channel-switch operations and returning to
the base (AP) channel to listen for beacons from time to time.

Upon cancellation of the channel-switch all communication between the
relevant TDLS peers will continue on the base channel.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: prepare TDLS mgmt code for channel-switch templates
Arik Nemtsov [Sun, 9 Nov 2014 16:50:16 +0000 (18:50 +0200)]
mac80211: prepare TDLS mgmt code for channel-switch templates

Split the data-generating from the Tx-sending functionality, as we do
not want to send templates to the lower driver. Also add an optional
chandef argument to the data-generating portion. It will be used for
channel-switch templates.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: track AP and peer STA TDLS chan-switch support
Arik Nemtsov [Sun, 9 Nov 2014 16:50:15 +0000 (18:50 +0200)]
mac80211: track AP and peer STA TDLS chan-switch support

The AP or peer can prohibit TDLS channel switch via a bit in the
extended capabilities IE. Parse the IE and track this bit. Set an
appropriate STA flag if both the AP and peer STA support TDLS
channel-switching.

Add the new STA flag and the missing TDLS_INITIATOR to debugfs.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agocfg/mac80211: define TDLS channel switch feature bit
Arik Nemtsov [Sun, 9 Nov 2014 16:50:14 +0000 (18:50 +0200)]
cfg/mac80211: define TDLS channel switch feature bit

Define some related TDLS protocol constants and advertise channel switch
support in the extended-capabilities IE when the feature bit is defined.

Actually supporting TDLS channel-switching also requires support for
some new nl80211 commands, to be introduced by future patches.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add BSS coex IE to TDLS setup frames
Arik Nemtsov [Sun, 9 Nov 2014 16:50:13 +0000 (18:50 +0200)]
mac80211: add BSS coex IE to TDLS setup frames

Add the BSS coex IE in case we support HT40 channels, as mandated by
section 8.5.13 in IEEE802.11 2012.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add supported channels IE during TDLS setup
Arik Nemtsov [Sun, 9 Nov 2014 16:50:12 +0000 (18:50 +0200)]
mac80211: add supported channels IE during TDLS setup

This information element is mandatory in case TDLS channel-switching is to
be supported. The channels given are ones supported and allowed to be
active in the current regulatory setting.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add function to create data frame template including key
Johannes Berg [Sun, 9 Nov 2014 16:50:11 +0000 (18:50 +0200)]
mac80211: add function to create data frame template including key

For some TDLS channel switch implementations data frames need to be
sent by the firmware based on a template. This template should be
created by mac80211, and thus needs to properly be built from an
802.3 frame into an 802.11 frame. In addition, the device will need
the key information so the select_key handler needs to be run.
However, the driver/device will be responsible for all of the crypto
encapsulation, as the sequence numbers etc. cannot be built by the
host anyway in this case since it's a template to be used multiple
times.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: factor out 802.11 header building code
Johannes Berg [Sun, 9 Nov 2014 16:50:10 +0000 (18:50 +0200)]
mac80211: factor out 802.11 header building code

Factor out the 802.11 header building code from the xmit function
to be able to use it separately in a later commit.

While at it, fix up some documentation.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: move skb info band assignment out
Johannes Berg [Sun, 9 Nov 2014 16:50:09 +0000 (18:50 +0200)]
mac80211: move skb info band assignment out

Instead of passing the band as a parameter to ieee80211_xmit()
and ieee80211_tx(), move it outside of the two functions while
making sure info->band is set up before calling them.

This removes the parameter and simplifies the follow commit.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: retransmit TDLS teardown packet through AP if not ACKed
Liad Kaufman [Sun, 9 Nov 2014 16:50:08 +0000 (18:50 +0200)]
mac80211: retransmit TDLS teardown packet through AP if not ACKed

Since the TDLS peer station might not receive the teardown
packet (e.g., when in PS), this makes sure the packet is
retransmitted - this time through the AP - if the TDLS peer
didn't ACK the packet.

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agomac80211: add option for setting skb flags before xmit
Liad Kaufman [Sun, 9 Nov 2014 16:50:07 +0000 (18:50 +0200)]
mac80211: add option for setting skb flags before xmit

Allows setting of an skb's flags - if needed - when calling
ieee80211_subif_start_xmit().

Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoMerge remote-tracking branch 'wireless-next/master' into mac80211-next
Johannes Berg [Tue, 18 Nov 2014 08:32:36 +0000 (09:32 +0100)]
Merge remote-tracking branch 'wireless-next/master' into mac80211-next

This brings in some mwifiex changes that further patches will
need to work on top to not cause merge conflicts.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 years agoath9k: Move roc completion to the offchannel timer
Sujith Manoharan [Sun, 16 Nov 2014 00:41:10 +0000 (06:11 +0530)]
ath9k: Move roc completion to the offchannel timer

Currently, when a roc period expires, the offchannel
timer calls ieee80211_remain_on_channel_expired(), but
the roc state is cleared only when the queued work
to switch to the operating channel gets a chance to run.

This race is a problem because mac80211 can issue a
new roc request in this window. To avoid this, handle
roc completion in the offchannel timer itself.

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

In a GO/STA setup, when we switch to the STA context,
the channel context timer is scheduled with a period of
half the beacon interval. If a beacon is received in
this duration, the timer is adjusted to accommodate
TSF sync done by the HW.

But, if the actual channel switch is delayed for some
reason, we end up rearming the timer every time a new
beacon is received. Avoid this by doing the adjustment
only once.

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

If for some reason a beacon with a new NoA is
not sent out, then reset the mgd_prepare_tx flag.
Not doing this will result in a situation where
a GO will send a new NoA when it shouldn't.

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

This patch makes sure that pending roc/scan
operations are cancelled properly when a new
context is assigned/unassigned.

The flush_work() call to flush out any scheduled
channel context work is removed, instead, sc->mutex
is dropped to allow any pending work to get a chance
to complete by the channel scheduler. Also, increase
the timeout to allow a switch to an active GO.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
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>