9 years agossb: Look for SPROM at different offset on higher rev CC
Rafał Miłecki [Wed, 31 Mar 2010 19:59:21 +0000]
ssb: Look for SPROM at different offset on higher rev CC

Our offset handling becomes even a little more hackish now. For some reason I
do not understand all offsets as inrelative. It assumes base offset is 0x1000
but it will work for now as we make offsets relative anyway by removing base
0x1000. Should be cleaner however.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agossb: do not read SPROM if it does not exist
John W. Linville [Wed, 31 Mar 2010 19:39:35 +0000]
ssb: do not read SPROM if it does not exist

Attempting to read registers that don't exist on the SSB bus can cause
hangs on some boxes.  At least some b43 devices are 'in the wild' that
don't have SPROMs at all.  When the SSB bus support loads, it attempts
to read these (non-existant) SPROMs and causes hard hangs on the box --
no console output, etc.

This patch adds some intelligence to determine whether or not the SPROM
is present before attempting to read it.  This avoids those hard hangs
on those devices with no SPROM attached to their SSB bus.  The
SSB-attached devices (e.g. b43, et al.) won't work, but at least the box
will survive to test further patches. :-)

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Michael Buesch <mb@bu3sch.de>

9 years agoradiotap parser: fix endian annotation
Johannes Berg [Wed, 21 Apr 2010 08:25:36 +0000]
radiotap parser: fix endian annotation

When I updated this from the corresponding
userspace library, an annotation error crept
in -- this variable needs to be annotated as
little endian. No effect on code generation.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: make all AR9002 initvals use u32
Luis R. Rodriguez [Tue, 20 Apr 2010 22:28:36 +0000]
ath9k_hw: make all AR9002 initvals use u32

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: make two initvals consto for the AR9001 family
Luis R. Rodriguez [Tue, 20 Apr 2010 22:28:35 +0000]
ath9k_hw: make two initvals consto for the AR9001 family

This makes ar5416Addac_9160 and ar5416Addac_9160 const
I guess we skipped them long ago.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: Fix ieee80211_sta_conn_mon_timer with hw connection monitoring
Juuso Oikarinen [Tue, 20 Apr 2010 10:15:56 +0000]
mac80211: Fix ieee80211_sta_conn_mon_timer with hw connection monitoring

When IEEE80211_HW_CONNECTION_MONITOR is configured by the driver, starting
of ieee80211_sta_conn_mon_timer should be prevented, as it is then not needed.

This is currently partially the case. As it seems, when a probe-response is
received from the AP the timer is still restarted, thus restarting the host
based connection keep-alive mechanism. These probe-responses happen at least
when scanning while associated.

Fix this by preventing starting of the ieee80211_sta_conn_mon_timer in the
ieee80211_rx_mgmt_probe_resp function.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: set the STBC flag in rate control if the peer supports it
Felix Fietkau [Mon, 19 Apr 2010 17:57:37 +0000]
ath9k: set the STBC flag in rate control if the peer supports it

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: add support for Tx and Rx STBC
Felix Fietkau [Mon, 19 Apr 2010 17:57:36 +0000]
ath9k: add support for Tx and Rx STBC

Supported only for single stream rates by the hardware

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: add flags for STBC (Space-Time Block Coding)
Felix Fietkau [Mon, 19 Apr 2010 17:57:35 +0000]
mac80211: add flags for STBC (Space-Time Block Coding)

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: initialize the number of tx/rx streams correctly
Felix Fietkau [Mon, 19 Apr 2010 17:57:34 +0000]
ath9k: initialize the number of tx/rx streams correctly

AR9300 based hardware can 3x3 MCS rates, this should be set in the
HT capabilities.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: reduce the bits_per_symbol table size, support more streams
Felix Fietkau [Mon, 19 Apr 2010 17:57:33 +0000]
ath9k: reduce the bits_per_symbol table size, support more streams

Instead of increasing bits_per_symbol for supporting more streams, keep
it single-stream only and multiply the values by the numer of streams.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: update the ath_max_4ms_framelen table
Felix Fietkau [Mon, 19 Apr 2010 17:57:32 +0000]
ath9k: update the ath_max_4ms_framelen table

Include MCS0-31 and also add SGI for HT20. This makes it
possible to support more different rate combinations with
newer hardware.

