aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath9k
AgeCommit message (Collapse)AuthorFilesLines
2011-03-15Merge branch 'master' of ↵John W. Linville11-138/+86
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
2011-03-14ath9k: fix aggregation related interoperability issuesFelix Fietkau1-1/+1
Some clients seems to keep track of their reorder window even after an aggregation session has been disabled. This causes issues if there are still retried but not completed frames pending for the TID. To ensure that rx does not stall in such situations, set sendbar to 1 for any frame purged from the TID queue on teardown. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-14ath9k: improve reliability of beacon transmission and stuck beacon handlingFelix Fietkau3-74/+12
ath9k calls ath9k_hw_stoptxdma every time it sends a beacon, however there is not much point in doing that if the previous beacon and mcast traffic went out properly. On AR9380, calling that function too often can result in an increase of stuck beacons due to differences in the handling of the queue enable/disable functionality. With this patch, the queue will only be explicitly stopped if the previous data frames were not sent successfully. With the beacon code being the only remaining user of ath9k_hw_stoptxdma, this function can be simplified in order to remove the now pointless attempts at waiting for transmission completion, which would never happen at this point due to the different method of tx scheduling of the beacon queue. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-14ath9k: fix the .flush driver op implementationFelix Fietkau3-51/+34
This patch simplifies the flush op and reuses ath_drain_all_txq for flushing out pending frames if necessary. It also uses a global timeout of 200ms instead of the per-queue 60ms timeout. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-14ath9k: fix stopping tx dma on resetFelix Fietkau3-8/+35
In some situations, stopping Tx DMA frequently fails, leading to messages like this: ath: Failed to stop TX DMA in 100 msec after killing last frame ath: Failed to stop TX DMA! This patch uses a few MAC features to abort DMA globally instead of iterating over all hardware queues and attempting to stop them individually. Not only is that faster and works with a shorter timeout, it also makes the process much more reliable. With this change, I can no longer trigger these messages on AR9380, and on AR9280 they become much more rare. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-14ath9k_hw: fix REG_SET_BIT and REG_CLR_BIT for multiple bitsFelix Fietkau1-2/+2
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-11ath9k_hw: Increase the wait count for nf load.Vivek Natarajan1-2/+2
Increasing the wait count makes the nf load pass in most of the cases. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-11ath9k_hw: Fix PLL initialization for AR9485.Vivek Natarajan1-2/+2
Increase the delay to make sure the initialization of pll passes. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-11ath9k_hw: Improve idle power consumption for AR9485.Vivek Natarajan1-0/+2
Set some GPIO pins to Pull-down mode to save power. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-11ath9k: remove support for the FIF_PROMISC_IN_BSS filter flagFelix Fietkau1-3/+1
The hardware rx filter flag triggered by FIF_PROMISC_IN_BSS is overly broad and covers even frames with PHY errors. When this flag is enabled, this message shows up frequently during scanning or hardware resets: ath: Could not stop RX, we could be confusing the DMA engine when we start RX up Since promiscuous mode is usually not particularly useful, yet enabled by default by bridging (either used normally in 4-addr mode, or with hacks for various virtualization software), we should sacrifice it for better reliability during normal operation. This patch leaves it enabled if there are active monitor mode interfaces, since it's very useful for debugging. Signed-off-by: Felix Fietkau <[email protected]> Cc: [email protected] Signed-off-by: John W. Linville <[email protected]>
2011-03-11Merge branch 'master' of ↵John W. Linville3-23/+78
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
2011-03-07wireless:ath: use resource_size() help functionShan Wei1-1/+1
Signed-off-by: Shan Wei <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04Merge branch 'for-davem' of ↵David S. Miller14-386/+755
ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
2011-03-04ath9k: Fix txq memory address printing in debugfs.Ben Greear1-4/+4
No use printing addresses of pointers, just print the pointers themselves. Signed-off-by: Ben Greear <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04ath9k_hw: Read noise floor only for available chains for AR9003Vasanthakumar Thiagarajan1-18/+19
Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-04ath9k: Add a debugfs interface to dump chip registersVasanthakumar Thiagarajan1-0/+54
/<debugfs_root>/ieee80211/phyX/ath9k/regdump is the interface to dump the registers. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-03Merge branch 'master' of ↵David S. Miller2-6/+8
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/bnx2x/bnx2x.h
2011-03-01ath9k_htc: Handle BSSID/AID for multiple interfacesSujith Manoharan3-20/+81
The AID and BSSID should be set in the HW only for the first station interface or adhoc interface. Also, cancel the ANI timer in stop() for multi-STA scenario. And finally configure the HW beacon timers only for the first station interface. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-28ath9k: Fix incorrect GPIO LED pin for AR9485Senthil Balasubramanian2-0/+3
AR9485 doesn't use the default GPIO pin for LED and GPIO 6 is actually used for this. Signed-off-by: Senthil Balasubramanian <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-28ath9k: use generic mac80211 LED blinking codeFelix Fietkau4-170/+61
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-28ath9k_htc: Fix an endian issueSujith Manoharan1-4/+5
The stream length/tag fields have to be in little endian format. Fixing this makes the driver work on big-endian platforms. Cc: [email protected] Tested-by: [email protected] Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-25ath9k: Fix compilation warning.Vivek Natarajan1-1/+1
Initialize txq to avoid this warning: drivers/net/wireless/ath/ath9k/main.c: In function ‘ath9k_flush’: drivers/net/wireless/ath/ath9k/main.c:2138: warning: ‘txq’ may be used uninitialized in this function Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-25ath9k: Cancel pll_work while disabling radio.Vivek Natarajan1-0/+4
pll_work should be cancelled on full_sleep or it may cause redundant chip reset. Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-25ath9k_hw: Fix pcie_serdes setting for AR9485 1.1 version.Vivek Natarajan1-4/+4
Signed-off-by: Vivek Natarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-25mac80211: make tx() operation return voidJohannes Berg2-8/+5
The return value of the tx operation is commonly misused by drivers, leading to errors. All drivers will drop frames if they fail to TX the frame, and they must also properly manage the queues (if they didn't, mac80211 would already warn). Removing the ability for drivers to return a BUSY value also allows significant cleanups of the TX TX handling code in mac80211. Note that this also fixes a bug in ath9k_htc, the old "return -1" there was wrong. Signed-off-by: Johannes Berg <[email protected]> Tested-by: Sedat Dilek <[email protected]> [ath5k] Acked-by: Gertjan van Wingerde <[email protected]> [rt2x00] Acked-by: Larry Finger <[email protected]> [b43, rtl8187, rtlwifi] Acked-by: Luciano Coelho <[email protected]> [wl12xx] Signed-off-by: John W. Linville <[email protected]>
2011-02-25ath9k: correct ath9k_hw_set_interruptsStanislaw Gruszka1-2/+3
Commit 4df3071ebd92ef7115b409da64d0eb405d24a631 "ath9k_hw: optimize interrupt mask changes", changed ath9k_hw_set_interrupts function to enable interrupts regardless of function argument, what could possibly be wrong. Correct that behaviour and check "ints" arguments before enabling interrupts, also disable interrupts if ints do not have ATH9K_INT_GLOBAL flag set. Signed-off-by: Stanislaw Gruszka <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23mac80211: rename RX_FLAG_TSFTJohannes Berg2-2/+2
The flag isn't very descriptive -- the intention is that the driver provides a TSF timestamp at the beginning of the MPDU -- make that clearer by renaming the flag to RX_FLAG_MACTIME_MPDU. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Fix error path in URB allocationSujith Manoharan1-3/+1
ath9k_hif_usb_alloc_urbs() takes care of freeing all the allocated URBs for the various endpoints when an error occurs. Calling ath9k_hif_usb_dealloc_urbs() would cause a panic since the URBs have already been freed. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Add debug code to print endpoint mappingSujith Manoharan1-0/+17
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Fix RX filtersSujith Manoharan1-2/+7
Add ATH9K_RX_FILTER_UNCOMP_BA_BAR and ATH9K_RX_FILTER_PSPOLL when mac80211 requires it. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Fix host RX initializationSujith Manoharan1-8/+0
There is no need to set the BSSID mask or opmode when initializing RX, they would be set correctly in the HW reset routine. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Fix TBTT calculation for IBSS modeSujith Manoharan1-4/+15
The target beacon transmission time has to be synced with the HW TSF when configuring beacon timers in Adhoc mode. Failing to do this would cause erroneous beacon transmission, for example, on completion of a scan run to check for IBSS merges. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Configure beacon timers in AP modeSujith Manoharan4-15/+115
Handle multi-interface situations by checking if AP interfaces are already present. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Add ANI for AP modeSujith Manoharan3-17/+43
The time granularity for the ANI task is different for AP and station mode. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Calculate and set the HW opmodeSujith Manoharan1-1/+14
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Allow AP interface to be createdSujith Manoharan2-0/+19
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Maintain individual counters for interfacesSujith Manoharan2-2/+40
This is required for allowing only one IBSS interface to be configured. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Protect ampdu_action with a mutexSujith Manoharan1-0/+4
This is required when issuing commands to the firmware. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Use VIF from the packet's control dataSujith Manoharan1-1/+7
There is no need to use a locally stored reference. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Make sequence number calculation per-VIFSujith Manoharan2-3/+3
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Set the BSSID mask for multiple interfacesSujith Manoharan2-0/+40
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Remove OP_ASSOCIATED variableSujith Manoharan4-41/+74
mac80211 stores the association state in ieee80211_bss_conf. Use this and remove the local state, which is incorrect anyway since it is stored globally and not on a per-VIF basis. Restarting ANI and reconfiguration of HW beacon timers when a scan run ends requires more work. This is handled by iterating over the active interfaces. Finally, remove the useless check for associated status in RX processing. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Remove OP_PROTECT_ENABLESujith Manoharan3-17/+6
CTS protection can be obtained from mac80211 directly. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Remove OP_PREAMBLE_SHORTSujith Manoharan2-16/+6
mac80211's BSS info can be used for this. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Fix error handling in add_interfaceSujith Manoharan1-4/+6
Addition of a station might fail - handle this error properly by removing the VAP on the target. Also, bail out immediately if the max. no of interfaces has been reached. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Unify target capability updatingSujith Manoharan1-14/+5
Update capabilites on the target once, when start() is called, there is no need for redundant updating on adding an interface. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Allow upto two simultaneous interfacesSujith Manoharan3-54/+130
Multiple interfaces can be configured if a slot is free on the target. Monitor mode also requires a slot. The maximum number of stations that can be handled in the firmware is 8, manage the station slots accordingly. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-23ath9k_htc: Handle storage devicesSujith Manoharan2-6/+69
Some AR7010 based devices are recognized as storage media. Sending a CD-EJECT command to the device will 'convert' it into a WLAN device. Do this within the driver itself, removing the dependancy on an external program (usb_modeswitch). Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-21ath9k_hw: Fix power on resetSujith Manoharan1-1/+0
Commit "ath9k_hw: add an extra delay when reseting AR_RTC_RESET" added an extra udelay to the reset routine. As the required delay is already present, remove this. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-02-21ath9k: Implement op_flush()Vasanthakumar Thiagarajan3-11/+88
When op_flush() is called with no drop (drop=false), the driver tries to tx as many frames as possible in about 100ms on every hw queue. During this time period frames from sw queue are also scheduled on to respective hw queue. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: John W. Linville <[email protected]>