openwrt/staging/blogic.git
13 years agoath9k_hw: Cleanup btcoex wlan weights
Rajkumar Manoharan [Sat, 12 Nov 2011 14:05:47 +0000 (19:35 +0530)]
ath9k_hw: Cleanup btcoex wlan weights

Remove all wlan weight macros and group it together for better
understanding & readability. It makes the code reusable for
AR9462 wlan weights.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Remove enabling btcoex from stomp type change
Rajkumar Manoharan [Sat, 12 Nov 2011 14:05:46 +0000 (19:35 +0530)]
ath9k: Remove enabling btcoex from stomp type change

This patch removes btcoex_enable from stomp type change and let
it be called from callee functions that makes the code can be
reusable for MCI changes.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMerge branch 'for-linville' of git://github.com/kvalo/ath6kl
John W. Linville [Thu, 17 Nov 2011 20:16:55 +0000 (15:16 -0500)]
Merge branch 'for-linville' of git://github.com/kvalo/ath6kl

13 years agomac80211: fix warning in ieee80211_probe_client
Johannes Berg [Fri, 11 Nov 2011 19:22:30 +0000 (20:22 +0100)]
mac80211: fix warning in ieee80211_probe_client

The warning is spurious -- if !sta we always exit without using the
unassigned qos variable, and if we do find the sta we assign it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: release bss references and avoid warning from cfg80211_inform_bss
John W. Linville [Fri, 11 Nov 2011 18:49:45 +0000 (13:49 -0500)]
libertas: release bss references and avoid warning from cfg80211_inform_bss

  CC [M]  drivers/net/wireless/libertas/cfg.o
drivers/net/wireless/libertas/cfg.c: In function ‘lbs_ret_scan’:
drivers/net/wireless/libertas/cfg.c:636:24: warning: ignoring return value of ‘cfg80211_inform_bss’, declared with attribute warn_unused_result
drivers/net/wireless/libertas/cfg.c: In function ‘lbs_join_post’:
drivers/net/wireless/libertas/cfg.c:1766:21: warning: ignoring return value of ‘cfg80211_inform_bss’, declared with attribute warn_unused_result

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcmsmac: fix warning in _initvars_srom_pci
John W. Linville [Fri, 11 Nov 2011 18:29:29 +0000 (13:29 -0500)]
brcmsmac: fix warning in _initvars_srom_pci

  CC [M]  drivers/net/wireless/brcm80211/brcmsmac/srom.o
drivers/net/wireless/brcm80211/brcmsmac/srom.c: In function ‘_initvars_srom_pci’:
drivers/net/wireless/brcm80211/brcmsmac/srom.c:641:6: warning: ‘val’ may be used uninitialized in this function

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: release bss struct returned from cfg80211_inform_bss
Franky Lin [Thu, 10 Nov 2011 19:30:34 +0000 (20:30 +0100)]
brcm80211: fmac: release bss struct returned from cfg80211_inform_bss

Referenced struct returned by cfg80211_inform_bss must be released with
cfg80211_put_bss to avoid memory leak.

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: remove PCMCIA core related code
Franky Lin [Thu, 10 Nov 2011 19:30:33 +0000 (20:30 +0100)]
brcm80211: fmac: remove PCMCIA core related code

all the devices supported or will be supported by brcmfmac
do not have a PCMCIA bus core. So remove the corresponding code.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: add function to free the glom skb queue
Arend van Spriel [Thu, 10 Nov 2011 19:30:31 +0000 (20:30 +0100)]
brcm80211: fmac: add function to free the glom skb queue

In several places in dhd_sdio.c a skb packet queue was being emptied
and the packets freed. This warrants to have a function in place to
do this.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: util: remove pointer traversal from brcmu_pkt_buf_free_skb
Arend van Spriel [Thu, 10 Nov 2011 19:30:30 +0000 (20:30 +0100)]
brcm80211: util: remove pointer traversal from brcmu_pkt_buf_free_skb

The function brcmu_pkt_buf_free_skb() was following the next pointer
to free all linked packets. However, it is only called with unlinked
packets so this can be removed.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: util: move brcmu_pkttotlen() function to brcmfmac
Arend van Spriel [Thu, 10 Nov 2011 19:30:29 +0000 (20:30 +0100)]
brcm80211: util: move brcmu_pkttotlen() function to brcmfmac

The functions brcmu_pkttotlen() is only used in brcmfmac driver
so it has been moved there. It also does not use the sk_buff
next pointer anymore but walks a skb queue to determine the total
length.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: combine promiscuous mode functionality
Alwin Beukers [Thu, 10 Nov 2011 19:30:28 +0000 (20:30 +0100)]
brcm80211: smac: combine promiscuous mode functionality

Combined mac configuration for promiscious mode and monitor mode, and
removed unused monitor mode flag in pub structure.

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: util: use sk_buff_head in precedence queue functions
Arend van Spriel [Thu, 10 Nov 2011 19:30:27 +0000 (20:30 +0100)]
brcm80211: util: use sk_buff_head in precedence queue functions

