GitHub/moto-9609/android_kernel_motorola_exynos9610.git
12 years agoath9k: inline AR9271 1.0 INI overrides
Felix Fietkau [Wed, 14 Mar 2012 15:40:33 +0000 (16:40 +0100)]
ath9k: inline AR9271 1.0 INI overrides

Makes them more readable and reduces code size

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: remove iniModes_*_tx_gain_9271
Felix Fietkau [Wed, 14 Mar 2012 15:40:32 +0000 (16:40 +0100)]
ath9k_hw: remove iniModes_*_tx_gain_9271

Program tx gain through iniModesTxGain like on AR9287

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: clean up iniModesAdditional
Felix Fietkau [Wed, 14 Mar 2012 15:40:31 +0000 (16:40 +0100)]
ath9k_hw: clean up iniModesAdditional

use iniModesFastClock for 5 ghz fast clock specific settings, and
iniAdditional for clock/chip specific initval overrides

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: fix AR9380 register settings for channel 14
Felix Fietkau [Wed, 14 Mar 2012 15:40:30 +0000 (16:40 +0100)]
ath9k_hw: fix AR9380 register settings for channel 14

Program the ah->ini_japan2484 INI values which were left out by accident

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: fold ar9002_hw_cck_chan14_spread into mode regs initialization
Felix Fietkau [Wed, 14 Mar 2012 15:40:29 +0000 (16:40 +0100)]
ath9k_hw: fold ar9002_hw_cck_chan14_spread into mode regs initialization

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: remove iniCommon_*_cck_fir_coeff_9271
Felix Fietkau [Wed, 14 Mar 2012 15:40:28 +0000 (16:40 +0100)]
ath9k_hw: remove iniCommon_*_cck_fir_coeff_9271

These arrays are unused

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: clean up ath9k_hw_setuprxdesc
Felix Fietkau [Wed, 14 Mar 2012 15:40:27 +0000 (16:40 +0100)]
ath9k_hw: clean up ath9k_hw_setuprxdesc

The ATH9K_HW_CAP_AUTOSLEEP check is bogus, the rx status area needs to be
cleared on all non-EDMA PCI/AHB based chipsets anyway.
Limit the memset to the rx status area to improve performance.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: remove ath9k_hw_gettxintrtxqs
Felix Fietkau [Wed, 14 Mar 2012 15:40:26 +0000 (16:40 +0100)]
ath9k_hw: remove ath9k_hw_gettxintrtxqs

The driver can just check the mask directly

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: optimize register access functions
Felix Fietkau [Wed, 14 Mar 2012 15:40:25 +0000 (16:40 +0100)]
ath9k: optimize register access functions

By checking for NR_CPUS, the compiler can optimize out register access
serialization code on non-SMP kernels

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: remove ath9k_hw_getdefantenna
Felix Fietkau [Wed, 14 Mar 2012 15:40:24 +0000 (16:40 +0100)]
ath9k_hw: remove ath9k_hw_getdefantenna

The default antenna (as programmed by the INI file) is always 0 anyway.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: remove ath9k_hw_htc_resetinit
Felix Fietkau [Wed, 14 Mar 2012 15:40:23 +0000 (16:40 +0100)]
ath9k_hw: remove ath9k_hw_htc_resetinit

Automatically set the ah->htc_reset_init on init and after PHY disable.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: clean up tx completion interrupt handling
Felix Fietkau [Wed, 14 Mar 2012 15:40:22 +0000 (16:40 +0100)]
ath9k_hw: clean up tx completion interrupt handling

TXQ_FLAG_TXOKINT_ENABLE and TXQ_FLAG_TXERRINT_ENABLE are always set and
used together, and they share the same bitmask in enum ath9k_tx_queue_flags.
Simplify the code that tests for these flags.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: simplify tx queue interrupt mask handling
Felix Fietkau [Wed, 14 Mar 2012 15:40:21 +0000 (16:40 +0100)]
ath9k_hw: simplify tx queue interrupt mask handling

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: make uapsd_* keys per-vif
Eliad Peller [Wed, 14 Mar 2012 14:15:03 +0000 (16:15 +0200)]
mac80211: make uapsd_* keys per-vif

uapsd_queues and uapsd_max_sp_len are relevant only for managed
interfaces, and can be configured differently for each vif.

Move them from the local struct to sdata->u.mgd, and update
the debugfs functions accordingly.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: add NULL terminator to debugfs_netdev write buf
Eliad Peller [Wed, 14 Mar 2012 14:15:02 +0000 (16:15 +0200)]
mac80211: add NULL terminator to debugfs_netdev write buf

Some debugfs write functions call kstrto* functions, which
assume the string is null-terminated. Make it valid by changing
ieee80211_if_write() to use static buffer instead of allocating
one, and set the last char to NULL.

