11 years agocfg80211: move all regulatory hints to workqueue
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:30 +0000]
cfg80211: move all regulatory hints to workqueue

All regulatory hints (core, driver, userspace and 11d) are now processed in
a workqueue.

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

11 years agocfg80211: free rd on unlikely event on 11d hint
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:29 +0000]
cfg80211: free rd on unlikely event on 11d hint

This was never happening but it was still wrong, so correct it.

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

11 years agocfg80211: remove likely from an 11d hint case
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:28 +0000]
cfg80211: remove likely from an 11d hint case

Truth of the matter this was confusing people so mark it as
unlikely as that is the case now.

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

11 years agocfg80211: protect first access of last_request on 11d hint under mutex
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:27 +0000]
cfg80211: protect first access of last_request on 11d hint under mutex

We were not protecting last_request there is a small possible race
between an 11d hint and another routine which calls reset_regdomains()
which can prevent a valid country IE from being processed. This is
not critical as it will still be procesed soon after but locking prior
to it is correct.

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

11 years agocfg80211: make regulatory_request use wiphy_idx instead of wiphy
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:26 +0000]
cfg80211: make regulatory_request use wiphy_idx instead of wiphy

We do this so later on we can move the pending requests onto a
workqueue. By using the wiphy_idx instead of the wiphy we can
later easily check if the wiphy has disappeared or not.

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

11 years agocfg80211: add assert_cfg80211_lock() to ensure proper protection
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:25 +0000]
cfg80211: add assert_cfg80211_lock() to ensure proper protection

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

11 years agocfg80211: propagate -ENOMEM during regulatory_init()
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:24 +0000]
cfg80211: propagate -ENOMEM during regulatory_init()

Calling kobject_uevent_env() can fail mainly due to out of
memory conditions. We do not want to continue during such
conditions so propagate that as well instead of letting
cfg80211 load as if everything is peachy.

Additionally lets clarify that when CRDA is not called during
cfg80211's initialization _and_ if the error is not an -ENOMEM
its because kobject_uevent_env() failed to call CRDA, not because
CRDA failed. For those who want to find out why we also let you
do so by enabling the kernel config CONFIG_CFG80211_REG_DEBUG --
you'll get an actual stack trace.

So for now we'll treat non -ENOMEM kobject_uevent_env() failures as
non fatal during cfg80211's initialization.

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

11 years agocfg80211: add regulatory_hint_core() to separate the core reg hint
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:23 +0000]
cfg80211: add regulatory_hint_core() to separate the core reg hint

This makes the core hint path more readable and allows for us to
later make it obvious under what circumstances we need locking or not.

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

11 years agonl80211: disallow user requests prior to regulatory_init()
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:22 +0000]
nl80211: disallow user requests prior to regulatory_init()

If cfg80211 is built into the kernel there is perhaps a small
time window betwen nl80211_init() and regulatory_init() where
cfg80211_regdomain hasn't yet been initialized to let the
wireless core do its work. During that rare case and time
frame (if its even possible) we don't allow user regulatory
changes as cfg80211 is working on enabling its first regulatory
domain.

To check for cfg80211_regdomain we now contend the entire operation
using the cfg80211_mutex.

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

11 years agocfg80211: rename cfg80211_drv_mutex to cfg80211_mutex
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:21 +0000]
cfg80211: rename cfg80211_drv_mutex to cfg80211_mutex

cfg80211_drv_mutex is protecting more than the driver list,
this renames it and documents what its currently supposed to
protect.

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

11 years agocfg80211: add wiphy_idx_valid to check for wiphy_idx sanity
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:20 +0000]
cfg80211: add wiphy_idx_valid to check for wiphy_idx sanity

This will later be used by others, for now make use of it in
cfg80211_drv_by_wiphy_idx() to return early if an invalid
wiphy_idx has been provided.

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

11 years agocfg80211: rename cfg80211_registered_device's idx to wiphy_idx
Luis R. Rodriguez [Sat, 21 Feb 2009 05:04:19 +0000]
cfg80211: rename cfg80211_registered_device's idx to wiphy_idx

Makes it clearer to read when comparing to ifidx

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

11 years agomac80211: Introduce a generic commit() to apply changes
Alina Friedrichsen [Sat, 21 Feb 2009 00:27:29 +0000]
mac80211: Introduce a generic commit() to apply changes

This patch introduces a generic commit() function which initiate a
new network joining process. It should be called after some interface
config changes, so that the changes get applied more cleanly. Currently
set_ssid() and set_bssid() call it. Others can be added in future
patches.

In version 1 the header files was forgotten, sorry.

Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Convert usage of b43_radio_maskset()
Michael Buesch [Fri, 20 Feb 2009 18:31:21 +0000]
b43: Convert usage of b43_radio_maskset()

