]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
13 years agoiwlagn: fix station powersave accounting for aggregation
Johannes Berg [Tue, 16 Nov 2010 19:51:38 +0000 (11:51 -0800)]
iwlagn: fix station powersave accounting for aggregation

Since aggregation queues are station-specific, the
device will not reject packets in them but rather
will stop the appropriate aggregation queues when
a station goes to sleep. I forgot to account for
this in the driver, so if a station went to sleep
that had aggregation enabled, traffic would stop
indefinitely.

Fix this by only accounting frames queued on the
normal AC queues for associated station.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove powersave warning
Johannes Berg [Tue, 16 Nov 2010 19:51:04 +0000 (11:51 -0800)]
iwlagn: remove powersave warning

Through races, a packet may be enqueued for
transmission to a station while that station
is going to sleep, in which case the warning
here triggers. Instead of warning, check the
condition -- if this packet is not a PS-poll
response then we still enqueue it but it will
be rejected by the device since the station
is marked as asleep.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: use antenna information in EEPROM
Wey-Yi Guy [Mon, 15 Nov 2010 21:43:07 +0000 (13:43 -0800)]
iwlwifi: use antenna information in EEPROM

The valid tx/rx antenna information is part of EEPROM, so use it
to configure the device.

For few cases, the EEPROM did not reflect the correct antenna, but
it is too late to modify the EEPROM, so overwrite with .cfg parameters

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlwifi: remove unused define
Wey-Yi Guy [Mon, 15 Nov 2010 21:56:10 +0000 (13:56 -0800)]
iwlwifi: remove unused define

was not used, remove it

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoath9k_hw: remove ath9k_hw_stoppcurecv
Felix Fietkau [Sat, 20 Nov 2010 02:08:48 +0000 (03:08 +0100)]
ath9k_hw: remove ath9k_hw_stoppcurecv

It is no longer used anywhere

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_htc: Identify devices using driver_info
Rajkumar Manoharan [Fri, 19 Nov 2010 11:23:22 +0000 (16:53 +0530)]
ath9k_htc: Identify devices using driver_info

Categorize AR7010 & AR9287 devices based on driver_info
of usb_device_id, instead of PIDs. This avoids per-device cases
and minimize code changes for new device addition.

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Fix eeprom offset for AR9287 devices (PCI/USB)
Rajkumar Manoharan [Fri, 19 Nov 2010 11:23:21 +0000 (16:53 +0530)]
ath9k_hw: Fix eeprom offset for AR9287 devices (PCI/USB)

AR9287 devices (PCI/USB) use different eeprom start location
to read nvram. New devices might endup with same devid. So use
driver_info to set offset, instead of devid. driver_info is
valid for HTC devices alone which is filled in usb_device_id.

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_htc: Add driver_info in usb device list
Rajkumar Manoharan [Fri, 19 Nov 2010 11:23:20 +0000 (16:53 +0530)]
ath9k_htc: Add driver_info in usb device list

Added driver_info to identify AR7010, R9287 HTC devices.

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath: Add a driver_info bitmask field
Rajkumar Manoharan [Fri, 19 Nov 2010 11:23:19 +0000 (16:53 +0530)]
ath: Add a driver_info bitmask field

The driver_info stores the device category information which
is used to load appropriate device firmware, select firmware offset
and eeprom starting location. The driver_info is accessed across
ath9k_htc and ath9k_hw. Hence placed under common structure.

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: advance power management support
Wey-Yi Guy [Tue, 23 Nov 2010 18:58:56 +0000 (10:58 -0800)]
iwlwifi: advance power management support

For 6000g2b and up, adding advance power management support
for better power consumption

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: power management checking for shadow register
Wey-Yi Guy [Tue, 23 Nov 2010 18:58:55 +0000 (10:58 -0800)]
iwlwifi: power management checking for shadow register

If shadow register is enable, modify the power management
command to inform uCode

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: consider BT for power management
Wey-Yi Guy [Tue, 23 Nov 2010 18:58:54 +0000 (10:58 -0800)]
iwlwifi: consider BT for power management

Check the BT PSPoll flag when fill PM command to uCode

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 more power management flags
Wey-Yi Guy [Tue, 23 Nov 2010 18:58:53 +0000 (10:58 -0800)]
iwlwifi: add more power management flags

Adding additional power management option available for the device.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: name change for BT config flag
Wey-Yi Guy [Tue, 23 Nov 2010 18:58:52 +0000 (10:58 -0800)]
iwlagn: name change for BT config flag

Bit 7 of BT config flag is used to enable/disable PSPoll sync.
Make the name to match it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: implement packet loss notification
Johannes Berg [Wed, 24 Nov 2010 07:10:06 +0000 (08:10 +0100)]
mac80211: implement packet loss notification

For drivers that have accurate TX status reporting
we can report the number of consecutive lost packets
to userspace using the new cfg80211 CQM event. The
threshold is fixed right now, this may need to be
improved in the future.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: allow using CQM event to notify packet loss
Johannes Berg [Wed, 24 Nov 2010 07:10:05 +0000 (08:10 +0100)]
cfg80211: allow using CQM event to notify packet loss