Instead of dealing with sk_buff prev pointers the queue functions
now make use of the sk_buff_head functions provided by the kernel.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove usage of brcmu_pkttotlen
Arend van Spriel [Thu, 10 Nov 2011 19:30:26 +0000 (20:30 +0100)]
brcm80211: smac: remove usage of brcmu_pkttotlen

The function brcmu_pkttotlen calculates the total length of a sk_buff
chain following the next pointer. In brcmsmac this is not needed as
in each place where it was used the provided sk_buff had a NULL pointer
as next field value.

Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: remove id retrieve code
Franky Lin [Thu, 10 Nov 2011 19:30:25 +0000 (20:30 +0100)]
brcm80211: fmac: remove id retrieve code

sdio_chip.c is dedicated to sdio bus chip. No need to retrieve id
for bus core

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: add resetcore function for bcm4330 chip
Franky Lin [Thu, 10 Nov 2011 19:30:24 +0000 (20:30 +0100)]
brcm80211: fmac: add resetcore function for bcm4330 chip

This patch is part of the series of adding new backplane support

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: add coredisable function for bcm4330 chip
Franky Lin [Thu, 10 Nov 2011 19:30:23 +0000 (20:30 +0100)]
brcm80211: fmac: add coredisable function for bcm4330 chip

This patch is part of the series of adding new backplane support

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: add corerev function for bcm4330 chip
Franky Lin [Thu, 10 Nov 2011 19:30:22 +0000 (20:30 +0100)]
brcm80211: fmac: add corerev function for bcm4330 chip

This patch is part of the series adding new backplane support

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: fmac: add iscoreup function for bcm4330 chip
Franky Lin [Thu, 10 Nov 2011 19:30:21 +0000 (20:30 +0100)]
brcm80211: fmac: add iscoreup function for bcm4330 chip

New type of backplane interconnect support is needed
for bcm4330

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: don't modify sta parameters when adding sta
Alwin Beukers [Thu, 10 Nov 2011 19:30:20 +0000 (20:30 +0100)]
brcm80211: smac: don't modify sta parameters when adding sta

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove duplicate definition of D11_PHY_HDR_LEN
Arend van Spriel [Thu, 10 Nov 2011 19:30:19 +0000 (20:30 +0100)]
brcm80211: smac: remove duplicate definition of D11_PHY_HDR_LEN

The macro definition D11_PHY_HDR_LEN was defined in d11.h and pub.h.
It has been removed from pub.h.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: replace own access category definitions with mac80211 enum
Arend van Spriel [Thu, 10 Nov 2011 19:30:18 +0000 (20:30 +0100)]
brcm80211: smac: replace own access category definitions with mac80211 enum

The brcmsmac had own definitions for the access categories. The mac80211
header provides these as well as they are used in the conf_tx callback.
As the definitions did not match the driver configured the tx parameters
to the wrong queue.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: remove code under unused macro definitions
Arend van Spriel [Thu, 10 Nov 2011 19:30:17 +0000 (20:30 +0100)]
brcm80211: smac: remove code under unused macro definitions

There were a couple of code segments left that were placed under
a macro definition that was not applicable or not used in the
brcmsmac driver. These pieces of code have been removed.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobrcm80211: smac: fix endianess issue for OTP memory access
Arend van Spriel [Thu, 10 Nov 2011 19:30:16 +0000 (20:30 +0100)]
brcm80211: smac: fix endianess issue for OTP memory access

This fixes issue when using OTP memory. It was introduced by
following commit:

commit 028f78d43d80dcb8b1142ea38606067151dd3d51
Author: Arend van Spriel <arend@broadcom.com>
Date:   Fri Oct 21 16:16:35 2011 +0200

    brcm80211: smac: change buffer endianess convert function interface

Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: move nvm_device_type from iwl_priv to iwl_trans
Don Fry [Thu, 10 Nov 2011 14:55:27 +0000 (06:55 -0800)]
iwlagn: move nvm_device_type from iwl_priv to iwl_trans

The nvm_device_type is eeprom related and does not need to be part
of the iwl_priv structure.  Move it and eliminate access to the iwl_priv
structure.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: Remove dependence of iwl_priv from eeprom routines.
Don Fry [Thu, 10 Nov 2011 14:55:26 +0000 (06:55 -0800)]
iwlagn: Remove dependence of iwl_priv from eeprom routines.

Make the eeprom routines less dependent on the iwl_priv structure.
Don't use the priv when bus structure is sufficient.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: fix rate-scaling algorithm for BT combo devices
Venkataraman, Meenakshi [Thu, 10 Nov 2011 14:55:25 +0000 (06:55 -0800)]
iwlwifi: fix rate-scaling algorithm for BT combo devices

iwlwifi tries to avoid using antenna B in BT combo devices when BT
is active. A bug in the rate-scaling algorithm was causing the combo
device to never attempt MIMO rates. Fix the algorithm to
opportunistically try MIMO rates when BT traffic is low.

Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: add debug information on queue stop / wake
Emmanuel Grumbach [Thu, 10 Nov 2011 14:55:24 +0000 (06:55 -0800)]
iwlwifi: add debug information on queue stop / wake