This patch converts code to use the new b43_radio_maskset() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, mask, set;
@@

-b43_radio_write16(dev, addr, (b43_radio_read16(dev, addr) & mask) | set);
+b43_radio_maskset(dev, addr, mask, set);
// </smpl>

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Convert usage of b43_radio_mask()
Michael Buesch [Fri, 20 Feb 2009 18:30:10 +0000]
b43: Convert usage of b43_radio_mask()

This patch converts code to use the new b43_radio_mask() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, mask;
@@

-b43_radio_write16(dev, addr, b43_radio_read16(dev, addr) & mask);
+b43_radio_mask(dev, addr, mask);
// </smpl>

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Convert usage of b43_radio_set()
Michael Buesch [Fri, 20 Feb 2009 18:28:14 +0000]
b43: Convert usage of b43_radio_set()

This patch converts code to use the new b43_radio_set() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, set;
@@

-b43_radio_write16(dev, addr, b43_radio_read16(dev, addr) | set);
+b43_radio_set(dev, addr, set);
// </smpl>

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Convert usage of b43_phy_maskset()
Michael Buesch [Fri, 20 Feb 2009 18:26:27 +0000]
b43: Convert usage of b43_phy_maskset()

This patch converts code to use the new b43_phy_maskset() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, mask, set;
@@

-b43_phy_write(dev, addr, (b43_phy_read(dev, addr) & mask) | set);
+b43_phy_maskset(dev, addr, mask, set);
// </smpl>

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Convert usage of b43_phy_mask()
Michael Buesch [Fri, 20 Feb 2009 18:25:05 +0000]
b43: Convert usage of b43_phy_mask()

This patch converts code to use the new b43_phy_mask() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, mask;
@@

-b43_phy_write(dev, addr, b43_phy_read(dev, addr) & mask);
+b43_phy_mask(dev, addr, mask);
// </smpl>

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Convert usage of b43_phy_set()
Michael Buesch [Fri, 20 Feb 2009 18:22:36 +0000]
b43: Convert usage of b43_phy_set()

This patch converts code to use the new b43_phy_set() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, set;
@@

-b43_phy_write(dev, addr, b43_phy_read(dev, addr) | set);
+b43_phy_set(dev, addr, set);
// </smpl>

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agolibertas: use private SDIO workqueue to avoid scheduling latency
Dan Williams [Fri, 20 Feb 2009 17:27:38 +0000]
libertas: use private SDIO workqueue to avoid scheduling latency

The libertas SDIO interface scheduled the packet worker, resulting in
unwanted latency for every data packet or command sent to the firmware.
Fix a bug on the SDIO probe error path too.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Implement sw scan callbacks
Michael Buesch [Fri, 20 Feb 2009 14:39:21 +0000]
b43: Implement sw scan callbacks

This implements the new sw scan callbacks in b43.
They are currently used to turn CFP update in the microcode off while scanning.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agomac80211: Add software scan notifiers
Michael Buesch [Fri, 20 Feb 2009 14:37:03 +0000]
mac80211: Add software scan notifiers

This adds optional notifier functions for software scan.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Enable PCI slow clock workaround, if needed.
Michael Buesch [Fri, 20 Feb 2009 13:58:59 +0000]
b43: Enable PCI slow clock workaround, if needed.

Enable the PCI slow clock workaround, if we're running a PCI core rev <= 10.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Honor the no-slow-clock boardflag
Michael Buesch [Fri, 20 Feb 2009 13:47:56 +0000]
b43: Honor the no-slow-clock boardflag

Do not turn off the crystal, if the boardflags tell us so.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Fix radio host flags
Michael Buesch [Fri, 20 Feb 2009 13:27:15 +0000]
b43: Fix radio host flags

This fixes initialization of some radio related hostflags.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Add slot count compiletime assertion
Michael Buesch [Fri, 20 Feb 2009 11:24:52 +0000]
b43: Add slot count compiletime assertion

This adds a compiletime assertion for a recently introduced
assumption on the slot counts.
The tx header cache handling code assumes that the TX slot count
can be divided evenly by the number of TX slots per frame.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath9k: Add appropriate ANI values for AP mode
Sujith [Fri, 20 Feb 2009 09:43:28 +0000]
ath9k: Add appropriate ANI values for AP mode

The short calibration interval is different for AP
mode, fix this. Also, the timer should be rearmed in
the calibration routine during scanning.

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

11 years agoath9k: Fix PCI shutdown sequence
Sujith [Fri, 20 Feb 2009 09:43:26 +0000]
ath9k: Fix PCI shutdown sequence