(The write functions try to parse some integer/mac address,
so 64 bytes buffer should be enough)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Don't sample max throughput rate in minstrel_ht
Helmut Schaa [Wed, 14 Mar 2012 12:31:11 +0000 (13:31 +0100)]
mac80211: Don't sample max throughput rate in minstrel_ht

The current max throughput rate is known to be good as otherwise it
wouldn't be the max throughput rate. Since rate sampling can introduce
some overhead (by adding RTS for example or due to not aggregating the
frame) don't sample the max throughput rate.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: rt2800usb: limit tx queues length
Stanislaw Gruszka [Wed, 14 Mar 2012 10:16:21 +0000 (11:16 +0100)]
rt2x00: rt2800usb: limit tx queues length

TX status fifo is limited to 16 elements. When we send more frames than
that, we can easily loose status, what is not good for rate scaling
algorithm.

On my testing the change does not degrade performance, actually make
is slightly better. Additionally with the patch I can see much less
various rt2x00 warnings in dmesg.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: rt2800usb: do not check packedid for aggregated frames
Stanislaw Gruszka [Wed, 14 Mar 2012 10:16:20 +0000 (11:16 +0100)]
rt2x00: rt2800usb: do not check packedid for aggregated frames

Tx statuses of aggregated subframes contain packetid of first subframe
in the AMPDU. We can not identify AMPDU subframes based on packedid, so
simply assume that status match first pending frame in the queue. Thats
mostly the same what 2800pci do.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: rt2800usb: rework txstatus code
Stanislaw Gruszka [Wed, 14 Mar 2012 10:16:19 +0000 (11:16 +0100)]
rt2x00: rt2800usb: rework txstatus code

Currently we read tx status register after each urb data transfer. As
callback procedure also trigger reading, that causing we have many
"threads" of reading status. To prevent that introduce TX_STATUS_READING
flags, and check if we are already in process of sequential reading
TX_STA_FIFO, before requesting new reads.

Change timer to hrtimer, that make TX_STA_FIFO overruns less possible.
Use 200 us for initial timeout, and then reschedule in 100 us period,
this values probably have to be tuned.

Make changes on txdone work. Schedule it from
rt2800usb_tx_sta_fifo_read_completed() callback when first valid status
show up. Check in callback if tx status timeout happens, and schedule
work on that condition too. That make possible to remove tx status
timeout from generic watchdog. I moved that to rt2800usb.

Loop in txdone work, that should prevent situation when we queue work,
which is already processed, and after finish work is not rescheduled
again.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: rt2800usb: rework txdone code
Stanislaw Gruszka [Wed, 14 Mar 2012 10:16:18 +0000 (11:16 +0100)]
rt2x00: rt2800usb: rework txdone code

Patch change txdone code to make it similar like txdone in rt2800pci,
process only one entry from queue matching tx status.

Before we processed all pending entries from queue until PACKEDID match,
that caused that we do not report tx statuses correctly.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: rt2800usb: move additional txdone into new function
Stanislaw Gruszka [Wed, 14 Mar 2012 10:16:17 +0000 (11:16 +0100)]
rt2x00: rt2800usb: move additional txdone into new function

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Fix multi-VIF BSS handling
Sujith Manoharan [Wed, 14 Mar 2012 09:11:05 +0000 (14:41 +0530)]
ath9k: Fix multi-VIF BSS handling

mac80211 provides short preamble information and ERP protection
information on a per-BSS basis, which can be used. Remove flags
stored in the driver, which was incorrect since they were being used
in a global manner.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Remove aggregation flags
Sujith Manoharan [Wed, 14 Mar 2012 09:10:58 +0000 (14:40 +0530)]
ath9k: Remove aggregation flags

SC_OP_TXAGGR and SC_OP_RXAGGR are not really needed.
The HT capabilities of the station and HW can be used instead.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: Cleanup FastChannelChange
Sujith Manoharan [Wed, 14 Mar 2012 09:10:46 +0000 (14:40 +0530)]
ath9k_hw: Cleanup FastChannelChange

The logic to determine whether to use FCC is a bit convoluted.
Use a small helper function to decide whether FCC is to be
used.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Remove 'other' VIF count
Sujith Manoharan [Wed, 14 Mar 2012 09:10:38 +0000 (14:40 +0530)]
ath9k: Remove 'other' VIF count

It is not needed and will not be used anyway since
unsupported interfaces are not allowed to be created.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Remove unused variables
Sujith Manoharan [Wed, 14 Mar 2012 09:10:31 +0000 (14:40 +0530)]
ath9k: Remove unused variables

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Remove unnecessary initialization
Sujith Manoharan [Wed, 14 Mar 2012 09:10:20 +0000 (14:40 +0530)]
ath9k: Remove unnecessary initialization

There is no need to mask out SWBA/BMISS from the
interrupt mask in start().

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Set IEEE80211_HW_REPORTS_TX_ACK_STATUS in rt2800
Helmut Schaa [Wed, 14 Mar 2012 07:56:47 +0000 (08:56 +0100)]
rt2x00: Set IEEE80211_HW_REPORTS_TX_ACK_STATUS in rt2800