This adds the ability for drivers to use CQM events
to notify about packet loss for specific stations
(which could be the AP for the managed mode case).
Since the threshold might be determined by the
driver (it isn't passed in right now) it will be
passed out of the driver to userspace in the event.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: Add documentation for antenna ops
Bruno Randolf [Wed, 24 Nov 2010 05:34:41 +0000 (14:34 +0900)]
cfg80211: Add documentation for antenna ops

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: avoid aggregation for VO traffic
Luis R. Rodriguez [Tue, 23 Nov 2010 23:05:02 +0000 (15:05 -0800)]
mac80211: avoid aggregation for VO traffic

This should help with latency issues which can happen when
using aggregation.

Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Matt Smith <matt.smith@atheros.com>
Cc: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: avoid aggregation for VO traffic
Luis R. Rodriguez [Tue, 23 Nov 2010 23:05:01 +0000 (15:05 -0800)]
ath9k: avoid aggregation for VO traffic

This should help with latency issues which can happen when
using aggregation.

Cc: Matt Smith <matt.smith@atheros.com>
Cc: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: reduce the number of retries for nullfunc probing
Felix Fietkau [Tue, 23 Nov 2010 02:10:32 +0000 (03:10 +0100)]
mac80211: reduce the number of retries for nullfunc probing

Since nullfunc frames are transmitted as unicast frames, they're more
reliable than the broadcast probe requests, so we need fewer retries
to figure out whether the AP is really gone.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: use nullfunc instead of probe request for connection monitoring
Felix Fietkau [Tue, 23 Nov 2010 02:10:31 +0000 (03:10 +0100)]
mac80211: use nullfunc instead of probe request for connection monitoring

nullfunc frames are better for connection monitoring, because probe requests
are answered even if the AP has already dropped the connection, whereas
nullfunc frames from an unassociated station will trigger a disassoc/deauth
frame from the AP (WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA), which allows
the station to reconnect immediately instead of waiting until it attempts to
transmit the next unicast frame.

This only works on hardware with reliable tx ACK reporting, any other hardware
needs to fall back to the probe request method.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211/mac80211: improve ad-hoc multicast rate handling
Felix Fietkau [Mon, 22 Nov 2010 19:58:24 +0000 (20:58 +0100)]
cfg80211/mac80211: improve ad-hoc multicast rate handling

- store the multicast rate as an index instead of the rate value
  (reduces cpu overhead in a hotpath)
- validate the rate values (must match a bitrate in at least one sband)

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: probe the AP when resuming
Felix Fietkau [Tue, 23 Nov 2010 19:28:03 +0000 (20:28 +0100)]
mac80211: probe the AP when resuming

Check the connection by probing the AP (either using nullfunc or a
probe request). If nullfunc probing is supported and the assoc is no
longer valid, the AP will send a disassoc/deauth immediately.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: calculate beacon loss time accurately
Felix Fietkau [Fri, 19 Nov 2010 21:55:38 +0000 (22:55 +0100)]
mac80211: calculate beacon loss time accurately

Instead of using a fixed 2 second timeout, calculate beacon loss interval
from the advertised beacon interval and a frame count.  With this beacon
loss happens after N (default 7) consecutive frames are missed which
for a typical setup (100TU beacon interval) is ~700ms (or ~1/3 previous).

Signed-off-by: Sam Leffler <sleffler@chromium.org>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: restart beacon miss timer on system resume from suspend
Felix Fietkau [Fri, 19 Nov 2010 21:55:37 +0000 (22:55 +0100)]
mac80211: restart beacon miss timer on system resume from suspend

Signed-off-by: Paul Stewart <pstew@google.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: little cleanups
Rafał Miłecki [Thu, 18 Nov 2010 20:11:43 +0000 (21:11 +0100)]
b43: N-PHY: little cleanups

Remove some typos, warnings, initialize some values to follow wl's code path.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: rev2: save and restore PHY regs on RSSI poll
Rafał Miłecki [Thu, 18 Nov 2010 20:11:42 +0000 (21:11 +0100)]
b43: N-PHY: rev2: save and restore PHY regs on RSSI poll

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: fix BPHY init
Rafał Miłecki [Thu, 18 Nov 2010 20:11:41 +0000 (21:11 +0100)]
b43: N-PHY: fix BPHY init

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: init BPHY when needed
Rafał Miłecki [Thu, 18 Nov 2010 12:28:00 +0000 (13:28 +0100)]
b43: N-PHY: init BPHY when needed

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: fix some typos, conditions, set gain_boost
Rafał Miłecki [Thu, 18 Nov 2010 12:27:59 +0000 (13:27 +0100)]
b43: N-PHY: fix some typos, conditions, set gain_boost

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: minor fixes to match specs
Rafał Miłecki [Thu, 18 Nov 2010 12:27:58 +0000 (13:27 +0100)]
b43: N-PHY: minor fixes to match specs

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: fix values for PHY regs in channel tables of 2055 radio
Rafał Miłecki [Thu, 18 Nov 2010 12:27:57 +0000 (13:27 +0100)]
b43: N-PHY: fix values for PHY regs in channel tables of 2055 radio

Additional comment by Larry Finger <Larry.Finger@lwfinger.net>:

This change deserves a bit more explanation. You might include something like
"These tables came from reverse engineering the 5.10.56.46 version of the
Broadcom driver. Trace comparisons between b43 and the current Broadcom driver
(5.10.120.0) show byte reversals for the PHY register writes."

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonet/wireless: Use pr_<level> and netdev_<level>
Joe Perches [Wed, 17 Nov 2010 03:56:49 +0000 (19:56 -0800)]
net/wireless: Use pr_<level> and netdev_<level>

No change in output for pr_<level> prefixes.
netdev_<level> output is different, arguably improved.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
John W. Linville [Wed, 24 Nov 2010 21:19:24 +0000 (16:19 -0500)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6

13 years agoRevert "nl80211/mac80211: Report signal average"
John W. Linville [Wed, 24 Nov 2010 21:18:36 +0000 (16:18 -0500)]
Revert "nl80211/mac80211: Report signal average"

This reverts commit 86107fd170bc379869250eb7e1bd393a3a70e8ae.

This patch inadvertantly changed the userland ABI.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: b43: fix error path in SDIO
Guennadi Liakhovetski [Tue, 23 Nov 2010 16:10:24 +0000 (17:10 +0100)]
wireless: b43: fix error path in SDIO

Fix unbalanced call to sdio_release_host() on the error path.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_htc: fix eeprom access
Felix Fietkau [Mon, 22 Nov 2010 17:26:51 +0000 (18:26 +0100)]
ath9k_htc: fix eeprom access

wireless-testing commit a05b5d45049d60a06a1b12976150572304a51928
ath9k: add support for reading eeprom from platform data on PCI devices

This change moved the initialization of the AH_USE_EEPROM flag from ath9k_hw
to ath9k. This needs to be added to ath9k_htc as well

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: fix A-MPDU key search issues on AR9003
Felix Fietkau [Mon, 22 Nov 2010 14:39:39 +0000 (15:39 +0100)]
ath9k_hw: fix A-MPDU key search issues on AR9003

Under load, a large number of frames can produce decryption errors, even when
no key cache update is being done. Performing a key search for every single
frame in an A-MPDU improves reliability.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agozd1211rw: Use const
Joe Perches [Sun, 21 Nov 2010 02:39:03 +0000 (18:39 -0800)]
zd1211rw: Use const

Mark arrays const that are unmodified after initializations.

   text    data     bss     dec     hex filename
  19291      56    4136   23483    5bbb drivers/net/wireless/zd1211rw/zd_chip.o.old
  19291      56    4136   23483    5bbb drivers/net/wireless/zd1211rw/zd_chip.o.new

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agort2x00: Use static const
Joe Perches [Sun, 21 Nov 2010 02:39:01 +0000 (18:39 -0800)]
rt2x00: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  40197      56    8336   48589    bdcd drivers/net/wireless/rt2x00/rt2800lib.o.new
  40205      56    8336   48597    bdd5 drivers/net/wireless/rt2x00/rt2800lib.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agorndis_wlan: Use static const
Joe Perches [Sun, 21 Nov 2010 02:39:00 +0000 (18:39 -0800)]
rndis_wlan: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  41757    2205    9896   53858    d262 drivers/net/wireless/rndis_wlan.o.old
  41653    2205    9880   53738    d1ea drivers/net/wireless/rndis_wlan.o.new

Changed functions rndis_set_oid and set_bssid to take const *'s.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoray_cs: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:59 +0000 (18:38 -0800)]
ray_cs: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  42607    3581    8536   54724    d5c4 drivers/net/wireless/ray_cs.o.new
  42603    3585    8536   54724    d5c4 drivers/net/wireless/ray_cs.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:58 +0000 (18:38 -0800)]
libertas: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
   3650      56     704    4410    113a drivers/net/wireless/libertas/rx.o.new
   3695      56     704    4455    1167 drivers/net/wireless/libertas/rx.o.old
  27328     964    5240   33532    82fc drivers/net/wireless/libertas/cfg.o.new
  27328     964    5240   33532    82fc drivers/net/wireless/libertas/cfg.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:57 +0000 (18:38 -0800)]