pci_release_region() has to be called after the device
has been disabled. Also remove a stray __init attribute.

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

11 years agoath9k: Fix bug in EEPROM chainmask retrieval
Sujith [Fri, 20 Feb 2009 09:43:23 +0000]
ath9k: Fix bug in EEPROM chainmask retrieval

Using wrong chainmasks would have an adverse impact on performance.
This patch fixes chainmask retrieval for non-PCIE cards.

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

11 years agoath9k: Add PER to RC debug statistics
Sujith [Fri, 20 Feb 2009 09:43:20 +0000]
ath9k: Add PER to RC debug statistics

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

11 years agoath9k: Remove multiple macro occurrences
Sujith [Fri, 20 Feb 2009 09:43:13 +0000]
ath9k: Remove multiple macro occurrences

OLC_FOR_AR9280_20_LATER is defined in multiple places,
move it to a common location.

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

11 years agoath9k: Don't reset TSF after scanning automatically
Alina Friedrichsen [Thu, 19 Feb 2009 22:46:31 +0000]
ath9k: Don't reset TSF after scanning automatically

Reset automatically the TSF on re-enabling beaconing after scanning
in IBSS mode causes several problems. For example a new created IBSS
network can't age before an other node has joined, because scans are
done automatically in that case. And several other strange bugs more...

The TSF reset is done manually in the higher level mac80211 code in
the cases were it's needed, so we don't need to do it here.

Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Optimize DMA buffers
Michael Buesch [Thu, 19 Feb 2009 22:45:43 +0000]
b43: Optimize DMA buffers

In the old days we used one slot per frame. But when we changed that to 2,
we didn't raise the overall slot count. Which resulted in an effective
division of two to the number of slots.

Double the number of TX slots, so we have an effective hardware queue
of 128 frames per QoS queue.

Also optimize the TX header cache handling. We don't need a cached TX header
for slots that will never carry an actual header.
So we reduce the memory consumption of the cache by 50%.

So as a net result we end up with more or less the same memory usage before
and after this patch (except a few tiny meta structures), but have twice
the number of TX slots available.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Fix DMA buffer size handling
Michael Buesch [Thu, 19 Feb 2009 22:39:26 +0000]
b43: Fix DMA buffer size handling

This fixes hidden bugs in the size handling of the DMA buffers.
This sets the RX buffer size to the theoretical max packet size and
fixes passing of the size values to the device (must not subtract the header offset).

These bugs are hidden and don't actually trigger due to the magic +100
offset for the buffer size.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agob43: Move DMA stop sanity check
Michael Buesch [Thu, 19 Feb 2009 19:17:36 +0000]
b43: Move DMA stop sanity check

Move the DMA stop sanity check up a few lines, so it's actually
theoretically possible to trigger. (But it still shouldn't trigger, of course).

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath9k: Filter out beacons from other BSS in STA mode
Vasanthakumar Thiagarajan [Thu, 19 Feb 2009 10:11:52 +0000]
ath9k: Filter out beacons from other BSS in STA mode

Passing beacons received from other BSS to s/w in non-scanning
state is unnecessary in STA mode. This patch filters them out in
h/w.

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

11 years agoiwlwifi: dma mapping read and write changes
Fenghua Yu [Wed, 18 Feb 2009 23:54:33 +0000]
iwlwifi: dma mapping read and write changes

When iwlwifi runs on IOMMU, IOMMU generates a lot of PTE write faults
because PTE write bit is not set on some of PTE's. This is because iwlwifi
driver calls DMA mapping with PCI_DMA_TODEVICE which is read only in mapping
PTE. But iwlwifi device actually writes to the mapped page to update its contents.
This issue is not exposed in swiotlb. But VT-d hardware can capture this fault and
stop the fault transaction.

The iwl TX command contains a scratch field that is updated by uCode to
indicate retry counts. For 5000 series the patch is required also for
regular frames, but this patch does not differenciate.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: use SW rfkill from iwlwifi
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:32 +0000]
iwl3945: use SW rfkill from iwlwifi

Patch unifies use of SW rfkill between 3945 and agn driver.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: use iwl_isr
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:31 +0000]
iwl3945: use iwl_isr

iwl3945 uses iwl_isr and deletes duplicated iwl3945_isr.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: remove duplicate interrupt code
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:30 +0000]
iwl3945: remove duplicate interrupt code

Patch removes duplicate code to enable and disable interrupt.
iwl3945 now uses iwlwifi's functions.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: use iwl_rx_reply_error notification
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:29 +0000]
iwl3945: use iwl_rx_reply_error notification