rt2800 already reports the tx ack status of each frame back to mac80211.
Advertise this by setting IEEE80211_HW_REPORTS_TX_ACK_STATUS for rt2800.
This allows some mac80211 features like frame loss notifications to work
with rt2800.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: correction in structure name passed to sizeof()
Amitkumar Karwar [Wed, 14 Mar 2012 02:36:49 +0000 (19:36 -0700)]
mwifiex: correction in structure name passed to sizeof()

"hscfg" is declared as struct mwifiex_ds_hs_cfg. Use same structure
name for calculating it's size.

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 9
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:42 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 9

For files sta_rx.c, sta_tx.c, txrx.c, util.c and wmm.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 8
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:41 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 8

For files sta_event.c and sta_ioctl.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 7
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:40 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 7

For sta_cmd.c and sta_cmdresp.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 6
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:39 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 6

For file sdio.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 5
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:38 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 5

For file scan.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 4
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:37 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 4

For files main.c, main.h and pcie.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 3
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:36 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 3

For files fw.h, init.c and join.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 2
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:35 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 2

For files cfg80211.c, cfp.c, and cmdevt.c

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>
12 years agomwifiex: fix checkpatch --strict warnings/errors Part 1
Yogesh Ashok Powar [Wed, 14 Mar 2012 02:22:34 +0000 (19:22 -0700)]
mwifiex: fix checkpatch --strict warnings/errors Part 1

For files 11n.c, 11n.h, 11n_aggr.c, 11n_rxreorder.c

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>
12 years agomac80211: Don't let regulatory make us deaf
Paul Stewart [Tue, 13 Mar 2012 14:46:18 +0000 (07:46 -0700)]
mac80211: Don't let regulatory make us deaf

When regulatory information changes our HT behavior (e.g,
when we get a country code from the AP we have just associated
with), we should use this information to change the power with
which we transmit, and what channels we transmit.  Sometimes
the channel parameters we derive from regulatory information
contradicts the parameters we used in association.  For example,
we could have associated specifying HT40, but the regulatory
rules we apply may forbid HT40 operation.

In the situation above, we should reconfigure ourselves to
transmit in HT20 only, however it makes no sense for us to
disable receive in HT40, since if we associated with these
parameters, the AP has every reason to expect we can and
will receive packets this way.  The code in mac80211 does
not have the capability of sending the appropriate action
frames to signal a change in HT behaviour so the AP has
no clue we can no longer receive frames encoded this way.
In some broken AP implementations, this can leave us
effectively deaf if the AP never retries in lower HT rates.

This change breaks up the channel_type parameter in the
ieee80211_enable_ht function into a separate receive and
transmit part.  It honors the channel flags set by regulatory
in order to configure the rate control algorithm, but uses
the capability flags to configure the channel on the radio,
since these were used in association to set the AP's transmit
rate.

Signed-off-by: Paul Stewart <pstew@chromium.org>
Cc: Sam Leffler <sleffler@chromium.org>
Cc: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Luis R Rodriguez <mcgrof@frijolero.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: rename bss_conf timestamp to last_tsf
Johannes Berg [Tue, 13 Mar 2012 13:29:30 +0000 (14:29 +0100)]
mac80211: rename bss_conf timestamp to last_tsf

This value is not really very useful by itself,
yet some drivers (including iwlwifi until I can
figure out what it should do) use it. At least
rename it to "last_tsf" to indicate the meaning
and add a note that it may be really old.

I suspect the value may become useful combined
with the rx_status->mactime, but we don't (yet)
store that value and pass it to the driver.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211: clarify timestamp in cfg80211_inform_bss
Johannes Berg [Tue, 13 Mar 2012 12:57:04 +0000 (13:57 +0100)]
cfg80211: clarify timestamp in cfg80211_inform_bss

This is intended to be the timestamp sent by the
peer in the beacon/probe response, not any form
of host timestamp. Clarify the documentation and
variable names.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobrmc80211: dont use jiffies for BSS TSF
Johannes Berg [Tue, 13 Mar 2012 12:57:03 +0000 (13:57 +0100)]
brmc80211: dont use jiffies for BSS TSF

The cfg80211_inform_bss() timestamp argument is
intended to be the TSF, not any form of host
timestamp.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoDocumentation: make exists consistent
Yegor Yefremov [Tue, 13 Mar 2012 09:57:51 +0000 (10:57 +0100)]
Documentation: make exists consistent

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: rename fuctions and variables for better readability
Yogesh Ashok Powar [Tue, 13 Mar 2012 02:35:13 +0000 (19:35 -0700)]
mwifiex: rename fuctions and variables for better readability

Renaming the long fuctions and variable names from 11n_rxreoder.c
file to shorter ones 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>
12 years agomwifiex: rearrange if and else blocks to avoid extra indentation
Yogesh Ashok Powar [Tue, 13 Mar 2012 02:35:12 +0000 (19:35 -0700)]
mwifiex: rearrange if and else blocks to avoid extra indentation