Based on a patch by Selvam. T.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: update the MCS mask for MCS16 and above
Felix Fietkau [Mon, 19 Apr 2010 17:57:31 +0000]
ath9k: update the MCS mask for MCS16 and above

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: clean up tx buffer handling
Felix Fietkau [Mon, 19 Apr 2010 17:57:30 +0000]
ath9k: clean up tx buffer handling

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: check for specific rx stuck conditions and recover from them
Felix Fietkau [Mon, 19 Apr 2010 17:57:29 +0000]
ath9k: check for specific rx stuck conditions and recover from them

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: document IEEE80211_CONF_CHANGE_QOS
Stanislaw Gruszka [Tue, 20 Apr 2010 06:16:37 +0000]
mac80211: document IEEE80211_CONF_CHANGE_QOS

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath5k: basic support for survey
Holger Schurig [Mon, 19 Apr 2010 08:24:22 +0000]
ath5k: basic support for survey

This adds the first element of survey data, the noise floor figure.

Signed-off-by: Holger Schurig <holgerschurig@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: sample survey implementation for mac80211 & hwsim
Holger Schurig [Mon, 19 Apr 2010 08:23:57 +0000]
mac80211: sample survey implementation for mac80211 & hwsim

This adds the survey function to both mac80211 itself and to mac80211_hwsim.
For the latter driver, we simply invent some noise level.A real driver which
cannot determine the real channel noise MUST NOT report any noise, especially
not a magically conjured one :-)

Signed-off-by: Holger Schurig <holgerschurig@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: Group Key fix for VAPs
Daniel Yingqiang Ma [Tue, 13 Apr 2010 07:12:07 +0000]
ath9k: Group Key fix for VAPs

When I set up multiple VAPs with ath9k, I encountered an issue that
the traffic may be lost after a while.

The detailed phenomenon is
1. After a while the clients connected to one of these VAPs will get
into a state that no broadcast/multicast packets can be transfered
successfully while the unicast packets can be transfered normally.
2. Minutes latter the unitcast packets transfer will fail as well,
because the ARP entry is expired and it can't be freshed due to the
broadcast trouble.

It's caused by the group key overwritten and someone discussed this
issue in ath9k-devel maillist before, but haven't work out a fix yet.

I referred the method in madwifi, and made a patch for ath9k.
The method is to set the high bit of the sender(AP)'s address, and
associated that mac and the group key. It requires the hardware
supports multicast frame key search. It seems true for AR9160.

Not sure whether it's the correct way to fix this issue. But it seems
to work in my test. The patch is attached, feel free to revise it.

Signed-off-by: Daniel Yingqiang ma <yma.cool@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agowireless: rt2x00: rt2800usb: identify Allwin devices
Xose Vazquez Perez [Mon, 19 Apr 2010 09:54:16 +0000]
wireless: rt2x00: rt2800usb: identify Allwin devices

Applied common sense, no info from the manufacturer:

(0x8516, 0x2070) is RT2070
(0x8516, 0x2770) is RT2770
(0x8516, 0x2870) is RT2870
[...]

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: add missing newline
Johannes Berg [Mon, 19 Apr 2010 09:03:13 +0000]
mac80211: add missing newline

One HT debugging printk is missing a newline,
add it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoorinoco: have sparse check endian issues
David Kilroy [Mon, 19 Apr 2010 07:16:23 +0000]
orinoco: have sparse check endian issues

Orinoco should be endian clean, so enable the checking.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoorinoco: use cfg80211_find_ie
David Kilroy [Mon, 19 Apr 2010 07:16:22 +0000]
orinoco: use cfg80211_find_ie

Instead of using a local function.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoorinoco: implement set_wiphy_params
David Kilroy [Mon, 19 Apr 2010 07:16:21 +0000]
orinoco: implement set_wiphy_params

... to set fragmentation and RTS thresholds. Also report RTS retry
settings during wiphy init.

Note that the existing semantics for enabling microwave robustness are
preserved on firmwares that have it.

Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: Prevent running sta_cleanup timer unnecessarily
Juuso Oikarinen [Mon, 19 Apr 2010 07:12:52 +0000]
mac80211: Prevent running sta_cleanup timer unnecessarily

The sta_cleanup timer is used to periodically expire buffered frames from the
tx buf. The timer is executing periodically, regardless of the need for it.
This is wasting resources.