Users complain that the traffic gets stalled sometimes. This will
allow easier debugging.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: remove the use of the QOS debug flag
Emmanuel Grumbach [Thu, 10 Nov 2011 14:55:23 +0000 (06:55 -0800)]
iwlwifi: remove the use of the QOS debug flag

This bit was used only once. Use IWL_DL_INFO instead.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: don't always split remain-on-channel
Johannes Berg [Thu, 10 Nov 2011 14:55:22 +0000 (06:55 -0800)]
iwlagn: don't always split remain-on-channel

Due to the P2P context always having the associated
bit set when we got to this code, we were splitting
up the remain-on-channel durations unconditionally.
This isn't needed -- if the P2P context is in P2P
device type mode it doesn't impose restrictions on
timing to skip it in that case.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: convert remain-on-channel duration to TU
Johannes Berg [Thu, 10 Nov 2011 14:55:21 +0000 (06:55 -0800)]
iwlagn: convert remain-on-channel duration to TU

The device expects TU but we get ms, so convert.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: fix unused label in iwl_send_cmd_sync
Emmanuel Grumbach [Thu, 10 Nov 2011 14:55:20 +0000 (06:55 -0800)]
iwlwifi: fix unused label in iwl_send_cmd_sync

Warning introduced by c847474b7dfdda304d0d8ffcc5a9db546b1cb3e9

iwlwifi: check status before send command

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: check status before send command
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:19 +0000 (06:55 -0800)]
iwlwifi: check status before send command

Check the status before sending host command, if any of the condition
match, cancel the host command before queue

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: set "echo" host command length
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:18 +0000 (06:55 -0800)]
iwlwifi: set "echo" host command length

"echo" host command has no data, set the length to 0

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: Move the core suspend function to iwl-agn-lib
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:17 +0000 (06:55 -0800)]
iwlwifi: Move the core suspend function to iwl-agn-lib

The core suspend function is part of agn, iwl_mac80211 should only
handle mac80211 I/F operations.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: move station functions to mac80211
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:16 +0000 (06:55 -0800)]
iwlwifi: move station functions to mac80211

The station related mac80211 callback functions should belong to _mac80211

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: move hw_scan into _mac80211 file
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:15 +0000 (06:55 -0800)]
iwlwifi: move hw_scan into _mac80211 file

iwlagn_mac_hw_scan should belong to _mac80211 callback.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: move more mac80211 callback function
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:14 +0000 (06:55 -0800)]
iwlwifi: move more mac80211 callback function

Move more mac80211 related functions to _mac80211 file

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: explicitly program P2P QoS parameters
Johannes Berg [Thu, 10 Nov 2011 14:55:13 +0000 (06:55 -0800)]
iwlagn: explicitly program P2P QoS parameters

In P2P device mode, the device needs to have valid
QoS parameters. We currently have those because we
program parameters from any virtual interface into
all contexts, but not only do we want to get rid of
this -- it is also unpredictable since on the BSS
context we might have any parameters, and there it
might even be programmed for HT.

Explicitly program default QoS parameters into the
PAN context for P2P (the defaults are 11g but with
QoS disabled) to make device behaviour predictable.

This also helps when in a follow-up patch we will
use TX QoS parameters from mac80211 only for the
context they were meant for -- without this first
that would completely break P2P device discovery.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: use per-vif AC parameters
Johannes Berg [Thu, 10 Nov 2011 14:55:12 +0000 (06:55 -0800)]
iwlagn: use per-vif AC parameters

Eliad added the ability to configure AC parameters
per virtual interface; make use of this in iwlwifi
and set the parameters in the right context. Since
storage and uploading to the device is already per
context, this is sufficient.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: move all mac80211 related functions to one place
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:11 +0000 (06:55 -0800)]
iwlwifi: move all mac80211 related functions to one place

There are many mac80211 callback functions in the driver, as current
implementation, those functions are scatter everywhere which is very difficult
to find and maintain, move all the mac80211 callback functions into single
file. There should be no functional changes

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: move ucode files out of the iwl_priv structure
Don Fry [Thu, 10 Nov 2011 14:55:10 +0000 (06:55 -0800)]
iwlagn: move ucode files out of the iwl_priv structure

Relocate the ucode files and update relevant code.
More code refactoring.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: push knowledge of ucode image lower down
Don Fry [Thu, 10 Nov 2011 14:55:09 +0000 (06:55 -0800)]
iwlagn: push knowledge of ucode image lower down

Move the knowledge of the ucode image to lower level routines.  Also do
not pass the iwl_priv structure lower than it needs to be.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: remove knowledge of ucode image location from upper layers
Don Fry [Thu, 10 Nov 2011 14:55:08 +0000 (06:55 -0800)]
iwlagn: remove knowledge of ucode image location from upper layers

The upper layers of the driver do not need to know where the ucode is
stored.  It already passes in an enum of which ucode to load.  Let the
lower layer routines select the ucode to load.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: move ucode_write_complete from priv to trans structure
Don Fry [Thu, 10 Nov 2011 14:55:07 +0000 (06:55 -0800)]
iwlagn: move ucode_write_complete from priv to trans structure