This adds 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>
12 years agomwifiex: use usleep_range instead of udelay
Yogesh Ashok Powar [Tue, 13 Mar 2012 02:35:11 +0000 (19:35 -0700)]
mwifiex: use usleep_range instead of udelay

For the delay of 10 uSec or more usleep_range is prefered.
Unlike udelay, sleep_range avoids large number of undesired
interrupts.

Ref Documentation/timers/timers-howto.txt

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>
12 years agomwifiex: merge functions to derive cfp by chan & freq in one
Yogesh Ashok Powar [Tue, 13 Mar 2012 02:35:10 +0000 (19:35 -0700)]
mwifiex: merge functions to derive cfp by chan & freq in one

There exist different functions with very long names
to derive the channel frequency and power tripplet
based on band and channel/freq.

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>
12 years agomwifiex: rearrange switch statement
Yogesh Ashok Powar [Tue, 13 Mar 2012 02:35:09 +0000 (19:35 -0700)]
mwifiex: rearrange switch statement

Fixing coding style by rearranging the switch statement

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>
12 years agomwifiex: rename long function names to shorter ones
Yogesh Ashok Powar [Tue, 13 Mar 2012 02:35:08 +0000 (19:35 -0700)]
mwifiex: rename long function names to shorter ones

This saves some space and adds 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>
12 years agomac80211: linearize SKBs as needed for crypto
Johannes Berg [Mon, 12 Mar 2012 12:49:14 +0000 (13:49 +0100)]
mac80211: linearize SKBs as needed for crypto

Not linearizing every SKB will help actually pass
non-linear SKBs all the way up when on an encrypted
connection. For now, linearize TKIP completely as
it is lower performance and I don't quite grok all
the details.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: move RX WEP weak IV counting
Johannes Berg [Mon, 12 Mar 2012 12:49:13 +0000 (13:49 +0100)]
mac80211: move RX WEP weak IV counting

This is better done inside the WEP decrypt
function where it doesn't have to check all
the conditions any more since they've been
tested already.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agob43: Load firmware from a work queue and not from the probe routine
Larry Finger [Fri, 9 Mar 2012 04:27:46 +0000 (22:27 -0600)]
b43: Load firmware from a work queue and not from the probe routine

Recent changes in udev are causing problems for drivers that load firmware
from the probe routine. As b43 has such a structure, it must be changed.
As this driver loads more than 1 firmware file, changing to the asynchronous routine
request_firmware_nowait() would be complicated. In this implementation, the probe
routine starts a queue that calls the firmware loading routines.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agob43legacy: Load firmware from work queue instead of from probe routine
Larry Finger [Fri, 9 Mar 2012 04:25:57 +0000 (22:25 -0600)]
b43legacy: Load firmware from work queue instead of from probe routine

Recent changes in udev are causing problems for drivers that load firmware
from the probe routine. As b43legacy has such a structure, it must be changed.
As this driver loads 3 or 4 firmware files, changing to the asynchronous routine
request_firmware_nowait() would be complicated. In this implementation, the probe
routine starts a work queue that calls the firmware loading routines.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoMerge branch 'for-linville' of git://github.com/kvalo/ath6kl
John W. Linville [Tue, 13 Mar 2012 18:45:40 +0000 (14:45 -0400)]
Merge branch 'for-linville' of git://github.com/kvalo/ath6kl

12 years agoath6kl: fix debug.c file mode
Kalle Valo [Tue, 13 Mar 2012 12:36:27 +0000 (14:36 +0200)]
ath6kl: fix debug.c file mode

Commit 7504a3e1 ("ath6kl: add padding to firmware log records") accidentally
changed debug.c mode from 100644 to 100755. Revert that back to original.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
12 years agoath6kl: use max_t() in ath6kl_cfg80211_connect()
Kalle Valo [Mon, 12 Mar 2012 11:23:23 +0000 (13:23 +0200)]
ath6kl: use max_t() in ath6kl_cfg80211_connect()

ath6kl/cfg80211.c:589: WARNING: max() should probably be
max_t(u16, vif->listen_intvl_t, ATH6KL_MAX_WOW_LISTEN_INTL)

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
12 years agoath6kl: fix open parenthesis alignment in ath6kl_sdio_suspend()
Kalle Valo [Mon, 12 Mar 2012 11:23:14 +0000 (13:23 +0200)]
ath6kl: fix open parenthesis alignment in ath6kl_sdio_suspend()

ath6kl/sdio.c:875: CHECK: Alignment should match open parenthesis

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
12 years agoath6kl: replace strict_strtoul() with kstrtoul()
Kalle Valo [Mon, 12 Mar 2012 11:23:03 +0000 (13:23 +0200)]
ath6kl: replace strict_strtoul() with kstrtoul()