Patch removes duplicate code from iwl3945 and uses
iwl_rx_reply_error and spectrum notifications from iwlwifi.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: use iwl rx handlers
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:28 +0000]
iwl3945: use iwl rx handlers

Patch removes duplicate rx handlers(pm_sleep and pm_debug) from 3945 and
uses handlers from iwlwifi.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: use iwl_mac_hw_scan callback
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:27 +0000]
iwl3945: use iwl_mac_hw_scan callback

3945 can use iwl_mac_hw_scan callback instead of
iwl3945_mac_hw_scan callback.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwl3945: use iwl_rx_scan handlers
Abhijeet Kolekar [Wed, 18 Feb 2009 23:54:26 +0000]
iwl3945: use iwl_rx_scan handlers

Patch makes use of iwl_rx_scan handler for 3945.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoat76c50x-usb: convert at76_debug to an unsigned int
Jason Andryuk [Wed, 18 Feb 2009 20:41:04 +0000]
at76c50x-usb: convert at76_debug to an unsigned int

at76_debug should be an unsigned int as it used as a bit field.  In
fact, modprobe fails when trying to set at76_debug's high bit.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Signed-off-by: Kalle Valo <kalle.valo@iki.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoat76c50x-usb: update to latest mac80211 hw scan api
Jason Andryuk [Wed, 18 Feb 2009 20:40:57 +0000]
at76c50x-usb: update to latest mac80211 hw scan api

With the latest mac80211 stack, the driver needs to be updated for
cfg80211 scanning.  I based the changes off of modifications for
at76_usb found here:

http://johannes.sipsolutions.net/patches/old/all/2008-09-19-13:35/020-cfg80211-scan.patch

The trick was that max_signal also needs to be set to avoid a divide
by zero Oops.  I just guessed and used the value 100 for now.

kvalo: handpicked the change from two different patches

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Signed-off-by: Kalle Valo <kalle.valo@iki.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoat76c50x-usb: add driver
Kalle Valo [Sat, 7 Feb 2009 07:27:10 +0000]
at76c50x-usb: add driver

This is a driver for usb devices based on at76c50x chipset. This is
a mac80211 port of the original at76_usb driver.

Signed-off-by: Kalle Valo <kalle.valo@iki.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwlagn: default to MAX_UCODE_BEACON_INTERVAL in iwl_adjust_beacon_interval
John W. Linville [Sat, 21 Feb 2009 00:03:31 +0000]
iwlagn: default to MAX_UCODE_BEACON_INTERVAL in iwl_adjust_beacon_interval

Default to MAX_UCODE_BEACON_INTERVAL if the output of
iwl_adjust_beacon_interval would otherwise be zero.  This prevents a
division by zero on my iwl5300-equipped Lenovo T400 with kernels that
include "mac80211: use cfg80211s BSS infrastructure".

This patch is a bit of a hack -- I'm not sure why iwl_setup_rxon_timing
is giving iwl_adjust_beacon_interval a zero input (which is the only way
it would output zero).  I would be happy to have a better fix.  But for
now, this makes my box boot...

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

11 years agob43: Fix LO calibration txctl reg value
Roel Kluin [Sun, 15 Feb 2009 17:02:39 +0000]
b43: Fix LO calibration txctl reg value

This patch expands the parenthesis in the txctl reg write
of the LO calibration to enforce precedence rules.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agop54: misplaced parentheses
Roel Kluin [Sun, 15 Feb 2009 15:27:24 +0000]
p54: misplaced parentheses

Only FIF_FCSFAIL is set due to parentheses

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoipw2x00: age scan results on resume
Dan Williams [Wed, 11 Feb 2009 18:26:06 +0000]
ipw2x00: age scan results on resume

Scanned BSS entries are timestamped with jiffies, which doesn't
increment across suspend and hibernate.  On resume, every BSS in the
scan list looks like it was scanned within the last 10 seconds,
irregardless of how long the machine was actually asleep.  Age scan
results on resume with the time spent during sleep so userspace has a
clue how old they really are.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoairo: correct improper initialization of local variable
John W. Linville [Tue, 10 Feb 2009 18:53:01 +0000]
airo: correct improper initialization of local variable

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

11 years agomac80211/cfg80211: move iwrange handler to cfg80211
Johannes Berg [Wed, 18 Feb 2009 18:32:08 +0000]
mac80211/cfg80211: move iwrange handler to cfg80211

The previous patch made cfg80211 generally aware of the signal
type a given hardware will give, so now it can implement
SIOCGIWRANGE itself, removing more wext stuff from mac80211.
Might need to be a little more parametrized once we have
more hardware using cfg80211 and new hardware capabilities.

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

11 years agocfg80211: clean up signal type
Johannes Berg [Wed, 18 Feb 2009 17:45:06 +0000]
cfg80211: clean up signal type