Fix this simply by not restarting the sta_cleanup timer if the tx buffer was
empty. Restart the timer when there is some more tx-traffic.

Cc: Janne Ylälehto <janne.ylalehto@nokia.com>
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: fix stopping RX BA session from timer
Johannes Berg [Mon, 19 Apr 2010 09:00:24 +0000]
mac80211: fix stopping RX BA session from timer

Kalle reported that his system deadlocks since my
recent work in this area. The reason quickly became
apparent: we try to cancel_timer_sync() a timer
from within itself. Fix that by making the function
aware of the context it is called from.

Reported-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Tested-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: fix typo in comments
Daniel Halperin [Sun, 18 Apr 2010 16:28:18 +0000]
mac80211: fix typo in comments

The flag is called IEEE80211_TX_STAT_AMPDU rather than using the whole word
STATUS.

Signed-off-by: Daniel Halperin <dhalperi@cs.washington.edu>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoMerge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git...
John W. Linville [Mon, 19 Apr 2010 20:37:59 +0000]
Merge branch 'wireless-next-2.6' of git://git./linux/kernel/git/iwlwifi/iwlwifi-2.6

9 years agoiwlwifi: make scan antenna forcing more generic
Johannes Berg [Tue, 13 Apr 2010 08:04:35 +0000]
iwlwifi: make scan antenna forcing more generic

Some future hardware will also require some antenna
overrides so make the current logic more generic;
right now it is semantically based on a workaround
for off-channel reception but the reasons for the
new antenna overrides will be different.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: remove monitor check
Johannes Berg [Tue, 13 Apr 2010 08:04:34 +0000]
iwlwifi: remove monitor check

Off-channel reception is acceptable in monitor
mode, and checking for monitor mode this way is
not really correct anyway since it could be the
case while operating.

Now iwl_is_monitor_mode() is no longer used so
remove it completely.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: don't check monitor for scanning
Johannes Berg [Tue, 13 Apr 2010 08:04:33 +0000]
iwlwifi: don't check monitor for scanning

Monitor mode operation need not (and probably should
not) affect scanning this way since real monitoring
can not properly happen while scanning anyway.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: rename TX_CMD_FLG_BT_DIS_MSK
Johannes Berg [Tue, 13 Apr 2010 08:04:32 +0000]
iwlwifi: rename TX_CMD_FLG_BT_DIS_MSK

The flag name is a little misleading, this
flag instructs the device to ignore bluetooth
messages for purposes of frame transmissions,
so rename the flag to TX_CMD_FLG_IGNORE_BT.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: make BT coex config a virtual method
Johannes Berg [Tue, 13 Apr 2010 08:04:31 +0000]
iwlwifi: make BT coex config a virtual method

Some future hardware will require a different command to
be sent for bluetooth coexist, so make this a virtual
method that can be changed on a per-device basis.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: more code clean up for agn devices
Wey-Yi Guy [Tue, 13 Apr 2010 01:32:11 +0000]
iwlwifi: more code clean up for agn devices

Since multiple new devices having similar uCode architecture and use same
registers address, remove more reference to 5000 series to eliminate the
confusion.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: sanity check for turn on aggregation tid
Wey-Yi Guy [Mon, 12 Apr 2010 21:02:36 +0000]
iwlwifi: sanity check for turn on aggregation tid

Perform sanity check for turn on aggregation tid. Also remove the
option for turn on all the aggregation tids at once since it is
deprecated function and not being used.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: PA type for 6000g2 series
Wey-Yi Guy [Fri, 9 Apr 2010 16:36:11 +0000]
iwlwifi: PA type for 6000g2 series

For 6000g2 series of NICs, PA type is determined by uCode, driver do not
have to set the register for internal/external PA. It is a workaround
just for 6000 series NICs.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: add hw revision for 6000g2 NIC
Wey-Yi Guy [Fri, 9 Apr 2010 16:12:56 +0000]
iwlwifi: add hw revision for 6000g2 NIC

Add hardware revision for 6000g2 series of NIC

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: remove redundant iwl_dump_lq_cmd()
Shanyu Zhao [Fri, 9 Apr 2010 02:03:55 +0000]
iwlwifi: remove redundant iwl_dump_lq_cmd()

This function is called twice in a row, remove the second one.

Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: add debugfs ops to iwlwifi
Abhijeet Kolekar [Thu, 8 Apr 2010 22:29:07 +0000]
iwlwifi: add debugfs ops to iwlwifi