ucode_write_complete is used for ucode loading.  Move it as part of
restructuring work out of the priv structure.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: remove un-supported SKUs
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:06 +0000 (06:55 -0800)]
iwlwifi: remove un-supported SKUs

BG only SKUs are no longer supported by 2000 and 1x5 series. Remove it

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: fix NULL ptr deref when reprogramming sta w/o LQ
Johannes Berg [Thu, 10 Nov 2011 14:55:05 +0000 (06:55 -0800)]
iwlagn: fix NULL ptr deref when reprogramming sta w/o LQ

Reinette reports a crash in iwl_reprogram_ap_sta(). The
debugging shows:

  b1 16    mov    $0x16,%cl
 *f3 a5    rep movsl %ds     <-- trapping instruction:(%rsi),%es:(%rdi)

which is a memcpy of 22 (0x16) words (movsl). this points
to "priv->stations[sta_id].lq" being NULL since that is
the memcpy() of that size here.

The only way I see for this to happen is if we try to
do some RXON reprogramming while connecting to an AP,
after tx_sync() but before full setup, but that seems
like something that might very well happen.

Fix this by checking if the LQ is present and only then
reprogramming it.

Reported-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: check for SMPS mode
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:04 +0000 (06:55 -0800)]
iwlagn: check for SMPS mode

Check and report WARN only when its invalid

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: two more SKUs for 6x05 series
Wey-Yi Guy [Thu, 10 Nov 2011 14:55:03 +0000 (06:55 -0800)]
iwlwifi: two more SKUs for 6x05 series

Add two more SKUs for 6x05 series of device.
First SKU has low 5GHz channels actives, the other SKU has high 5GHz channels actives.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: Suppress noisy syslog messages when RF_KILL switch engaged
Todd Previte [Thu, 10 Nov 2011 14:55:02 +0000 (06:55 -0800)]
iwlwifi: Suppress noisy syslog messages when RF_KILL switch engaged

When a station is associated with an AP and the RF_KILL switch is engaged,
numerous error messages were sent to the system log. The error messages
were the result of the failure(s) of the various submodules to perform
their tasks after the radios were disabled.

To resolve this situation, the messages were modified to use a new macro,
IWL_DEBUG_QUIET_RFKILL. This macro allows for the RF_KILL error messages
to be sent to the log provided that IWL_DEBUG is true and IWL_DL_RADIO
is '1'. For all other cases, the error messages resulting from an RFKILL
event will not be sent to the system log. Messages logged because of an
RFKILL will be tagged with the prefix '(RFKILL)' to clarify the cause of
the error.

Signed-off-by: Todd Previte <toddX.a.previte@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: add P2P NoA to probe responses
Johannes Berg [Thu, 10 Nov 2011 14:55:01 +0000 (06:55 -0800)]
iwlagn: add P2P NoA to probe responses

Whether to use NoA or not is entire controlled
by the uCode right now, and it also adds the
attribute to beacons. We do need to add it to
probe responses in the driver though.

Keep track of the NoA notification from the
uCode and add the data to probe responses when
such are transmitted. Use RCU to manage the
lifetime.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agominstrel: Remove unused function parameter in calc_rate_durations()
Patrick Kelle [Thu, 10 Nov 2011 14:13:11 +0000 (15:13 +0100)]
minstrel: Remove unused function parameter in calc_rate_durations()

Signed-off-by: Patrick Kelle <patrick.kelle81@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix tx power settings for AR9003
Rajkumar Manoharan [Thu, 10 Nov 2011 09:44:57 +0000 (15:14 +0530)]
ath9k_hw: Fix tx power settings for AR9003

Retriving tx power for 2x2 and 3x3 chainmask is not handled
properly. While calculating tx power for 2x2, 3 dBm was reduced
and for 3x3, 5 dBm was reduced which should be added back when
retriving.

Cc: Paul Stewart <pstew@google.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Save probe response data for bss
Arik Nemtsov [Thu, 10 Nov 2011 09:28:57 +0000 (11:28 +0200)]
mac80211: Save probe response data for bss

Allow setting a probe response template for an interface operating in
AP mode. Low level drivers are notified about changes in the probe
response template and are able to retrieve a copy of the current probe
response. This data can, for example, be uploaded to hardware as a
template.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211: Pass probe response data to drivers
Arik Nemtsov [Thu, 10 Nov 2011 09:28:56 +0000 (11:28 +0200)]
nl80211: Pass probe response data to drivers

Pass probe-response data from usermode via beacon parameters.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211: Add probe response offload attribute
Arik Nemtsov [Thu, 10 Nov 2011 09:28:55 +0000 (11:28 +0200)]
nl80211: Add probe response offload attribute

Notify user-space about probe-response offloading support in the driver.

A wiphy flag is used to indicate support and a bitmap of protocols
determines which protocols are supported.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211: fix compiler warning
Johannes Berg [Thu, 10 Nov 2011 08:44:46 +0000 (09:44 +0100)]
nl80211: fix compiler warning