It wasn't a good idea to make the signal type a per-BSS option,
although then it is closer to the actual value. Move it to be
a per-wiphy setting, update mac80211 to match.

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

11 years agonl80211: remove admin requirement from station get
Johannes Berg [Wed, 18 Feb 2009 09:48:07 +0000]
nl80211: remove admin requirement from station get

There's no particular reason to not let untrusted users see
this information -- it's just the stations we're talking to,
packet counters for them and possibly some mesh things.

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

11 years agomac80211: add missing kernel-doc
Johannes Berg [Wed, 18 Feb 2009 08:56:47 +0000]
mac80211: add missing kernel-doc

Document the new shutdown member.

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

11 years agoath9k: Fix PTK/GTK handshake timeout
Vasanthakumar Thiagarajan [Wed, 18 Feb 2009 04:52:02 +0000]
ath9k: Fix PTK/GTK handshake timeout

Some APs don't start BA negotiation with the client before it is done
with the key handshake in WPA/RSN. With those APs, key handshake times
out if EAPOL frames are sent after addba request. So defer the BA negotiation
until we are done with tx/rx of all EAPOL frames.

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

11 years agocfg80211/mac80211: fill qual.qual value/adjust max_qual.qual
Johannes Berg [Wed, 18 Feb 2009 17:27:22 +0000]
cfg80211/mac80211: fill qual.qual value/adjust max_qual.qual

Due to various bugs in the software stack we end up having
to fill qual.qual; level should be used, but wpa_supplicant
doesn't properly ignore qual.qual, NM should use qual.level
regardless of that because qual.qual is 0 but doesn't handle
IW_QUAL_DBM right now.

So fill qual.qual with the qual.level value clamped to
-110..-40 dBm or just the regular 'unspecified' signal level.
This requires a mac80211 change to properly announce the
max_qual.qual and avg_qual.qual values.

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

11 years agocfg80211: age scan results on resume
Dan Williams [Wed, 11 Feb 2009 22:14:43 +0000]
cfg80211: age scan results on resume

Scanned BSS entries are timestamped with jiffies, which doesn't
increment across suspend and hibernate.  On resume, every BSS in the
scan list looks like it was scanned within the last 10 seconds,
irregardless of how long the machine was actually asleep.  Age scan
results on resume with the time spent during sleep so userspace has a
clue how old they really are.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agort2x00: Fix RF offset
Ivo van Doorn [Tue, 17 Feb 2009 13:04:29 +0000]
rt2x00: Fix RF offset

The word_base is in bytes instead of word index number,
this means that when using it, it should be transformed into
a word index first.

Otherwise RF register reading will fail through debugfs since
we would start reading 4 words starting with word 4 (which is the last
valid word for RF).

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

11 years agonl80211: Provide access to STA TX/RX packet counters
Jouni Malinen [Tue, 17 Feb 2009 11:24:57 +0000]
nl80211: Provide access to STA TX/RX packet counters

The TX/RX packet counters are needed to fill in RADIUS Accounting
attributes Acct-Output-Packets and Acct-Input-Packets. We already
collect the needed information, but only the TX/RX bytes were
previously exposed through nl80211. Allow applications to fetch the
packet counters, too, to provide more complete support for accounting.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath9k: Use beacon interval directly
Sujith [Tue, 17 Feb 2009 10:06:35 +0000]
ath9k: Use beacon interval directly

Setting up the CAB queue requires only the beacon interval,
remove the function ath_get_beaconconfig() which is redundant.

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

11 years agoath9k: Remove ath_txq_depth and get the queue depth directly
Sujith [Tue, 17 Feb 2009 10:06:33 +0000]
ath9k: Remove ath_txq_depth and get the queue depth directly

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

11 years agoath9k: Remove a few unused capability macros
Sujith [Tue, 17 Feb 2009 10:06:31 +0000]
ath9k: Remove a few unused capability macros

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

11 years agoath9k: Initialize channel change time
Sujith [Tue, 17 Feb 2009 10:06:25 +0000]
ath9k: Initialize channel change time

Set channel change time to 5ms, this will improve scan results.

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

11 years agonl80211: Optional IEs into scan request
Jouni Malinen [Mon, 16 Feb 2009 17:39:13 +0000]
nl80211: Optional IEs into scan request

This extends the NL80211_CMD_TRIGGER_SCAN command to allow applications
to specify a set of information element(s) to be added into Probe
Request frames with NL80211_ATTR_IE. This provides support for the
MLME-SCAN.request primitive parameter VendorSpecificInfo and can be
used, e.g., to implement WPS scanning.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath9k: Fix antenna assignment bug in TX status processing
Sujith [Mon, 16 Feb 2009 07:53:21 +0000]
ath9k: Fix antenna assignment bug in TX status processing

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