Seperate debugfs functions into iwlagn specific
debugfs file and Add debugfs ops to iwlwifi.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: remove duplicated debug functions
Wey-Yi Guy [Thu, 8 Apr 2010 03:12:23 +0000]
iwlwifi: remove duplicated debug functions

Use the show uCode statistics function for uCode debugging purposes only; it
is being duplicated in both debugfs and sysfs. remove the one from sysfs.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: bring up 6000 Series 2x2 AGN Gen2 adapters
Shanyu Zhao [Thu, 8 Apr 2010 01:06:36 +0000]
iwlwifi: bring up 6000 Series 2x2 AGN Gen2 adapters

This patch is to bring up 6000 Series 2x2 AGN Gen2 adapters.
Seperate various version numbers from 6000 Series definitions;
Add module firmware declaration for the new adapters;
Add additional device IDs and subsystem IDs;

Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: more generic eeprom defines
Wey-Yi Guy [Wed, 7 Apr 2010 04:10:33 +0000]
iwlwifi: more generic eeprom defines

Some definition for eeprom apply to more than 5000 series device, change
the name to reflect it for easy reading.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: trigger scan synchronously
Johannes Berg [Tue, 6 Apr 2010 11:12:42 +0000]
iwlwifi: trigger scan synchronously

Scan requesting doesn't need to be asynchronous
since all code paths leading up to it can sleep.
Make the scan request a new util operation that
is hw-specific (to account for 3945 vs. agn)
and call it right in place.

This patch moves a lot of code into iwlagn as
it need not be in iwlcore.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: rename priv->scan to priv->scan_cmd
Johannes Berg [Tue, 6 Apr 2010 11:12:41 +0000]
iwlwifi: rename priv->scan to priv->scan_cmd

I keep checking what "priv->scan" is, so rename
it to "priv->scan_cmd" which more clearly tells
us what it is.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: remove scan_pass_start
Johannes Berg [Tue, 6 Apr 2010 11:12:40 +0000]
iwlwifi: remove scan_pass_start

Since we no longer do a multi-pass scan,
keeping track of how long each pass took
is pointless since there will only be one.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: remove next_scan_jiffies
Johannes Berg [Tue, 6 Apr 2010 11:12:39 +0000]
iwlwifi: remove next_scan_jiffies

This logic is just confusing, if anything it
belongs into mac80211. Also, even if we do
scan during the EAPOL handshake, that will
not cause any problems, just a short delay.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: correct atomic bitops usage
Johannes Berg [Tue, 6 Apr 2010 11:12:38 +0000]
iwlwifi: correct atomic bitops usage

With atomic bitops, test_and_{set,clear}_bit
should be used instead of separate test_bit
and set_bit/clear_bit.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: remove scan_bands logic
Johannes Berg [Tue, 6 Apr 2010 11:12:37 +0000]
iwlwifi: remove scan_bands logic

Since mac80211 will now never request scanning
multiple bands, we can remove all the associated
logic and scan a single band only in each scan.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: set correct single/dual stream mask
Wey-Yi Guy [Sat, 3 Apr 2010 23:44:39 +0000]
iwlwifi: set correct single/dual stream mask

Even the initial single/dual stream values will be overridden later when
issue link quality command; but still make sense not to use hard-code
value during initialization. Single/Dual stream mask are used to indicate the
best antenna for SISO/MIMO; different NIC has different tx antenna
configuration; so the parameter need to based on the valid tx antenna.

1x2 device: single tx antenna available, only SISO is valid
configuration, but still need to set up MIMO configuration, so set it up
with antenna A & B as default.
2x2 device: two tx antenna available, dual_stream will use both valid
antenna.

3x3 device: three tx antenna available, skip the first antenna and
choice the second and third antenna for dual_stream.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoMerge branch 'wireless-2.6' into wireless-next-2.6
Reinette Chatre [Fri, 16 Apr 2010 20:43:40 +0000]
Merge branch 'wireless-2.6' into wireless-next-2.6

Conflicts:
drivers/net/wireless/iwlwifi/iwl-6000.c

9 years agoiwlwifi: correct 6000 EEPROM regulatory address
Shanyu Zhao [Thu, 8 Apr 2010 01:37:52 +0000]
iwlwifi: correct 6000 EEPROM regulatory address