John reported the following warning:

net/wireless/nl80211.c: In function ‘nl80211_tx_mgmt’:
net/wireless/nl80211.c:5286:8: warning: ‘hdr’ may be used uninitialized in this function

Evidently, his version of gcc isn't able to see that
when "msg" is initialized, "hdr" must also be. My
gcc, 4.6.1, can actually see that and doesn't warn.
Simply initialize the variable to NULL. That means
if the compiler was ever right we'll crash though so
isn't really optimal since it may hide warnings from
the compiler when somebody modifies this code in the
future.

Reported-by: John Linville <linville@tuxdriver.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: make sure hw_key exists before checking its flags
Arik Nemtsov [Thu, 10 Nov 2011 07:35:13 +0000 (09:35 +0200)]
mac80211: make sure hw_key exists before checking its flags

Fixes a bug introduced in:

commit 077a9154898b374f20555adc3f620cccd02581d6
Author: Arik Nemtsov <arik@wizery.com>
Date:   Sun Oct 23 08:21:41 2011 +0200

Reported-by: Arend van Spriel <arend@broadcom.com>
Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: set ATH9K_PCI to y by default
Daniel Kuehn [Wed, 9 Nov 2011 22:57:57 +0000 (23:57 +0100)]
ath9k: set ATH9K_PCI to y by default

Most ath9k devices are PCI/PCIe based, therefor making PCI/PCIe support
default y helps those porting a config from 2.6 kernel series
from getting "non-functional" wireless drivers with 3.x kernel series.

Signed-off-by: Daniel Kuehn <daniel@kuehn.se>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: move ieee80211chan2mhz macro
Johannes Berg [Wed, 9 Nov 2011 20:33:45 +0000 (21:33 +0100)]
wireless: move ieee80211chan2mhz macro

The macro is only used in ipw2200 and we certainly
don't want to encourage its use, so move it out of
the radiotap header file and into the driver.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: add recalc PS in ieee80211_reconfig()
Eyal Shapira [Wed, 9 Nov 2011 10:29:06 +0000 (12:29 +0200)]
mac80211: add recalc PS in ieee80211_reconfig()

Driver should be instructed to enter PS AFTER
reconfiguring ASSOCIATED (in STA case) using ieee80211_bss_info_change_notify
same as it's being done in ieee80211_set_associated()

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoNFC: Check if NCI data flow control is used
Ilan Elias [Wed, 9 Nov 2011 10:09:16 +0000 (12:09 +0200)]
NFC: Check if NCI data flow control is used

Check if NCI data flow control is used in nci_tx_work.

Signed-off-by: Ilan Elias <ilane@ti.com>
Acked-by: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoNFC: Removal of unused operations for NCI spec 1.0 d18
Ilan Elias [Wed, 9 Nov 2011 10:09:15 +0000 (12:09 +0200)]
NFC: Removal of unused operations for NCI spec 1.0 d18

Remove unused NCI operations, e.g. create static rf connection.

Signed-off-by: Ilan Elias <ilane@ti.com>
Acked-by: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoNFC: Update names and structs to NCI spec 1.0 d18
Ilan Elias [Wed, 9 Nov 2011 10:09:14 +0000 (12:09 +0200)]
NFC: Update names and structs to NCI spec 1.0 d18

Addition, deletion and modification of NCI constants.
Changes in NCI commands, responses and notifications structures.

Signed-off-by: Ilan Elias <ilane@ti.com>
Acked-by: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211/cfg80211: report monitor channel in wireless extensions
Johannes Berg [Wed, 9 Nov 2011 09:30:21 +0000 (10:30 +0100)]
mac80211/cfg80211: report monitor channel in wireless extensions

Just add API to get the channel & report it. Trivial really.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: simplify scan state machine
Johannes Berg [Tue, 8 Nov 2011 15:21:21 +0000 (16:21 +0100)]
mac80211: simplify scan state machine

Attempting to micro-optimise the scan by going
fully live again when scanning the operating
channel just made the code extremely complex
and has little gain in most use cases. Remove
all that code and simplify the state machine
again.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: set carrier_on for ibss vifs only while joined
Eliad Peller [Tue, 8 Nov 2011 13:36:59 +0000 (15:36 +0200)]
mac80211: set carrier_on for ibss vifs only while joined

mac80211 should set carrier_on for ibss vifs
only while they are joined (similar to sta vifs)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix channel list of CalFreqPeir for AR938x
Rajkumar Manoharan [Tue, 8 Nov 2011 08:49:34 +0000 (14:19 +0530)]
ath9k_hw: Fix channel list of CalFreqPeir for AR938x

This patch sync up CalFreqPeir channel list and paprd rate mask
of AR938x templates to the latest received from Systems team.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Read and configure xpa timing field
Rajkumar Manoharan [Tue, 8 Nov 2011 08:49:33 +0000 (14:19 +0530)]
ath9k_hw: Read and configure xpa timing field

Configure xpa timing field while loading boad defaults to
fix 11b CCK spur issue that was observed in EMI testing.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Read and configure quick drop for AR9003
Rajkumar Manoharan [Tue, 8 Nov 2011 08:49:32 +0000 (14:19 +0530)]
ath9k_hw: Read and configure quick drop for AR9003