11 years agoath9k: Fix HW wait timeout
Sujith [Mon, 16 Feb 2009 07:53:20 +0000]
ath9k: Fix HW wait timeout

RX and calibration have different timeout requirements.
This patch fixes it by changing the HW wait routine
to accept a timeout value.

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

11 years agoath9k: Program the RTC registers correctly
Sujith [Mon, 16 Feb 2009 07:53:12 +0000]
ath9k: Program the RTC registers correctly

This patch programs the RTC registers of AR9100 chipsets
correctly during chip reset.

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

11 years agoath5k: compute rts/cts duration after computing full pktlen
Bob Copeland [Sun, 15 Feb 2009 17:06:12 +0000]
ath5k: compute rts/cts duration after computing full pktlen

RTS and CTS-to-self duration needs to go after ICV len is considered.

Changes-licensed-under: 3-Clause-BSD

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath5k: move beacon processing to a tasklet
Bob Copeland [Sun, 15 Feb 2009 17:06:11 +0000]
ath5k: move beacon processing to a tasklet

We currently send beacons directly from the interrupt routine.  This
can hold up interrupt processing in beaconing modes and makes the
ISR somewhat more complex.  Move it to a tasklet like rx and tx.

Changes-licensed-under: 3-Clause-BSD

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath5k: use spin_lock_irqsave for beacon lock
Bob Copeland [Sun, 15 Feb 2009 17:06:10 +0000]
ath5k: use spin_lock_irqsave for beacon lock

ath5k_reset can be called from process context, which in turn can
call ath5k_beacon_config which takes the sc->block spinlock.  Since
it can also be taken in hard irq context, use spin_lock_irqsave
everywhere.  This fixes a potential deadlock in adhoc mode.

Changes-licensed-under: 3-Clause-BSD

Cc: stable@kernel.org
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath5k: don't mask off interrupt bits
Bob Copeland [Sun, 15 Feb 2009 17:06:09 +0000]
ath5k: don't mask off interrupt bits

Since interrupts are already masked by the hardware, there's no need to
discard interrupt bits in the ISR itself.  Also, in ath5k_beacon_config
we mask off a couple of bits without locking, so doing this mask in
software can lead to unhandled beacon timer and beacon miss interrupts.

Changes-licensed-under: 3-Clause-BSD

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agort2x00: Add various new USB IDs for rt73usb
Ivo van Doorn [Sun, 15 Feb 2009 16:43:05 +0000]
rt2x00: Add various new USB IDs for rt73usb

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

11 years agort2x00: Remove check for rf word 0
Ivo van Doorn [Sun, 15 Feb 2009 16:42:48 +0000]
rt2x00: Remove check for rf word 0

The only way rf_write() can be called with word 0 is
when the user sends the wrong word index through debugfs.
However the values which are send through debugfs are
validated using the RF_BASE and RF_SIZE macro values,
the most logical solution is to increase RF_BASE with 4
and decrease RF_SIZE with 4 (RF_SIZE has always been
1 word too big)

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

11 years agort2x00: uncomment get_tsf
Ivo van Doorn [Sun, 15 Feb 2009 16:42:30 +0000]
rt2x00: uncomment get_tsf

The atomic requirement for get_tsf() has been removed
by mac80211. This means the USB drivers can add support
for the callback function again.

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

11 years agowireless: fix for CONFIG_NL80211=n
Randy Dunlap [Sat, 14 Feb 2009 00:39:35 +0000]
wireless: fix for CONFIG_NL80211=n

Add empty function for case of CONFIG_NL80211=n:

net/wireless/scan.c:35: error: implicit declaration of function 'nl80211_send_scan_aborted'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwlwifi: Fix and rework Kconfig file
Reinette Chatre [Fri, 13 Feb 2009 19:51:19 +0000]
iwlwifi: Fix and rework Kconfig file

Fixes:
- iwlwifi is an optional driver and should thus not default to 'y'.
- 3945 now depends on IWLCORE.

Rework:
- There is not a case when IWLCORE should not be selected. At the same time
  the driver does not use IWLWIFI or IWLCORE. We can just merge the usage of
  these two. With IWLWIFI being the driver name we proceed to use just it and
  replace instances of IWLCORE with it. The module name does not change
  and is still iwlcore.
- Both IWLAGN and IWL3945 are selecting FW_LOADER, we can thus just move
  this up to one select when IWLWIFI is selected.