iwlwifi: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  48644      57   12120   60821    ed95 drivers/net/wireless/b43/phy_n.o.new
  48661      57   12120   60838    eda6 drivers/net/wireless/b43/phy_n.o.old
  37906      86    7904   45896    b348 drivers/net/wireless/iwlwifi/iwl-agn-lib.o.new
  37937      86    7904   45927    b367 drivers/net/wireless/iwlwifi/iwl-agn-lib.o.old
  37781     523    6752   45056    b000 drivers/net/wireless/iwlwifi/iwl-3945.o.new
  37781     523    6752   45056    b000 drivers/net/wireless/iwlwifi/iwl-3945.o.old

Changed b43_nphy_write_clip_detection to take a const u16 *

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:56 +0000 (18:38 -0800)]
b43: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
   5502      56    1336    6894    1aee drivers/net/wireless/b43/phy_common.o.new
   5511      56    1336    6903    1af7 drivers/net/wireless/b43/phy_common.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoatmel: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:55 +0000 (18:38 -0800)]
atmel: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  42578     720    8528   51826    ca72 drivers/net/wireless/atmel.o.old
  42578     720    8528   51826    ca72 drivers/net/wireless/atmel.o.new

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:54 +0000 (18:38 -0800)]
carl9170: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
   1897      56     672    2625     a41 drivers/net/wireless/ath/carl9170/cmd.o.new
   1897      56     672    2625     a41 drivers/net/wireless/ath/carl9170/cmd.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:53 +0000 (18:38 -0800)]