Read and configure quick drop feild from AR9003 eeprom
inorder to help with strong signal. This patch also removes
obsolate parameters ob, db_stage2, db_stage_3, db_stage4
from the eeprom templates.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: release bss structure returned by cfg80211_inform_bss()
Amitkumar Karwar [Tue, 8 Nov 2011 05:41:12 +0000 (21:41 -0800)]
mwifiex: release bss structure returned by cfg80211_inform_bss()

Following compilation warning is fixed by releasing referenced BSS
structure returned by cfg80211_inform_bss().

"warning: ignoring return value of cfg80211_inform_bss,
declared with attribute warn_unused_result"

Cc: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: remove unnecessary free_priv handler
Amitkumar Karwar [Tue, 8 Nov 2011 05:41:11 +0000 (21:41 -0800)]
mwifiex: remove unnecessary free_priv handler

Cfg80211 stack allocates private area for driver use in
struct cfg80211_bss. It will be freed by stack in bss_release().
Driver don't need to worry about it.

In mwifiex driver, we use the private area just to store band
information(u8). We don't allocate memory explicitly and store
it's pointer in bss->priv. Hence we don't have any cleanup work
to do in free_priv handler. Currently we try to free the allocated
private area in free_priv handler which is not correct.

This patch removes unnecessary free_priv handler.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: fix 'Smatch' warnings
Yogesh Ashok Powar [Tue, 8 Nov 2011 05:41:10 +0000 (21:41 -0800)]
mwifiex: fix 'Smatch' warnings

Following three warnings are fixed:

>init.c +256 mwifiex_init_adapter(71)
>warn: variable dereferenced before check 'adapter->sleep_cfm'
>(see line 191)

>sta_rx.c +193 mwifiex_process_sta_rx_packet(75)
>warn: variable dereferenced before check 'priv' (see line 182)

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: fix coding style
Yogesh Ashok Powar [Tue, 8 Nov 2011 05:41:09 +0000 (21:41 -0800)]
mwifiex: fix coding style

Rename DataRate to data_rate and arrange 'for' loop
for better readability.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: change return types to void
Yogesh Ashok Powar [Tue, 8 Nov 2011 05:41:08 +0000 (21:41 -0800)]
mwifiex: change return types to void

Functions mwifiex_11n_dispatch_pkt_until_start_win and
mwifiex_11n_scan_and_dispatch used to always return value
zero for all inputs. Changing these functions to void.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: use existing helper function mwifiex_fill_cap_info
Yogesh Ashok Powar [Tue, 8 Nov 2011 05:41:07 +0000 (21:41 -0800)]
mwifiex: use existing helper function mwifiex_fill_cap_info

Use existing helper function mwifiex_fill_cap_info to fill
the HT CAP info for ibss beacons.

Also removing extra parenthesis block for better readability.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: fix ht_cap_info in ibss beacons
Yogesh Ashok Powar [Tue, 8 Nov 2011 05:41:06 +0000 (21:41 -0800)]
mwifiex: fix ht_cap_info in ibss beacons

A local variable is used to calculate ht_cap_info.
Erroneously ht_cap.cap_info isn't updated in the ibss beacons
after the calculation. This patch fixes it.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: init rate-control for TDLS sta when supp-rates are known
Arik Nemtsov [Mon, 7 Nov 2011 21:24:39 +0000 (23:24 +0200)]
mac80211: init rate-control for TDLS sta when supp-rates are known

Initialize rate control algorithms only when supported rates are known
for a TDLS peer sta. Direct Tx between peers is not allowed before the
link is enabled. In turn, this only occurs after a change_station()
call that sets supported rates.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: merge in beacon ies of hidden bss.
Dmitry Tarnyagin [Fri, 4 Nov 2011 16:12:07 +0000 (17:12 +0100)]
cfg80211: merge in beacon ies of hidden bss.

The problem with PSM when a hidden SSID was used was originally
reported by Juuso Oikarinen.

 - When generally scanning, the AP is getting a bss entry with
   a zero SSID.
 - When associating, a probe-req is sent to the AP with the SSID,
   and as a result a probe-response is received with the hidden
   SSID in place. As a consequence, a second bss entry is created
   for the AP, now with the real SSID.
 - After association, mac80211 executes ieee80211_recalc_ps(),
   but does not switch to powersave because the beacon-ies are missing.

As result, the STA does not ever enter PSM.

The patch merges in beacon ies of hidden bss from beacon to the probe
response, creating a consistent set of ies in place.

Patch is depended on "cfg80211: fix cmp_ies" made by Johannes.

Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath6kl: Fix error in writing create_qos debugfs
Vasanthakumar Thiagarajan [Fri, 4 Nov 2011 13:04:55 +0000 (18:34 +0530)]
ath6kl: Fix error in writing create_qos debugfs

100 bytes are allocated to store the parameters which are needed
to create a priority stream. These 100 bytes are not sufficiant and
throws error when running the following command.