- IWL5000 now supports Intel Wireless Wifi 100, 6000, and 6050 series.
- Now that 3945 depends on IWLWIFI we can also indicate its dependency on
  MAC80211_LEDS and LEDS_CLASS at this level.
- IWLAGN_LEDS is not used by driver - remove it.
- IWLAGN_SPECTRUM_MEASUREMENT actually depends on IWLWIFI as it forms part
  of iwlcore module. Move this config up in Kconfig to reflect that and also
  change name to IWLWIFI_SPECTRUM_MEASUREMENT.
- CONFIG_IWLWIFI_RFKILL is used by iwlagn as well as iwl3945, add text to
  description that indicates this.
- CONFIG_IWL3945_RFKILL does not exist - remove usage from driver.
- Add "iwlagn" to end of description of IWLAGN to help people understand
  what iwlagn means in rest of Kconfig text.
- Add "iwl3945" to end of description of IWL3945 to help people understand
  what iwlagn means in rest of Kconfig text.
- Change IWLWIFI_DEBUGFS description to indicate that only iwlagn supports
  it (for now).

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwlwifi: use singlethread workqueue
Reinette Chatre [Fri, 13 Feb 2009 19:51:18 +0000]
iwlwifi: use singlethread workqueue

Use one workqueue instead of one per CPU.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
cc: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoiwlwifi: report correct and detailed values about requested txpower
Wu, Fengguang [Fri, 13 Feb 2009 19:51:17 +0000]
iwlwifi: report correct and detailed values about requested txpower

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoipw2200, fix ipw io functions
Jiri Slaby [Thu, 12 Feb 2009 21:29:40 +0000]
ipw2200, fix ipw io functions

- some of them are defined as follows:
  #define ipw_write32 expr1; expr2
  and are called from loops or ifs without a compound statement, so
  they are broken. Fix it by putting them into do {} while (0) for
  writes and ({ }) for reads.
- also unify and cleanup them while at it -- convert them from
  macros to inline functions, so that we get some basic typechecking

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Cc: James Ketrenos <jketreno@linux.intel.com>
Cc: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath9k: move common regulatory code out of if() branches
Bob Copeland [Thu, 12 Feb 2009 18:38:58 +0000]
ath9k: move common regulatory code out of if() branches

Both branches of the regulatory check in ath_attach() set up a
custom regulatory domain and apply radar and world flags, so extract
those into a single path.

While at it, fix a couple of spelling errors and an unnecessary extra
pointer traversal.

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

11 years agoath9k: remove prototype for ath9k_regd_get_current_country
Bob Copeland [Thu, 12 Feb 2009 18:38:57 +0000]
ath9k: remove prototype for ath9k_regd_get_current_country

ath9k_regd_get_current_country() doesn't exist.

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

11 years agoath9k: remove ath9k_regd_get_rd()
Bob Copeland [Thu, 12 Feb 2009 18:38:56 +0000]
ath9k: remove ath9k_regd_get_rd()

The function ath9k_regd_get_rd() is unused.

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

11 years agoath9k: convert isWwrSKU macro into C code
Bob Copeland [Thu, 12 Feb 2009 18:38:55 +0000]
ath9k: convert isWwrSKU macro into C code

Write isWwrSKU as an inline function and nix the camel-case to make
the routine slightly clearer.  Change its argument to take the regd
value directly so it can eventually be used by ath5k as well.

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

11 years agoath9k: save a few calls to ath9k_regd_get_eepromRD
Bob Copeland [Thu, 12 Feb 2009 18:38:54 +0000]
ath9k: save a few calls to ath9k_regd_get_eepromRD

Since we already have a stack variable to track the eeprom regd,
we can grab it up front it and save three calls to fetch it again.

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

11 years agoath9k: remove write-only current_rd_inuse
Bob Copeland [Thu, 12 Feb 2009 18:38:53 +0000]
ath9k: remove write-only current_rd_inuse

The current_rd_inuse regulatory value is assigned but not used anywhere.

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

11 years agoiwlagn: clean up error path in iwl_pci_probe
Helmut Schaa [Thu, 12 Feb 2009 17:51:03 +0000]
iwlagn: clean up error path in iwl_pci_probe

This avoids triggering a BUG_ON in pci_disable_msi in the error path.
Furthermore remove the first call to pci_disable_device as it is already
called at out_pci_disable_device.

Both issues were introduced in the patch "iwlagn: fix hw-rfkill while
the interface is down".

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

11 years agoath9k: Add open loop control support
Senthil Balasubramanian [Thu, 12 Feb 2009 08:27:03 +0000]
ath9k: Add open loop control support

This patch adds Open Loop Control support for Atheros chipsets that
supports open loop power control.

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