For 6000 series, the 2.4G HT40 band regulatory settings address in EEPROM
was off by 2.

Before the fix, you'll see this in dmesg:
[79535.788877] ieee80211 phy8: U iwl_mod_ht40_chan_info HT40 Ch. 7 [2.4GHz]
WIDE (0x61 0dBm): Ad-Hoc not supported
[79535.788880] ieee80211 phy8: U iwl_mod_ht40_chan_info HT40 Ch. 11 [2.4GHz]
WIDE (0x61 0dBm): Ad-Hoc not supported

And after the fix:
[91132.688706] ieee80211 phy14: U iwl_mod_ht40_chan_info HT40 Ch. 7 [2.4GHz]
IBSS ACTIVE WIDE (0x6f 0dBm): Ad-Hoc supported
[91132.688709] ieee80211 phy14: U iwl_mod_ht40_chan_info HT40 Ch. 11 [2.4GHz]
IBSS ACTIVE WIDE (0x6f 0dBm): Ad-Hoc supported

Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: fix scan races
Johannes Berg [Wed, 7 Apr 2010 07:21:36 +0000]
iwlwifi: fix scan races

When an internal scan is started, nothing protects the
is_internal_short_scan variable which can cause crashes,
cf. https://bugzilla.kernel.org/show_bug.cgi?id=15667.
Fix this by making the short scan request use the mutex
for locking, which requires making the request go to a
work struct so that it can sleep.

Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>

9 years agoiwlwifi: initialize iwl_wimax_coex_cmd.flags
Stanislaw Gruszka [Fri, 16 Apr 2010 13:47:56 +0000]
iwlwifi: initialize iwl_wimax_coex_cmd.flags

iwl_wimax_coex_cmd.flags can be really uninitialized, so fix
that.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoiwlwifi: check scan request ie_len
Stanislaw Gruszka [Fri, 16 Apr 2010 13:46:41 +0000]
iwlwifi: check scan request ie_len

In mac80211 we always check both scan_req->ie and scan_req->ie_len
against zero before usage, in iwlwifi we should do the same.

Remove not needed "left -= ie_len" while at it.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agowl1251: add support for dedicated IRQ line
Grazvydas Ignotas [Fri, 16 Apr 2010 10:22:12 +0000]
wl1251: add support for dedicated IRQ line

wl1251 has WLAN_IRQ pin for generating interrupts to host processor,
which is mandatory in SPI mode and optional in SDIO mode (which can
use SDIO interrupts instead). However TI recommends using deditated
IRQ line for SDIO too.

Add support for using dedicated interrupt line with SDIO, but also leave
ability to switch to SDIO interrupts in case it's needed.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_htc: Fix sparse endian warnings
Sujith [Fri, 16 Apr 2010 06:24:03 +0000]
ath9k_htc: Fix sparse endian warnings

This patch fixes a bunch of endian issues that
were exposed by sparse. It's a miracle that the driver
worked at all till now.

The Lord be praised.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_htc: Handle WMI timeouts properly
Sujith [Fri, 16 Apr 2010 06:24:01 +0000]
ath9k_htc: Handle WMI timeouts properly

If a WMI command has timed out for some reason,
a late WMI response would end up updating the
response region of a new WMI request that has been
issued in the meantime.

Fix this race condition by dropping a WMI response
if a new WMI command has been issued.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_htc: Add dropped SKB count to debugfs
Sujith [Fri, 16 Apr 2010 06:24:00 +0000]
ath9k_htc: Add dropped SKB count to debugfs

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_htc: Remove GPIO set on unload
Sujith [Fri, 16 Apr 2010 06:23:58 +0000]
ath9k_htc: Remove GPIO set on unload

There is no point in trying to set the LED pin
when the module is being unloaded. The target
would be reset anyway.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Use buffered register writes
Sujith [Fri, 16 Apr 2010 06:23:57 +0000]
ath9k_hw: Use buffered register writes

This patch adds macros at certain places
which could be optimized for multiple register writes.

The performance of ath9k_htc improves considerably,
especially reducing the latency involved in a scan run.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Relocate Opmode initialization
Sujith [Fri, 16 Apr 2010 06:23:56 +0000]
ath9k_hw: Relocate Opmode initialization