Recommended by checkpatch.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
12 years agoath6kl: fix regression in ath6kl_upload_board_file()
Kalle Valo [Mon, 12 Mar 2012 11:22:54 +0000 (13:22 +0200)]
ath6kl: fix regression in ath6kl_upload_board_file()

My patch 24fc32b3 ("ath6kl: add ath6kl_bmi_write_hi32()") caused a regression
in ath6kl_upload_board_file() and the board_address variable was not
properly initialised in some cases:

ath6kl/init.c:1068:6: warning: â€˜board_address’ may be used uninitialized
in this function

Most likely this broke ar6004 support but I can't test that right now.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
12 years agomac80211: set basic rates earlier
Johannes Berg [Thu, 8 Mar 2012 14:02:08 +0000 (15:02 +0100)]
mac80211: set basic rates earlier

The authentication and association handshake
already happens in the context of the new BSS,
and the basic rates are needed at least for
the ACK response frame to the authentication
or association response frames. Therefore the
basic rates should already be configured into
the driver when those frames are sent.

Change the logic to set up the basic rates in
the connection preparation that happens for
authentication and association (if needed).

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: refactor common auth/assoc setup code
Johannes Berg [Thu, 8 Mar 2012 14:02:07 +0000 (15:02 +0100)]
mac80211: refactor common auth/assoc setup code

As associating is possible without first authenticating
(for FT over DS) association also has to be able to
switch to the right channel, insert the station entry
etc. Factor out this common code into a new function
called ieee80211_prep_connection().

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: remove spurious BSSID change flag
Johannes Berg [Thu, 8 Mar 2012 14:02:06 +0000 (15:02 +0100)]
mac80211: remove spurious BSSID change flag

The BSSID has been set a lot earlier already and
didn't change again in ieee80211_set_associated().

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: simplify wmm check during association
Johannes Berg [Thu, 8 Mar 2012 14:02:05 +0000 (15:02 +0100)]
mac80211: simplify wmm check during association

Instead of setting assoc_data->wmm_used solely
based on the BSS also take into account our own
capabilities and later check those.

Also rename "wmm_used" and "uapsd_used" to just
"wmm" and "uapsd".

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: simplify HT checks
Johannes Berg [Thu, 8 Mar 2012 14:02:04 +0000 (15:02 +0100)]
mac80211: simplify HT checks

Always set/use IEEE80211_STA_DISABLE_11N instead
of duplicating the queue, WMM and HT checks in
all places.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: move misplaced comment
Johannes Berg [Thu, 8 Mar 2012 14:02:03 +0000 (15:02 +0100)]
mac80211: move misplaced comment

Looks like some changes in this area moved
the code but not the comment that belongs
to the code, move it to the right place.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: Add bool mvm_ucode to iwl_fw
David Spinadel [Sat, 10 Mar 2012 21:00:15 +0000 (13:00 -0800)]
iwlwifi: Add bool mvm_ucode to iwl_fw

mvm_ucode is true when mvm TLVs arive.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: change struct iwl_fw
David Spinadel [Sat, 10 Mar 2012 21:00:14 +0000 (13:00 -0800)]
iwlwifi: change struct iwl_fw

Change iwl_fw struct to hold an array of fw_img instead of
three separated instances.

Change fw_img to hold an array of fw_desc instead of two
separate descriptors for instructions and data.

Change load_given_ucode, load_section, verification functions
etc. to support this structure.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: Add TLVs and fields for 16.0 uCode
David Spinadel [Sat, 10 Mar 2012 21:00:13 +0000 (13:00 -0800)]
iwlwifi: Add TLVs and fields for 16.0 uCode

New TLVs for ucode sections that are not known as
instruction or data.

New TLVs for phy-configuration and default calibrations.

Add default calib and phy config fields to iwl_fw.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: more modularity in fw images and sections
David Spinadel [Sat, 10 Mar 2012 21:00:12 +0000 (13:00 -0800)]
iwlwifi: more modularity in fw images and sections

Changed iwl_firmware_pieces structure to support an array of
separate images, and an array of sections for each image.

In fw_sec and fw_desc structures, added a field for
offset from the HW address, to support 16.0 uCode that
provides an offset instead of any other data about the section.
This field is filled with default values when parsing instruction
or data section.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: explicitly track whether INIT uCode was run
David Spinadel [Sat, 10 Mar 2012 21:00:11 +0000 (13:00 -0800)]
iwlwifi: explicitly track whether INIT uCode was run

Remove IWL_UCODE_NONE from enum iwl_ucode_type which,
by being the default value in 0-initialized memory,
implicitly allowed us to track whether any uCode had
ever been loaded successfully (which would have been
the INIT uCode) and instead explicitly track whether
or not INIT uCode has been run.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: avoid some operations if no uCode loaded
David Spinadel [Sat, 10 Mar 2012 21:00:10 +0000 (13:00 -0800)]
iwlwifi: avoid some operations if no uCode loaded