11 years agomac80211: Extend the rate control API with an update callback
Sujith [Thu, 12 Feb 2009 06:08:37 +0000]
mac80211: Extend the rate control API with an update callback

The AP can switch dynamically between 20/40 Mhz channel width,
in which case we switch the local operating channel, but the
rate control algorithm is not notified. This patch adds a new callback
to indicate such changes to the RC algorithm.

Currently, HT channel width change is notified, but this callback
can be used to indicate any new requirements that might come up later on.

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

11 years agoath9k: Decrease minimum NF threshold
Sujith [Thu, 12 Feb 2009 04:36:54 +0000]
ath9k: Decrease minimum NF threshold

The existing value was too conservative, causing
the history buffer not to be updated.

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

11 years agoath9k: Fix incorrect noise floor reading for 4k EEPROM
Sujith [Thu, 12 Feb 2009 04:36:52 +0000]
ath9k: Fix incorrect noise floor reading for 4k EEPROM

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

11 years agoath9k: Fix bug in disabling MIB counters
Sujith [Thu, 12 Feb 2009 04:36:51 +0000]
ath9k: Fix bug in disabling MIB counters

This patch fixes a bug in ANI, where the MIB counters were
being cleared before the stats were updated.

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

11 years agoath9k: Initialize AGC calibration properly
Sujith [Thu, 12 Feb 2009 04:36:49 +0000]
ath9k: Initialize AGC calibration properly

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

11 years agoath9k: Enable TSF Out of Range Interrupt
Sujith [Thu, 12 Feb 2009 04:36:47 +0000]
ath9k: Enable TSF Out of Range Interrupt

This patch lays the groundwork for handling TSF Out of Range
interrupt, which will be used for power save later on.

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

11 years agoath9k: Enable Fractional N mode
Sujith [Thu, 12 Feb 2009 04:36:45 +0000]
ath9k: Enable Fractional N mode

This patch enables Fractional N mode for all channel
if the EEPROM says so, and also fixes the INI only
when the device is not a 2 GHz only capable device.

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

11 years agoath9k: Fix rd_ext EEPROM capability for AR9285
Sujith [Thu, 12 Feb 2009 04:36:43 +0000]
ath9k: Fix rd_ext EEPROM capability for AR9285

AR9285 chipsets have a different EEPROM layout,
handle this appropriately when populating the rd_ext
capability.

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

11 years agoath9k: Store the correct max TX power level
Sujith [Thu, 12 Feb 2009 04:36:36 +0000]
ath9k: Store the correct max TX power level

This patch fixes a bug where the max power level
was being calculated incorrectly.

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

11 years agomac80211: split IBSS/managed code
Johannes Berg [Sun, 15 Feb 2009 11:44:28 +0000]
mac80211: split IBSS/managed code

This patch splits out the ibss code and data from managed (station) mode.
The reason to do this is to better separate the state machines, and have
the code be contained better so it gets easier to determine what exactly
a given change will affect, that in turn makes it easier to understand.

This is quite some churn, especially because I split sdata->u.sta into
sdata->u.mgd and sdata->u.ibss, but I think it's easier to maintain that
way. I've also shuffled around some code -- null function sending is only
applicable to managed interfaces so put that into that file, some other
functions are needed from various places so put them into util, and also
rearranged the prototypes in ieee80211_i.h accordingly.

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

11 years agomac80211: fix aggregation for hardware with ampdu queues
Johannes Berg [Wed, 11 Feb 2009 23:51:53 +0000]
mac80211: fix aggregation for hardware with ampdu queues

Hardware with AMPDU queues currently has broken aggregation.

This patch fixes it by making all A-MPDUs go over the regular AC queues,
but keeping track of the hardware queues in mac80211. As a first rough
version, it actually stops the AC queue for extended periods of time,
which can be removed by adding buffering internal to mac80211, but is
currently not a huge problem because people rarely use multiple TIDs
that are in the same AC (and iwlwifi currently doesn't operate as AP).

This is a short-term fix, my current medium-term plan, which I hope to
execute soon as well, but am not sure can finish before .30, looks like
this:
 1) rework the internal queuing layer in mac80211 that we use for
    fragments if the driver stopped queue in the middle of a fragmented
    frame to be able to queue more frames at once (rather than just a
    single frame with its fragments)
 2) instead of stopping the entire AC queue, queue up the frames in a
    per-station/per-TID queue during aggregation session initiation,
    when the session has come up take all those frames and put them
    onto the queue from 1)
 3) push the ampdu queue layer abstraction this patch introduces in
    mac80211 into the driver, and remove the virtual queue stuff from
    mac80211 again

This plan will probably also affect ath9k in that mac80211 queues the
frames instead of passing them down, even when there are no ampdu queues.

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