Programming the opmode in the HW can be done
before the assoc_id and STA_ID registers are
setup. This helps ath9k_htc when multiple register
writes are used.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Add macros for multiple register writes
Sujith [Fri, 16 Apr 2010 06:23:55 +0000]
ath9k_hw: Add macros for multiple register writes

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_htc: Implement multiple register write support
Sujith [Fri, 16 Apr 2010 06:23:53 +0000]
ath9k_htc: Implement multiple register write support

This patch adds support for writing multiple registers
in a single USB command.

Specific calls from the HW code that performs multiple
register writes would be modified to make use of this
in subsequent patches.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath: Add buffered register write operations
Sujith [Fri, 16 Apr 2010 06:23:50 +0000]
ath: Add buffered register write operations

This is required to implement delayed/buffered
register writes in ath9k_htc.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_htc: Cleanup beacon configuration
Sujith [Fri, 16 Apr 2010 06:23:48 +0000]
ath9k_htc: Cleanup beacon configuration

This patch cleans up beacon configuration,
removing a redundant interface type check
and updating beacon interval in the correct place.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoiwmc3200wifi: check sparse endianness annotations
Samuel Ortiz [Fri, 16 Apr 2010 01:28:44 +0000]
iwmc3200wifi: check sparse endianness annotations

Add -D__CHECK_ENDIAN__ to driver ccflags so that sparse will
always check endianness by default.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoiwmc3200wifi: Fix sparse warnings
Samuel Ortiz [Fri, 16 Apr 2010 01:28:43 +0000]
iwmc3200wifi: Fix sparse warnings

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath5k/ath9k: Fix 64 bits TSF reads
Benoit Papillault [Thu, 15 Apr 2010 22:07:26 +0000]
ath5k/ath9k: Fix 64 bits TSF reads

According to tests, both TSF lower and upper registers kept counting, so
the higher part could have been updated after the lower part has been
read, as shown in the following log where the upper part is read first
and the lower part next.

tsf = {00000003-fffffffd}
tsf = {00000003-00000001}
tsf = {00000004-0000000b}

This patch corrects this by checking that the upper part has not been
changed while the lower part was read. It has been tested in an IBSS
network where artifical IBSS merges have been done in order to trigger
hundreds of rollover for the TSF lower part.

It follows the logic mentionned by Derek, with only 2 register reads
needed at each additional steps instead of 3 (the minimum number of
register reads is still 3).

Signed-off-by: Benoit Papillault <benoit.papillault@free.fr>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: add the PCI ID for the first AR9300 device
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:42 +0000]
ath9k_hw: add the PCI ID for the first AR9300 device

The first AR9003 hardware family device supported is the
AR9300, which has the vendor:device id 168c:0030

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Abort rx if hw is not coming out of full sleep in reset
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:41 +0000]
ath9k_hw: Abort rx if hw is not coming out of full sleep in reset

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: Enable TXOK and TXERR interrupts for TX EDMA
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:40 +0000]
ath9k: Enable TXOK and TXERR interrupts for TX EDMA

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: add LDPC support
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:39 +0000]
ath9k: add LDPC support

LDPC is enabled by the rate control if the its determined
that the target peer supports LDPC. We would have already
intersected the HT capabilities so if our peer supports
LDPC so do we.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: add LDPC support for AR9003
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:38 +0000]
ath9k_hw: add LDPC support for AR9003

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agomac80211: add LDPC control flag
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:37 +0000]
mac80211: add LDPC control flag

LDPC will be enabled through the rate control algorithm
for each buffer the the tx_info flags.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: Add Tx EDMA support
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:36 +0000]
ath9k: Add Tx EDMA support

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Compute pointer checksum over the link descriptor
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:35 +0000]
ath9k_hw: Compute pointer checksum over the link descriptor

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: Initialize and configure tx status for EDMA
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:34 +0000]
ath9k: Initialize and configure tx status for EDMA

Also add a function to clean up tx status ring.

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: Setup appropriate tx desc for regular dma and edma
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:33 +0000]
ath9k: Setup appropriate tx desc for regular dma and edma

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: set cwmin and cwmax to 0 for for AR9003 upon txq reset
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:32 +0000]
ath9k_hw: set cwmin and cwmax to 0 for for AR9003 upon txq reset

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: enable CRC check of descriptors for AR9003
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:31 +0000]
ath9k_hw: enable CRC check of descriptors for AR9003