Printing the SRAM and similar testmode operations could
be triggered when no uCode is loaded; prevent those
invalid operations by tracking whether uCode is loaded.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: move wait_command_queue from shared to trans
Meenakshi Venkataraman [Sat, 10 Mar 2012 21:00:09 +0000 (13:00 -0800)]
iwlwifi: move wait_command_queue from shared to trans

This wait queue really belongs to the transport
layer, as it is used for sending synchronous
commands to the HW.

However, only op_mode knows about errors and
exceptional conditions, so make this queue
accessible by the op_mode.

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>
12 years agoiwlwifi: convert bad state message into warning
Johannes Berg [Sat, 10 Mar 2012 21:00:08 +0000 (13:00 -0800)]
iwlwifi: convert bad state message into warning

Looking at logs, I see that we did get the bad
state message a few times for some reason, but
it doesn't indicate why or where it came from,
so make it a warning in order to identify it.

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>
12 years agoiwlwifi: abstract out missing SEQ_RX_FRAME workaround
Johannes Berg [Sat, 10 Mar 2012 21:00:07 +0000 (13:00 -0800)]
iwlwifi: abstract out missing SEQ_RX_FRAME workaround

Mohammed Shafi ran into [1] the SEQ_RX_FRAME workaround
warning with a statistics notification, this means we
can't just remove it as we'd hoped.

Abstract it out so that the higher layer can configure
this as a kind of "filter" in the transport.

[1] http://mid.gmane.org/CAD2nsn1_DzbRHuSbS_1rFNzuux_9pW1-pABEasQ01_y7-ndO5w@mail.gmail.com

Reported-by: Mohammed Shafi <shafi.wireless@gmail.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>
12 years agoiwlwifi: remove TX hex debug
Johannes Berg [Sat, 10 Mar 2012 21:00:06 +0000 (13:00 -0800)]
iwlwifi: remove TX hex debug

Tracing is much better for this, so
remove the hex printk debug for the
TX command.

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>
12 years agoath9k: fix going to full-sleep on PS idle
Felix Fietkau [Sat, 10 Mar 2012 12:57:04 +0000 (13:57 +0100)]
ath9k: fix going to full-sleep on PS idle

The check for PS_WAIT_FOR_TX_ACK was inverted, the hardware should only go
to full sleep if no tx is pending.

Reported-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: stable@vger.kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Fix mactime from being clobbered in rx_status
Ashok Nagarajan [Sat, 10 Mar 2012 02:57:39 +0000 (18:57 -0800)]
ath9k: Fix mactime from being clobbered in rx_status

mactime was being overwritten by the function ath9k_rx_skb_preprocess. Fixed by
memsetting rx_status in ath_rx_tasklet.

Signed-off-by: Ashok Nagarajan <ashok@cozybit.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: configure bss info at assoc notification
Rajkumar Manoharan [Fri, 9 Mar 2012 23:36:49 +0000 (05:06 +0530)]
ath9k: configure bss info at assoc notification

The proper place to configure bss info is at assoc notification. So that
ath9k continues to work if the supirous bssid notification will be
removed in future.

Cc: Johannes Berg <johannes@sipsolutions.net>
Reported-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: add auth/assoc/deauth flow diagram
Johannes Berg [Fri, 9 Mar 2012 16:25:33 +0000 (17:25 +0100)]
mac80211: add auth/assoc/deauth flow diagram

I've been working on some documentation, so let's
add this diagram to the kernel tree where at least
it has a chance of being maintained :-)

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Fix beacon skew in rt2800pci
Helmut Schaa [Fri, 9 Mar 2012 14:31:50 +0000 (15:31 +0100)]
rt2x00: Fix beacon skew in rt2800pci

rt2800pci is suffering from beacon skew in AP mode. Some powersaving
clients (like VOIP phones) are getting into trouble after some time
when the beacon skew is getting too big.

The ralink legacy drivers contain a function that indicates that the
beacon timer is off by 1us per tbtt. And this function works around
that by reducing the beacon interval for every 64th beacon transmission
by 64us (the smallest possible value). Do the same in rt2800pci.

This allows proper powersaving when rt2800pci is used in AP mode.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Disable MCS > 7 in minstrel_ht when STA uses static SMPS
Helmut Schaa [Fri, 9 Mar 2012 13:13:45 +0000 (14:13 +0100)]
mac80211: Disable MCS > 7 in minstrel_ht when STA uses static SMPS

Disable multi stream rates (MCS > 7) when a STA is in static SMPS mode
since it has only one active rx chain. Hence, it doesn't even make
sense to sample multi stream rates.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: set channel back after disassociating
Johannes Berg [Fri, 9 Mar 2012 12:12:35 +0000 (13:12 +0100)]
mac80211: set channel back after disassociating

As we've discussed, we want to avoid channel changes
while associated. While the part when we actually
associate needs a bit more work, the bit that happens
on disassociating can be changed quite easily. Move
the channel type change later in the disassociate
process to set the channel only after the driver was
told that it's now disassociated.