echo "6 2 3 1 1 9999999 9999999 9999999 7777777 0 6 45000 200 56789000
 56789000 5678900 0 0 9999999 20000 0" > create_qos

179 bytes are needed when the following vlaues are given so that
a maximum possible value in that data type can be given in decimal.

echo "255 255 255 255 255 4294967295 4294967295 4294967295 4294967295
 4294967295 255 65535 65535 4294967295 4294967295 4294967295 4294967295
 4294967295 4294967295 4294967295 4294967295" > create_qos

Following takes 187 bytes when given in hex

echo "0xff 0xff 0xff 0xff 0xff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
 0xff 0xffff 0xffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
 0xffffffff 0xffffffff" > create_qos

Increase the size to 200 bytes so that it can hold upto the maximum
value possible for that data type.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Fix tx packet drop in AP mode with bridge
Vasanthakumar Thiagarajan [Fri, 4 Nov 2011 10:18:51 +0000 (15:48 +0530)]
ath6kl: Fix tx packet drop in AP mode with bridge

skb is dropped in ath6kl_data_tx() when the headroom in skb
is insufficient. We hit this condition for every skb in AP mode
which is used with bridge, so all tx packets are getting dropped
when tried to send traffic to wireless client from bridge. Fix
this by reallocating the headroom instead of dropping the skb
when it has lesser headroom than needed.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove few unused WMI stuff
Raja Mani [Mon, 7 Nov 2011 20:52:47 +0000 (22:52 +0200)]
ath6kl: Remove few unused WMI stuff

* Removed unused WOW_MAX_FILTER_LISTS macro.

* Removed empty ath6kl_wmi_get_wow_list_event_rx() function.
  List of configured WOW patterns are maintained in CFG layer
  itself. No need to have this function in ath6kl to get
  configured WOW pattern list. It can added later if we need
  it for debugging.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Expose ath6kl's WOW capabilities to cfg80211
Raja Mani [Mon, 7 Nov 2011 20:52:46 +0000 (22:52 +0200)]
ath6kl: Expose ath6kl's WOW capabilities to cfg80211

Set the list of ath6kl's WOW trigger options in wiphy->wowlan.flags
variable during wiphy registration. So that, those options can be
configured via iw.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove WARN_ON msg in Suspend path
Raja Mani [Mon, 7 Nov 2011 20:52:46 +0000 (22:52 +0200)]
ath6kl: Remove WARN_ON msg in Suspend path

In the current code, WOW resume is executed first from RX path
and ar->state is moved to ATH6KL_STATE_ON. When platform calls
ath6kl_sdio_resume() in CFG resume context, that time ar->state
could have moved to ON state. Printing WARN_ON(1) is void in
this context. Hence removing this.

Once WOW resume is removed from RX path, This WARN_ON msg can be
reverted.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Perform WOW resume in RX path in case of SDIO IRQ wake up
Raja Mani [Mon, 7 Nov 2011 20:52:46 +0000 (22:52 +0200)]
ath6kl: Perform WOW resume in RX path in case of SDIO IRQ wake up

The target triggers sdio data line to wake up the host when
WOW pattern matches. This causes sdio irq handler is being
executed in the host side which internally hits ath6kl's RX path.

WOW resume should happen before start processing any data from
the target. So it's required to perform WOW resume in RX path.

This area needs bit rework to avoid WOW resume in RX path,
As of now it's fine to have this model, rework will be done later.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Invoke WOW suspend/resume calls during PM operation
Raja Mani [Mon, 7 Nov 2011 20:52:46 +0000 (22:52 +0200)]
ath6kl: Invoke WOW suspend/resume calls during PM operation

Link ath6kl's wow suspend/resume functions with the actual suspend/resume path.

WOW mode is selected when the host sdio controller supports both
MMC_PM_KEEP_POWER and MMC_PM_WAKE_SDIO_IRQ capabilities.

kvalo: also adds a missing break in ath6kl_cfg80211_resume(), luckily
it didn't have any effect on functionality.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Move ath6kl_cfg80211_stop() call specific to deep sleep and cut pwr
Raja Mani [Mon, 7 Nov 2011 20:52:46 +0000 (22:52 +0200)]
ath6kl: Move ath6kl_cfg80211_stop() call specific to deep sleep and cut pwr

ath6kl_cfg80211_stop() call is not applicable for WOW mode. Hence moving
this call to deep sleep and cut pwr specific cases.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Add new state for WOW mode
Raja Mani [Mon, 7 Nov 2011 20:52:45 +0000 (22:52 +0200)]
ath6kl: Add new state for WOW mode

In addition to existing deep sleep and cut pwr mode, new state
is added in ath6kl_cfg_suspend_mode as well as in ath6kl_state for WOW.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Include new parameter in suspend path for wowlan
Raja Mani [Mon, 7 Nov 2011 20:52:45 +0000 (22:52 +0200)]
ath6kl: Include new parameter in suspend path for wowlan

cfg80211 layer provides user defined wow parameters like Filter options, Patterns,
Pattern's mask, etc via "struct cfg80211_wowlan *wow" to suspend function.