Enable CRC check on the descriptor fetched from host on AR9003
upon reseting the TX queue.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: add RXLP and RXHP to debugfs counters
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:30 +0000]
ath9k: add RXLP and RXHP to debugfs counters

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Fill descriptor abstrations for AR9003
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:29 +0000]
ath9k_hw: Fill descriptor abstrations for AR9003

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: move AR9002 mac ops to its own file
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:28 +0000]
ath9k_hw: move AR9002 mac ops to its own file

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Add function to configure tx status ring buffer
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:27 +0000]
ath9k_hw: Add function to configure tx status ring buffer

Also reset tx status ring suring chip reset.

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Define abstraction for tx desc access
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:26 +0000]
ath9k_hw: Define abstraction for tx desc access

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k: Load SW filtered NF values and start NF cal during full reset for AR9003
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:25 +0000]
ath9k: Load SW filtered NF values and start NF cal during full reset for AR9003

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: skip WEP aggregation enable code for AR9003
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:24 +0000]
ath9k_hw: skip WEP aggregation enable code for AR9003

The AR9002 hardware code enables aggregation for WEP but
mac80211 doesn't enable aggregation with WEP, and the AR9003
code family does not need this so skip it for now for AR9003
but leave the code and annotate we should eventually consider
how to remove this in consideration for the HAL unification
goals.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: skip asynch fifo enablement to AR9003
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:23 +0000]
ath9k_hw: skip asynch fifo enablement to AR9003

The asynch fifo code is specific to >= AR9287 so stuff it
into the AR9002 hardware family code and skip it for AR9003
cards.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Update ath9k_hw_set_dma for AR9300
Felix Fietkau [Thu, 15 Apr 2010 21:39:22 +0000]
ath9k_hw: Update ath9k_hw_set_dma for AR9300

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: add TX/RX gain register initialization for AR9003
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:21 +0000]
ath9k_hw: add TX/RX gain register initialization for AR9003

This is done depending on what the EEPROM settings indicates.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: add the AR9300 SREV hw name print
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:20 +0000]
ath9k_hw: add the AR9300 SREV hw name print

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Configure Tx interrupt mitigation timer
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:19 +0000]
ath9k_hw: Configure Tx interrupt mitigation timer

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: move the RF claim stuff to AR9002 hardware family
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:18 +0000]
ath9k_hw: move the RF claim stuff to AR9002 hardware family

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: move AR9280 PCI EEPROM fix to eeprom_def.c
Felix Fietkau [Thu, 15 Apr 2010 21:39:17 +0000]
ath9k_hw: move AR9280 PCI EEPROM fix to eeprom_def.c

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Fill get_isr() for AR9003
Vasanthakumar Thiagarajan [Thu, 15 Apr 2010 21:39:16 +0000]
ath9k_hw: Fill get_isr() for AR9003

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: add OFDM spur mitigation for AR9003
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:15 +0000]
ath9k_hw: add OFDM spur mitigation for AR9003

We add this now as OFDM spur mitigation required accessing
the EEPROM for the AR9003 devices.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: Implement AR9003 eeprom callbacks
Senthil Balasubramanian [Thu, 15 Apr 2010 21:39:14 +0000]
ath9k_hw: Implement AR9003 eeprom callbacks

Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: restore mac address reading logic
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:13 +0000]
ath9k_hw: restore mac address reading logic

Once upon a time the AR_EEPROM_MAC macro was added to let us
add a random attribute to the three 4-bytes of MAC addresses
entries we read from the EEPROM. This was good while a random
high-enough value was used which did not conflict with any
of the already existing enum eeprom_param values. With AR9003
support the enums overlap and it means we either increment
the random offset or just restore the reading logic to match
what the HAL has. I choose to do the later to synchronize
the logic on both code bases.

This should fix reading the MAC address from the EEPROM
on AR9003 hardware.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: rename eep_AR9287_ops to eep_ar9287_ops
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:12 +0000]
ath9k_hw: rename eep_AR9287_ops to eep_ar9287_ops

Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

9 years agoath9k_hw: complete AR9003 calibration
Luis R. Rodriguez [Thu, 15 Apr 2010 21:39:11 +0000]
ath9k_hw: complete AR9003 calibration

This goes with some new shiny TX IQ calibration that AR9003
hardware family supports.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>