As the driver could expect powersave to be enabled
only when associated, this thus results in splitting
the config call, but overall what happens makes more
sense this way.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: remove tx_sync
Johannes Berg [Fri, 9 Mar 2012 11:49:21 +0000 (12:49 +0100)]
mac80211: remove tx_sync

When the station state callback was added, this
was no longer needed in theory. With the iwlwifi
changes to remove use of it landing, we can kill
the entire tx-sync framework again, RIP.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: Fix enabling of MCI and RTT
Mohammed Shafi Shajakhan [Fri, 9 Mar 2012 06:31:55 +0000 (12:01 +0530)]
ath9k_hw: Fix enabling of MCI and RTT

tested in AR9462 Rev:2, both hardware capability flag are set

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agonet/wireless: ipw2x00: remove unused definitions for regulatory domain
Stanislav Yakovlev [Fri, 9 Mar 2012 00:06:50 +0000 (19:06 -0500)]
net/wireless: ipw2x00: remove unused definitions for regulatory domain

ipw2200 driver does not use these defines, it uses geo struct instead.
Therefore remove them from its header.

Note: we keep them in the ipw2100 driver's header, because the driver
still uses them.

Signed-off-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Add wiphy name to log messages.
Ben Greear [Thu, 8 Mar 2012 18:20:55 +0000 (10:20 -0800)]
ath9k: Add wiphy name to log messages.

On systems with multiple NICs, it's nice to know which
one is producing warnings.  Here is an example of the
new ouput:

ath: wiphy0: Failed to stop TX DMA, queues=0x005!

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211_hwsim: Fix set mactime on receiver hwsim radio
Ashok Nagarajan [Thu, 8 Mar 2012 17:27:34 +0000 (09:27 -0800)]
mac80211_hwsim: Fix set mactime on receiver hwsim radio

The patch "mac80211_hwsim:  Add tsf to beacons, probe responses and radiotap
header" was setting the mactime on wrong hwsim radio. This patch fixes it.

Signed-off-by: Ashok Nagarajan <ashok@cozybit.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Limit TID buffering during BA session setup/teardown
Helmut Schaa [Wed, 7 Mar 2012 16:20:30 +0000 (17:20 +0100)]
mac80211: Limit TID buffering during BA session setup/teardown

While setting up or tearing down a BA session mac80211 is buffering
pending frames for the according TID. However, there's currently no
limit on how many frames are buffered possibly leading to an out-of-
memory situation. This can happen on systems with little memory when
the CPU is fully loaded since the BA session work is executed in
process context while frames can still come via softirq.

Apply a limitation to the TIDs pending queue to avoid consuming
too much memory in this situation.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211: Add background scan period attribute.
Bala Shanmugam [Wed, 7 Mar 2012 11:57:12 +0000 (17:27 +0530)]
cfg80211: Add background scan period attribute.

Receive background scan period as part of connect
command and pass the same to the driver.

Signed-off-by: Bala Shanmugam <bkamatch@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: Fix BTCOEX shutdown
Sujith Manoharan [Mon, 12 Mar 2012 02:21:07 +0000 (07:51 +0530)]
ath9k: Fix BTCOEX shutdown

Flush MCI profiles only if MCI is being actually used.
This fixes a panic on driver unload when non-MCI devices
are being used and btcoex_enable is set.

BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [<ffffffffa06296d2>] ath_mci_flush_profile+0x12/0x100 [ath9k]
Call Trace:
[<ffffffffa061befe>] ath9k_stop_btcoex+0x5e/0x80 [ath9k]
[<ffffffffa061ed57>] ath9k_stop+0xb7/0x230 [ath9k]
[<ffffffffa0533f30>] ieee80211_stop_device+0x50/0x180 [mac80211]
[<ffffffffa051f0cf>] ieee80211_do_stop+0x2af/0x6a0 [mac80211]
[<ffffffffa051f4da>] ieee80211_stop+0x1a/0x20 [mac80211]
[<ffffffff81365d96>] __dev_close_many+0x86/0xe0
[<ffffffff81365ee0>] dev_close_many+0xa0/0x110
[<ffffffff81366038>] rollback_registered_many+0xe8/0x260
[<ffffffff813661cb>] unregister_netdevice_many+0x1b/0x80
[<ffffffffa051e950>] ieee80211_remove_interfaces+0xd0/0x110 [mac80211]
[<ffffffffa050c133>] ieee80211_unregister_hw+0x53/0x120 [mac80211]
[<ffffffffa061d5a4>] ath9k_deinit_device+0x44/0x70 [ath9k]
[<ffffffffa062c1d4>] ath_pci_remove+0x54/0xa0 [ath9k]
[<ffffffff81267c46>] pci_device_remove+0x46/0x110
[<ffffffff8131021c>] __device_release_driver+0x7c/0xe0
[<ffffffff81310960>] driver_detach+0xd0/0xe0
[<ffffffff81310078>] bus_remove_driver+0x88/0xe0
[<ffffffff81311122>] driver_unregister+0x62/0xa0
[<ffffffff81268004>] pci_unregister_driver+0x44/0xc0
[<ffffffffa062c8b5>] ath_pci_exit+0x15/0x20 [ath9k]
[<ffffffffa063205d>] ath9k_exit+0x15/0x31 [ath9k]
[<ffffffff810b92cc>] sys_delete_module+0x18c/0x270
[<ffffffff814373dd>] ? retint_swapgs+0x13/0x1b
[<ffffffff8124828e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff81437de9>] system_call_fastpath+0x16/0x1b

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath6kl: Fix merge error in ath6kl_set_ies()
Aarthi Thiruvengadam [Thu, 8 Mar 2012 20:25:02 +0000 (12:25 -0800)]
ath6kl: Fix merge error in ath6kl_set_ies()