ath9k: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  11161      56    2136   13353    3429 drivers/net/wireless/ath/ath9k/ar9003_paprd.o.new
  11167      56    2136   13359    342f drivers/net/wireless/ath/ath9k/ar9003_paprd.o.old
  15428      56    3056   18540    486c drivers/net/wireless/ath/ath9k/eeprom_4k.o.old
  15451      56    3056   18563    4883 drivers/net/wireless/ath/ath9k/eeprom_4k.o.new
  14087      56    2560   16703    413f drivers/net/wireless/ath/ath9k/eeprom_9287.o.old
  14036      56    2560   16652    410c drivers/net/wireless/ath/ath9k/eeprom_9287.o.new
  10041      56    2384   12481    30c1 drivers/net/wireless/ath/ath9k/ani.o.new
  10088      56    2384   12528    30f0 drivers/net/wireless/ath/ath9k/ani.o.old
   9316    1580    2304   13200    3390 drivers/net/wireless/ath/ath9k/htc_drv_init.o.new
   9316    1580    2304   13200    3390 drivers/net/wireless/ath/ath9k/htc_drv_init.o.old
  16483      56    3432   19971    4e03 drivers/net/wireless/ath/ath9k/ar9003_phy.o.new
  16517      56    3432   20005    4e25 drivers/net/wireless/ath/ath9k/ar9003_phy.o.old
  18221     104    2960   21285    5325 drivers/net/wireless/ath/ath9k/rc.o.old
  18203     104    2960   21267    5313 drivers/net/wireless/ath/ath9k/rc.o.new
  19985      56    4288   24329    5f09 drivers/net/wireless/ath/ath9k/eeprom_def.o.new
  20040      56    4288   24384    5f40 drivers/net/wireless/ath/ath9k/eeprom_def.o.old
  23997      56    4984   29037    716d drivers/net/wireless/ath/ath9k/ar5008_phy.o.old
  23846      56    4984   28886    70d6 drivers/net/wireless/ath/ath9k/ar5008_phy.o.new
  24285      56    3184   27525    6b85 drivers/net/wireless/ath/ath9k/ar9003_eeprom.o.old
  24101      56    3184   27341    6acd drivers/net/wireless/ath/ath9k/ar9003_eeprom.o.new
   6834      56    1032    7922    1ef2 drivers/net/wireless/ath/ath9k/ar9002_phy.o.old
   6780      56    1032    7868    1ebc drivers/net/wireless/ath/ath9k/ar9002_phy.o.new
  36211      64    8624   44899    af63 drivers/net/wireless/ath/ath9k/hw.o.new
  36401      64    8624   45089    b021 drivers/net/wireless/ath/ath9k/hw.o.old
   9281      56    1496   10833    2a51 drivers/net/wireless/ath/ath9k/ar9003_calib.o.old
   9150      56    1496   10702    29ce drivers/net/wireless/ath/ath9k/ar9003_calib.o.new

Use ARRAY_SIZE instead of a magic number.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath5k: Use static const
Joe Perches [Sun, 21 Nov 2010 02:38:52 +0000 (18:38 -0800)]
ath5k: Use static const

Using static const generally increases object text and decreases data size.
It also generally decreases overall object size.

   text    data     bss     dec     hex filename
  11266      56    2464   13786    35da drivers/net/wireless/ath/ath5k/ani.o.old
  11181      56    2464   13701    3585 drivers/net/wireless/ath/ath5k/ani.o.new

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoar9170: Use const
Joe Perches [Sun, 21 Nov 2010 02:38:51 +0000 (18:38 -0800)]
ar9170: Use const

Mark an array const.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: fix init-self regression
Christian Lamparter [Sat, 20 Nov 2010 15:53:26 +0000 (16:53 +0100)]
carl9170: fix init-self regression

The commit: "carl9170: tx path review" introduced a regression.

gcc (with -Winit-self):
tx.c:1264: warning: ‘super’ is used uninitialized in this function

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: remove duplicated #include
Huang Weiyi [Sat, 20 Nov 2010 12:06:02 +0000 (20:06 +0800)]
libertas: remove duplicated #include