Right now, this wowlan parameter is not handled in __ath6kl_cfg80211_suspend func.
This parameter has to be passed to HIF layer, So that it can be passed back to
ath6kl's cfg interface layer when WOW mode is selected.

In case of deep sleep and cut power mode, it's not handled.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Add WOW suspend/resume implementation
Raja Mani [Mon, 7 Nov 2011 20:52:45 +0000 (22:52 +0200)]
ath6kl: Add WOW suspend/resume implementation

This is the core WOW suspend/resume functions will be called
in PM suspend/resume path.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Add wmi functions to configure WOW mode and host sleep mode
Raja Mani [Mon, 7 Nov 2011 20:52:45 +0000 (22:52 +0200)]
ath6kl: Add wmi functions to configure WOW mode and host sleep mode

It will be used in WOW suspend/resume functions to
active/deactivate WOW suspend mode.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Add wmi functions to add/delete WOW patterns
Raja Mani [Mon, 7 Nov 2011 20:52:45 +0000 (22:52 +0200)]
ath6kl: Add wmi functions to add/delete WOW patterns

These commands will be used in WOW suspend/resume functions
to configure WOW parameters like patterns to be matched
and it's mask value, etc.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Do not hide ath6kl_wmi_addkey_cmd() error values
Jouni Malinen [Wed, 2 Nov 2011 21:46:47 +0000 (23:46 +0200)]
ath6kl: Do not hide ath6kl_wmi_addkey_cmd() error values

Instead of converting any error to EIO, just return the real error
value to upper layers.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Fix key configuration to copy at most seq_len from seq
Jouni Malinen [Wed, 2 Nov 2011 21:45:55 +0000 (23:45 +0200)]
ath6kl: Fix key configuration to copy at most seq_len from seq

There is no guarantee on the caller using 8-octet buffer for
key->seq, so better follow the key->seq_len parameter on figuring
out how many octets to copy.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Remove unused WMI crypto defines
Jouni Malinen [Wed, 2 Nov 2011 21:44:14 +0000 (23:44 +0200)]
ath6kl: Remove unused WMI crypto defines

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: add suspend_cutpower module parameter
Kalle Valo [Thu, 3 Nov 2011 10:18:31 +0000 (12:18 +0200)]
ath6kl: add suspend_cutpower module parameter

This is to force ath6kl to power off hardware during suspend even if
sdio support keep power. This is needed, for example, when sdio
controller is buggy or maximum powersaving is desired.

Usage:

insmod ath6kl.ko suspend_cutpower=1

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: don't power down hardware when interface is down
Kalle Valo [Thu, 3 Nov 2011 09:53:57 +0000 (11:53 +0200)]
ath6kl: don't power down hardware when interface is down

Jouni reported that my patch "ath6kl: power down hardware when interface
is down" caused a regression on his x86 boxes and scan didn't work anymore.
I was able to reproduce the problem by disabling all debug messages.

So there has to be a race condition somewhere in the code and disable the
functionality until the race is fixed. Now hardware is powered from the
point where module is loaded until it's removed.

Reported-by: Jouni Malinen <jouni@qca.qualcomm.com>
Tested-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: Fix lockdep warning
Vasanthakumar Thiagarajan [Tue, 1 Nov 2011 11:08:50 +0000 (16:38 +0530)]
ath6kl: Fix lockdep warning

The following is the lockdep warning which detects possible
deadlock condition with the way ar->lock and ar->list_lock
are being used.

  (&(&ar->lock)->rlock){+.-...}, at: [<ffffffffa0492d13>] ath6kl_indicate_tx_activity+0x83/0x110 [ath6kl]
 but this lock took another, SOFTIRQ-unsafe lock in the past:
  (&(&ar->list_lock)->rlock){+.+...}

 and interrupts could create inverse lock ordering between them.

 other info that might help us debug this:
  Possible interrupt unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(&(&ar->list_lock)->rlock);
                                local_irq_disable();
                                lock(&(&ar->lock)->rlock);
                                lock(&(&ar->list_lock)->rlock);
   <Interrupt>
     lock(&(&ar->lock)->rlock);

  *** DEADLOCK ***

softirqs have to be disabled when acquiring ar->list_lock to avoid
the above deadlock condition. When the above warning printed the
interface is still up and running without issue.

Reported-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: cut power during suspend
Kalle Valo [Tue, 1 Nov 2011 06:44:44 +0000 (08:44 +0200)]
ath6kl: cut power during suspend

If sdio controller doesn't support keep power, cut power from hardware
during suspend and restart firmware during resume. If we are connected
during suspend, send a disconnected event to user space.

Earlier suspend failed with an error if sdio didn't support keep power.
Now suspend will happen succesfully even with that case.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
13 years agoath6kl: refactor sdio configuration to a separate function
Kalle Valo [Tue, 1 Nov 2011 06:44:36 +0000 (08:44 +0200)]
ath6kl: refactor sdio configuration to a separate function

These commands are also needed after cutpower suspend so create
a function for them. Also fix memory leaks in ath6kl_sdio_probe() error
path.

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