Portion of the commit id 080eec4fb4 ("ath6kl: Clear the IE in firmware
if not set") was overwritten by mistake due to a merge
conflict. This patch fixes the code back to how it should be.

kvalo: more details to the commit log

Signed-off-by: Aarthi Thiruvengadam <athiruve@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
12 years agoiwlwifi: fix the delta for remove max_txq_num patch
Wey-Yi Guy [Fri, 9 Mar 2012 19:13:40 +0000 (11:13 -0800)]
iwlwifi: fix the delta for remove max_txq_num patch

BIg portion of "iwlwifi: remove max_txq_num from hw_params" was
missing during merge, here is the fix for it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: fix cmd_queue number merge
Wey-Yi Guy [Fri, 9 Mar 2012 18:12:42 +0000 (10:12 -0800)]
iwlwifi: fix cmd_queue number merge

iwlwifi: move command queue number out of the iwl_shared struct
move the cmd_queue out of iwl_shared struct, but for some reason the
patch is half done and fail compile

Here is the fix

John, could you apply this patch to wireless-next to address the issue
Thanks

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: restore PAN support
Emmanuel Grumbach [Wed, 7 Mar 2012 17:52:41 +0000 (09:52 -0800)]
iwlwifi: restore PAN support

in iwlwifi: move setting up fw parameters

Meenakshi moved code up to configure the transport layer, but this
code read the sku before it was set (from the EEPROM). This killed
P2P.
Only the ucode_flags are needed to configure the transport layer, not
the sku which _must_ be set after the EEPROM is read.

We need to reconfigure the transport in case the EEPROM disabled PAN
support. This is not the nicest thing to do, but we have no choice.
Document that we are allowed to configure the transport several times
before start_fw, but not after.

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>
12 years agoiwlwifi: move command queue number out of the iwl_shared struct
Meenakshi Venkataraman [Thu, 8 Mar 2012 19:29:12 +0000 (11:29 -0800)]
iwlwifi: move command queue number out of the iwl_shared struct

The command queue number is required by the transport
layer, but it can be determined only by the op mode.
Move this parameter to the dvm op mode, and configure
the transport layer using an API.

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>
12 years agomwifiex: correction in number of bitrates
Amitkumar Karwar [Thu, 8 Mar 2012 03:36:07 +0000 (19:36 -0800)]
mwifiex: correction in number of bitrates

In recent commit "mwifiex: correct bitrates advertised..", we have
removed 22Mbps and 72Mbps bitrates from supported bitrate array.
It means number of bitrates has reduced from 14 to 12.

Initialize ".n_bitrates" to array size instead of hardcoding it.

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>
12 years agonet/wireless: ipw2x00: remove WEXT_USECHANNELS define
Stanislav Yakovlev [Thu, 8 Mar 2012 00:32:40 +0000 (19:32 -0500)]
net/wireless: ipw2x00: remove WEXT_USECHANNELS define

Driver does not use it any more.

Signed-off-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: update ieee80211_tx_rate_control kerneldoc
Simon Wunderlich [Wed, 7 Mar 2012 20:31:13 +0000 (21:31 +0100)]
mac80211: update ieee80211_tx_rate_control kerneldoc

 * add entry for rate_idx_mcs_mask
 * fix order of entries to represent the structs' order

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlwifi: correct status bit refactoring errors
Don Fry [Wed, 7 Mar 2012 17:52:43 +0000 (09:52 -0800)]
iwlwifi: correct status bit refactoring errors

I missed a couple of status bits in my refactoring changes.  This
fixes the ones I missed.

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>
12 years agoiwlwifi: don't delete AP station directly
Johannes Berg [Wed, 7 Mar 2012 17:52:42 +0000 (09:52 -0800)]
iwlwifi: don't delete AP station directly

With the mac80211 deauth sequence changes, the
station is deleted before the device is set
unassociated. This can cause the device to get
confused as it expects the station to be there
while the associated bit is set.

To fix this, do not delete the AP station from
the device when mac80211 asks for deletion,
instead just mark it as unused and rely on the
unassociated RXON to drop it from the station
database in the device.

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>