Remove duplicated #include('s) in
  drivers/net/wireless/libertas/cfg.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: fix recursive locking in the tx flush path
Felix Fietkau [Sat, 20 Nov 2010 02:08:46 +0000 (03:08 +0100)]
ath9k: fix recursive locking in the tx flush path

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlwifi: fix modular 3945 only build
Johannes Berg [Thu, 18 Nov 2010 20:08:10 +0000 (12:08 -0800)]
iwlwifi: fix modular 3945 only build

If only 3945 is selected, and is a module, build
fails because iwl-legacy.c won't be compiled. Fix
this by adding it to the build correctly.

This doesn't happen for 4965 because it is a bool
option, not tristate, since it's built into the
AGN module.

Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Tested-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: Disable hw crypto for GTKs on AP VLAN interfaces
Helmut Schaa [Fri, 19 Nov 2010 07:11:01 +0000 (08:11 +0100)]
mac80211: Disable hw crypto for GTKs on AP VLAN interfaces

When using AP VLAN interfaces, each VLAN interface should be in its own
broadcast domain. Hostapd achieves this by assigning different GTKs to
different AP VLAN interfaces.

However, mac80211 drivers are not aware of AP VLAN interfaces and as
such mac80211 sends the GTK to the driver in the context of the base AP
mode interface. This causes problems when multiple AP VLAN interfaces
are used since the driver will use the same key slot for the different
GTKs (there's no way for the driver to distinguish the different GTKs
from different AP VLAN interfaces). Thus, only the clients associated
to one AP VLAN interface (the one that was created last) can actually
use broadcast traffic.

Fix this by not programming any GTKs for AP VLAN interfaces into the hw
but fall back to using software crypto. The GTK for the underlying AP
interface is still sent to the driver.

That means, broadcast traffic to stations associated to an AP VLAN
interface is encrypted in software whereas broadcast traffic to
stations associated to the non-VLAN AP interface is encrypted in
hardware.

Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: Fix regulatory bug with multiple cards and delays
Luis R. Rodriguez [Thu, 18 Nov 2010 05:46:09 +0000 (21:46 -0800)]
cfg80211: Fix regulatory bug with multiple cards and delays

When two cards are connected with the same regulatory domain
if CRDA had a delayed response then cfg80211's own set regulatory
domain would still be the world regulatory domain. There was a bug
on cfg80211's logic such that it assumed that once you pegged a
request as the last request it was already the currently set
regulatory domain. This would mean we would race setting a stale
regulatory domain to secondary cards which had the same regulatory
domain since the alpha2 would match.

We fix this by processing each regulatory request atomically,
and only move on to the next one once we get it fully processed.
In the case CRDA is not present we will simply world roam.

This issue is only present when you have a slow system and the
CRDA processing is delayed. Because of this it is not a known
regression.

Without this fix when a delay is present with CRDA the second card
would end up with an intersected regulatory domain and not allow it
to use the channels it really is designed for. When two cards with
two different regulatory domains were inserted you'd end up
rejecting the second card's regulatory domain request.
This fails with mac80211_hswim's regtest=2 (two requests, same alpha2)
and regtest=3 (two requests, different alpha2) module parameter
options.

This was reproduced and tested against mac80211_hwsim using this
CRDA delayer:

       #!/bin/bash
       echo $COUNTRY >> /tmp/log
       sleep 2
       /sbin/crda.orig

And these regulatory tests:

       modprobe mac80211_hwsim regtest=2
       modprobe mac80211_hwsim regtest=3

Reported-by: Mark Mentovai <mark@moxienet.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Tested-by: Mark Mentovai <mark@moxienet.com>
Tested-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: move mutex locking to reg_process_pending_hints()
Luis R. Rodriguez [Thu, 18 Nov 2010 05:46:08 +0000 (21:46 -0800)]
cfg80211: move mutex locking to reg_process_pending_hints()

This will be required in the next patch and it makes the
next patch easier to review.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Tested-by: Mark Mentovai <mark@moxienet.com>
Tested-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: move reg_work and reg_todo above
Luis R. Rodriguez [Thu, 18 Nov 2010 05:46:07 +0000 (21:46 -0800)]
cfg80211: move reg_work and reg_todo above

These will be used earlier in the next few patches.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Tested-by: Mark Mentovai <mark@moxienet.com>
Tested-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: put core regulatory request into queue
Luis R. Rodriguez [Thu, 18 Nov 2010 05:46:06 +0000 (21:46 -0800)]
cfg80211: put core regulatory request into queue

This will simplify the synchronization for pending requests.
Without this we have a race between the core and when we
restore regulatory settings, although this is unlikely
its best to just avoid that race altogether.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Tested-by: Mark Mentovai <mark@moxienet.com>
Tested-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: rfkill: use HI enabled bit for all devices
Rafał Miłecki [Wed, 17 Nov 2010 21:14:37 +0000 (22:14 +0100)]
b43: rfkill: use HI enabled bit for all devices

Devices which use LO enabled bit are covered by b43legacy

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: N-PHY: add 2056 radio channels tables
Rafał Miłecki [Thu, 14 Oct 2010 20:58:58 +0000 (22:58 +0200)]
b43: N-PHY: add 2056 radio channels tables

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMerge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git...
John W. Linville [Mon, 22 Nov 2010 20:28:30 +0000 (15:28 -0500)]
Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6

13 years agocarl9170: fix virtual interface setup crash
Christian Lamparter [Sat, 20 Nov 2010 12:15:27 +0000 (13:15 +0100)]
carl9170: fix virtual interface setup crash

This patch fixes a faulty bound check which caused a
crash when too many virtual interface were brought up.

BUG: unable to handle kernel NULL pointer dereference at 00000004
IP: [<f8125f67>] carl9170_op_add_interface+0x1d7/0x2c0 [carl9170]
*pde = 00000000
Oops: 0002 [#1] PREEMPT
Modules linked in: carl9170 [...]
Pid: 4720, comm: wpa_supplicant Not tainted 2.6.37-rc2-wl+
EIP: 0060:[<f8125f67>] EFLAGS: 00210206 CPU: 0
EIP is at carl9170_op_add_interface+0x1d7/0x2c0 [carl9170]
EAX: 00000000 ...
Process wpa_supplicant
Stack:
 f4f88f34 fffffff4 ..
Call Trace:
 [<f8f4e666>] ? ieee80211_do_open+0x406/0x5c0 [mac80211]
 [...]
Code: <89> 42 04 ...
EIP: [<f8125f67>] carl9170_op_add_interface+0x1d7/0x2c0 [carl9170]
CR2: 0000000000000004

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agossb: b43-pci-bridge: Add new vendor for BCM4318
Daniel Klaffenbach [Sat, 20 Nov 2010 03:25:21 +0000 (21:25 -0600)]
ssb: b43-pci-bridge: Add new vendor for BCM4318

Add new vendor for Broadcom 4318.

Signed-off-by: Daniel Klaffenbach <danielklaffenbach@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: fix timeout on stopping rx dma
Felix Fietkau [Sat, 20 Nov 2010 02:08:47 +0000 (03:08 +0100)]
ath9k: fix timeout on stopping rx dma

It seems that using ath9k_hw_stoppcurecv to stop rx dma is not enough.
When it's time to stop DMA, the PCU is still busy, so the rx enable
bit never clears.
Using ath9k_hw_abortpcurecv helps with getting rx stopped much faster,
with this change, I cannot reproduce the rx stop related WARN_ON anymore.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowl12xx: Unset bssid filter, ssid and bssid from firmware on disassoc
Juuso Oikarinen [Mon, 22 Nov 2010 10:59:08 +0000 (12:59 +0200)]
wl12xx: Unset bssid filter, ssid and bssid from firmware on disassoc

On the disassociation event from the mac80211, the wl12xx driver does not
clear the chipset configuration related to the AP - i.e. it does not perform
a DISCONNECT and then a JOIN with zero SSID and dummy BSSID. Also, it does not
unset the BSSID filter.

Often this is not a problem, as the above is performed upon entering idle
state. But if a scenario arises where a new association is attempted without
cycling through idle state, the new association will fail.

Fix this by resetting the firmware state on disassociation.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
13 years agowl1271: add support for HW TX fragmentation
Arik Nemtsov [Mon, 8 Nov 2010 09:51:07 +0000 (10:51 +0100)]
wl1271: add support for HW TX fragmentation

Indicate to mac80211 we support HW fragmentation.
Support updates of the fragmentation threshold via the
set_frag_threshold callback.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
13 years agoRevert "wl1271: Change supported channel order for a more optimal scan"
Juuso Oikarinen [Wed, 10 Nov 2010 10:27:20 +0000 (11:27 +0100)]
Revert "wl1271: Change supported channel order for a more optimal scan"

This reverts commit fa21c7a9e4be439e217fe72edbd39b643b643791.

The reverted patch caused more harm than benefit.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Tested-by: Tuomas Katila <ext-tuomas.2.katila@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
13 years agowl1271: Prevent ad-hoc and active scanning on 11a DFS frequencies
Juuso Oikarinen [Wed, 10 Nov 2010 10:27:19 +0000 (11:27 +0100)]
wl1271: Prevent ad-hoc and active scanning on 11a DFS frequencies

The wl1271 does not support radar detection. Hence, prevent ad-hoc and
active scanning on frequencies requiring DFS.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Tested-by: Tuomas Katila <ext-tuomas.2.katila@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
13 years agowl1271: cleanup unused code of calibration structures
Gery Kahn [Sun, 7 Nov 2010 09:04:20 +0000 (10:04 +0100)]
wl1271: cleanup unused code of calibration structures

The cleanup unused code for calibration procedures.

Signed-off-by: Gery Kahn <geryk@ti.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
13 years agowl1271: Change wl12xx Files Names
Shahar Levi [Mon, 8 Nov 2010 11:20:10 +0000 (11:20 +0000)]
wl1271: Change wl12xx Files Names

All files name prefix removed due to the fact that wl12xx driver supports
wl1271 and wl1273.
Also the definition in Kconfig and header files changed respectively.

Signed-off-by: Shahar Levi <shahar_levi@ti.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
13 years agossb: drop BCM4328 hack for SPROM revision
Rafał Miłecki [Wed, 17 Nov 2010 18:52:13 +0000 (19:52 +0100)]
ssb: drop BCM4328 hack for SPROM revision

This hacks leads to incorrect SPROM parsing for me and reading for example MAC
as: 00:00:00:54:00:00. Michael G. who introduced this confirmed it is not
needed anymore.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Tested-by: Michael Gerdau <mgd@qata.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: support reading calibration data from flash on AR9003
Felix Fietkau [Wed, 17 Nov 2010 03:19:47 +0000 (04:19 +0100)]
ath9k_hw: support reading calibration data from flash on AR9003

Embedded boards do not have compressed EEPROM data, they use the
struct ar9003_eeprom layout, with little endian fields, so copying
the raw data to the eeprom buffer is enough.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: add support for reading eeprom from platform data on PCI devices
Felix Fietkau [Wed, 17 Nov 2010 03:25:33 +0000 (04:25 +0100)]
ath9k: add support for reading eeprom from platform data on PCI devices

Some embedded boards store platform data for connected PCIe AR92xx
chips in the system flash instead of a separate EEPROM chip.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agorndis_wlan: avoid uninitialized var warning in rndis_wlan_craft_connected_bss
John W. Linville [Tue, 16 Nov 2010 21:49:08 +0000 (16:49 -0500)]
rndis_wlan: avoid uninitialized var warning in rndis_wlan_craft_connected_bss

  CC [M]  drivers/net/wireless/rndis_wlan.o
drivers/net/wireless/rndis_wlan.c: In function ‘rndis_wlan_craft_connected_bss’:
drivers/net/wireless/rndis_wlan.c:2542:2: warning: ‘ret’ may be used uninitialized in this function

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
13 years agoiwmc3200wifi: clarify potentially undefined operation in iwm_scan_ssids
John W. Linville [Tue, 16 Nov 2010 21:08:56 +0000 (16:08 -0500)]
iwmc3200wifi: clarify potentially undefined operation in iwm_scan_ssids

  CC [M]  drivers/net/wireless/iwmc3200wifi/commands.o
drivers/net/wireless/iwmc3200wifi/commands.c: In function ‘iwm_scan_ssids’:
drivers/net/wireless/iwmc3200wifi/commands.c:911:15: warning: operation on ‘iwm->scan_id’ may be undefined

Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/mac80211: Report signal average
Bruno Randolf [Tue, 16 Nov 2010 01:58:48 +0000 (10:58 +0900)]
nl80211/mac80211: Report signal average

Extend nl80211 to report an exponential weighted moving average (EWMA) of the
signal value. Since the signal value usually fluctuates between different
packets, an average can be more useful than the value of the last packet.

This uses the recently added generic EWMA library function.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath5k: Use generic EWMA library
Bruno Randolf [Tue, 16 Nov 2010 01:58:43 +0000 (10:58 +0900)]
ath5k: Use generic EWMA library

Remove ath5k's private moving average implementation in favour of the generic
library version.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolib: Add generic exponentially weighted moving average (EWMA) function
Bruno Randolf [Tue, 16 Nov 2010 01:58:37 +0000 (10:58 +0900)]
lib: Add generic exponentially weighted moving average (EWMA) function

This adds generic functions for calculating Exponentially Weighted Moving
Averages (EWMA). This implementation makes use of a structure which keeps the
EWMA parameters and a scaled up internal representation to reduce rounding
errors.

The original idea for this implementation came from the rt2x00 driver
(rt2x00link.c). I would like to use it in several places in the mac80211 and
ath5k code and I hope it can be useful in many other places in the kernel code.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_htc: Avoid setting QoS control for non-QoS frames
Rajkumar Manoharan [Thu, 18 Nov 2010 06:49:52 +0000 (12:19 +0530)]
ath9k_htc: Avoid setting QoS control for non-QoS frames

Setting tid information in the TX header is required only for QoS
frames. Not handling this case causes severe data loss with some APs.

Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: fix can_beacon_sec_chan, reenable HT40
Mark Mentovai [Wed, 17 Nov 2010 21:34:37 +0000 (16:34 -0500)]
cfg80211: fix can_beacon_sec_chan, reenable HT40

This follows wireless-testing 9236d838c920e90708570d9bbd7bb82d30a38130
("cfg80211: fix extension channel checks to initiate communication") and
fixes accidental case fall-through. Without this fix, HT40 is entirely
blocked.

Signed-off-by: Mark Mentovai <mark@moxienet.com>
Cc: stable@kernel.org
Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix powersaving clients races
Johannes Berg [Tue, 16 Nov 2010 19:50:28 +0000 (11:50 -0800)]
mac80211: fix powersaving clients races

The code to handle powersaving stations has a race:
when the powersave flag is lifted from a station,
we could transmit a packet that is being processed
for TX at the same time right away, even if there
are other frames queued for it. This would cause
frame reordering. To fix this, lift the flag only
under the appropriate lock that blocks TX.

Additionally, the code to allow drivers to block a
station while frames for it are on the HW queue is
never re-enabled the station, so traffic would get
stuck indefinitely. Fix this by clearing the flag
for this appropriately.

Finally, as an optimisation, don't do anything if
the driver unblocks an already unblocked station.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: defines for AC numbers
Johannes Berg [Tue, 16 Nov 2010 19:49:58 +0000 (11:49 -0800)]
mac80211: defines for AC numbers

In many places we've just hardcoded the
AC numbers -- which is a relic from the
original mac80211 (d80211). Add constants
for them so we know what we're talking
about.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: add support for reading EEPROM data from the internal OTP ROM
Felix Fietkau [Tue, 16 Nov 2010 18:20:28 +0000 (19:20 +0100)]
ath9k_hw: add support for reading EEPROM data from the internal OTP ROM

Some of the new AR9003 cards do not come with an external EEPROM chip
anymore. Calibration data on these cards is stored in the OTP ROM on
the chip.
This patch adds support for reading this data, and also adds support
for different EEPROM chip sizes (512 bytes instead of 1K).

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: store frame information used by aggregation inside the skb tx info
Felix Fietkau [Sun, 14 Nov 2010 14:20:13 +0000 (15:20 +0100)]
ath9k: store frame information used by aggregation inside the skb tx info

Since the pointers after the rates in the tx info cannot be used anymore
after frames have been queued, this area can be used to store information
that was previously stored in the ath_buf. With these changes, we can delay
the ath_buf assignment in the aggregation code until aggregates are formed.

That will not only make it possible to simplify DMA descriptor setup to
do less rewriting of uncached memory, but will also make it easier to
move aggregation out of the core of the ath9k tx path.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: more tx setup cleanups
Felix Fietkau [Sun, 14 Nov 2010 14:20:12 +0000 (15:20 +0100)]
ath9k: more tx setup cleanups

- remove the BUF_HT flag, and instead check for IEEE80211_TX_CTL_AMPDU
  before calling ath_tx_send_ampdu.
- remove a few unused variables
- calculate frame length before adding the frame padding
- merge the misnamed ath_tx_start_dma function into ath_tx_start
- remove an unused argument for assign_aggr_tid_seqno

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: block new AMPDU sessions if SC_OP_TXAGGR is not set
Felix Fietkau [Sun, 14 Nov 2010 14:20:11 +0000 (15:20 +0100)]
ath9k: block new AMPDU sessions if SC_OP_TXAGGR is not set

This makes further tx path cleanups easier

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: clean up code duplication around ath_tx_start
Felix Fietkau [Sun, 14 Nov 2010 14:20:10 +0000 (15:20 +0100)]
ath9k: clean up code duplication around ath_tx_start

Merge initial processing for the CAB queue and regular tx.
Also move ath_tx_cabq() to beacon.c and make it static.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bf_tx_aborted from struct ath_buf
Felix Fietkau [Sun, 14 Nov 2010 14:20:09 +0000 (15:20 +0100)]
ath9k: remove bf_tx_aborted from struct ath_buf

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_frmlen from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:08 +0000 (15:20 +0100)]
ath9k: remove bfs_frmlen from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_nframes from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:07 +0000 (15:20 +0100)]
ath9k: remove bfs_nframes from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_al from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:06 +0000 (15:20 +0100)]
ath9k: remove bfs_al from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_keyix from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:05 +0000 (15:20 +0100)]
ath9k: remove bfs_keyix from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_paprd_timestamp from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:04 +0000 (15:20 +0100)]
ath9k: remove bfs_paprd_timestamp from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_keytype from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:03 +0000 (15:20 +0100)]
ath9k: remove bfs_keytype from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_tidno from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:02 +0000 (15:20 +0100)]
ath9k: remove bfs_tidno from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove bfs_seqno from struct ath_buf_state
Felix Fietkau [Sun, 14 Nov 2010 14:20:01 +0000 (15:20 +0100)]
ath9k: remove bfs_seqno from struct ath_buf_state

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: fix PA predistortion training frame setup
Felix Fietkau [Sat, 13 Nov 2010 23:03:01 +0000 (00:03 +0100)]
ath9k: fix PA predistortion training frame setup

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: set default values for radar pulse detection
Felix Fietkau [Sat, 13 Nov 2010 19:22:41 +0000 (20:22 +0100)]
ath9k_hw: set default values for radar pulse detection

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agort2x00: Modify rt2x00queue_remove_l2pad to make skb->data two-byte alignment
RA-Jay Hung [Sat, 13 Nov 2010 18:13:53 +0000 (19:13 +0100)]
rt2x00: Modify rt2x00queue_remove_l2pad to make skb->data two-byte alignment

When send out skb data to mac80211, orignal code will cause mac80211
unaligned access, so modify code to make mac80211 can natural access.

Signed-off-by: RA-Jay Hung <jay_hung@ralinktech.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>