aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath
AgeCommit message (Collapse)AuthorFilesLines
2013-08-15ath9k: simplify ath_tid_drainFelix Fietkau1-12/+0
ath_tid_drain is only called when a station entry is being removed, so there is no point in still tracking BAW state. Remove some unnecessary code and a bogus TODO comment related to this. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-15ath9k: avoid accessing MRC registers on single-chain devicesFelix Fietkau1-0/+4
They are not implemented, and accessing them might trigger errors Cc: [email protected] Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-15ath9k: simplify debugfs chainmask handlingFelix Fietkau1-88/+4
Writing to that file is unnecessary and quirky, the antenna API should be used instead. Use debugfs_create_u8 to allow reading the values. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-15ath9k: remove ath9k_sta_remove_debugfsFelix Fietkau4-20/+1
mac80211 uses debugfs_remove_recursive, so there's no need for the driver to do an explicit cleanup of its sta debugfs entry. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-15ath9k: shrink a few data structures by reordering fieldsFelix Fietkau2-14/+14
Also reduce the size of a few fields where possible Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-15ath9k: fix rx descriptor related race conditionFelix Fietkau2-8/+14
Similar to a race condition that exists in the tx path, the hardware might re-read the 'next' pointer of a descriptor of the last completed frame. This only affects non-EDMA (pre-AR93xx) devices. To deal with this race, defer clearing and re-linking a completed rx descriptor until the next one has been processed. Cc: [email protected] Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-15Merge branch 'for-linville' of git://github.com/kvalo/athJohn W. Linville11-43/+270
2013-08-12cfg80211: add wdev to testmode cmdDavid Spinadel2-3/+7
To allow drivers to implement per-interface testmode operations more easily, pass a wdev pointer if any identification for one was given from userspace. Clean up the code a bit while at it. Signed-off-by: David Spinadel <[email protected]> Signed-off-by: Johannes Berg <[email protected]>
2013-08-09ath9k: Run the LNA combining algorithm properlySujith Manoharan1-16/+28
The LNA combining algorithm has to be run for cards that support the required diversity features, make sure that that correct conditions are met before enabing this algorithm. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: Fix BTCOEX usage for RX diversitySujith Manoharan1-2/+2
BTCOEX has to be *disabled* for WLAN RX diversity to work on combo cards. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: use software queueing for multicast trafficFelix Fietkau3-2/+23
Create a per-vif dummy node entry for keeping the multicast software queues. This helps in setups with a lot of mulitcast traffic that could otherwise potentially drown out unicast traffic to stations. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: improve tx scheduling fairnessFelix Fietkau1-39/+50
Instead of trying to schedule the same TID multiple times in a loop, iterate over other TIDs/stations first. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: use software queues for un-aggregated data packetsFelix Fietkau2-127/+145
This is a first step for improving fairness between legacy and 802.11n traffic, and it should also improve reliability of resets and channel changes by keeping the hardware queue depth very short. When an aggregation session is torn down, all packets in the retry queue will be removed from the BAW and freed. For all subframes that have not been transmitted yet, the A-MPDU flag will be cleared, and a sequence number allocated. This ensures that the next A-MPDU session will get the correct initial sequence number. This happens both on aggregation session start and stop. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: always clear ps filter bit on new assocFelix Fietkau1-0/+1
Otherwise in some cases, EAPOL frames might be filtered during the initial handshake, causing delays and assoc failures. Cc: [email protected] Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: fix clearing expired A-MPDU subframes in tx completionFelix Fietkau1-1/+2
When the tid aggregation state has been marked as inactive, free completed tx packets immediately. When a new aggregation session has not been initialized yet, the BAW checks do not recognize it as expired. Might fix potential stalls in setting up a new aggregation session. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: prepare queueing code for handling unaggregated trafficFelix Fietkau2-9/+14
- Allow ath_tx_get_tid_subframe to return non-AMPDU subframes. - Reset the tid paused state on aggregation stop - Initialize software queues even when HT is not supported Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: fix block ack window tracking checkFelix Fietkau2-7/+11
When a packet has been tracked as part of the BlockAck window and added to the hardware queue, it can end up back in the TID queue again with fi->retries still set to 0 (e.g. if the frame was filtered). Keep an extra bit for the BAW tracking status to fix this corner case. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: simplify ath_tx_form_aggrFelix Fietkau2-22/+12
The check for ATH_AMPDU_SUBFRAME_DEFAULT is unnecessary, since it's set to half the maximum BlockAck Window size, which is already the maximum value that h_baw could possibly have. Also remove unnecessary variables. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: add CAB queue info to debugfsFelix Fietkau1-16/+27
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: add function for getting the tx tid for a packetFelix Fietkau1-8/+17
Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: split tid retry packets into a separate queueFelix Fietkau2-4/+15
Improves packet retry order and helps with further tx queueing improvements. Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: add utility functions for accessing tid queuesFelix Fietkau1-19/+32
Useful for further fixes / cleanups Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09ath9k: Fix build failureSujith Manoharan5-5/+30
Make sure that CONFIG_ATH9K_BTCOEX_SUPPORT is used for the WLAN/BT RX diversity hooks. Reported by the kernel build testing backend. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-09Merge branch 'master' of ↵John W. Linville1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
2013-08-07ath6kl: Fix invalid pointer access on fuzz testing with AP modeMohammed Shafi Shajakhan1-0/+3
In our Fuz testing, reference client corrupts the dest mac to "00:00:00:00:00:00" in the WPA2 handshake no 2. During driver init the sta_list entries mac addresses are by default "00:00:00:00:00:00". Driver returns an invalid pointer (conn) and the drver shall crash, if rxtids (aggr_conn) skb queues are accessed, since they would not be initialized. Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-07ath6kl: Fix race in heart beat pollingVasanthakumar Thiagarajan1-0/+3
Make sure to cancel heart beat timer before freeing wmi to avoid potential NULL pointer dereference. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-07ath10k: add SoC power save option to PCI features mapBartosz Markowski2-12/+21
Unify the PCI options location. By default the SoC PS option is disabled to boost the performance and due to poor stability on early HW revisions. In future we can remove the module parameter and turn on/off the PS for given hardware. This change also makes the pci module parameter for SoC PS static. Signed-off-by: Bartosz Markowski <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-05ath9k: Add more PCI IDs for WB225 cardsSujith Manoharan1-0/+72
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Fix antenna control init for AR9485Sujith Manoharan1-1/+13
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Remove ath_ant_comb_update()Sujith Manoharan4-28/+1
During a HW reset, the diversity config is programmed in the set_board_values() eeprom callback, there is no need to do it again by calling ath_ant_comb_update(). Fixed antenna support is not fully handled for 1-stream cards, it can be done later. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Support ANT diversity for WB225Sujith Manoharan3-41/+86
WB225 based cards like CUS198 and CUS230 support both fast antenna diversity and LNA combining. Add support for this and also program the SWCOM register with the correct "ant_ctrl_comm2g_switch_enable" value. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Set SWCOM value for CUS198Sujith Manoharan2-0/+2
CUS198/CUS230 cards require a custom value to be programmed into the SWCOM register. Assign this during init time. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Remove "shared_chain_lnadiv"Sujith Manoharan4-4/+3
This variable is redundant since we can use common->bt_ant_diversity to determine if diversity has to be enabled/disabled. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Program HW for WB195 diversitySujith Manoharan2-0/+66
The MC_GAIN_CTL/CCK_DETECT registers have to be programmed with the correct configuration values if WLAN/BT RX diversity is enabled. Add this and also take care of the BTCOEX mode when fast diversity is enabled/disabled. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Enable WLAN/BT Ant Diversity for WB225/WB195Sujith Manoharan1-5/+13
A custom solution for Asus is WB195 based and supports WLAN/BT Rx diversity. Identify this card and set the capability. CUS198/CUS230, which are based on WB225 also support WLAN/BT Rx diversity. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Rename ath9k_hw_antctrl_shared_chain_lnadivSujith Manoharan4-9/+7
Use "ath9k_hw_set_bt_ant_diversity" instead. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Add a HW capability for WLAN/BT RX diversitySujith Manoharan4-9/+28
Make use of this capability to restrict the usage of the debugfs file and modparam using which this feature can be enabled. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Cleanup WLAN/BT RX diversitySujith Manoharan4-28/+26
For single-chain WLAN+BT cards, the BT antenna can be used for WLAN RX when the BT interface is disabled. Rename the modparam "antenna_diversity" to "bt_ant_diversity" to clarify this. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Fix antenna diversity for CUS198Sujith Manoharan3-26/+59
CUS198/CUS230 need a few tweaks in the antenna diversity algorithm to accomodate RSSI variation. Add a couple of knobs to control low RSSI threshold and fast antenna diversity bias values. Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Print LNA combining mode during initSujith Manoharan1-15/+9
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath9k: Add information about antenna diversitySujith Manoharan1-0/+52
Signed-off-by: Sujith Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-08-05ath10k: fix device teardownMichal Kazior1-11/+30
This fixes interrupt-related issue when no interfaces were running thus the device was considered powered down. The power_down() function isn't really powering down the device. It simply assumed it won't interrupt. This wasn't true in some cases and could lead to paging failures upon FW indication interrupt (i.e. FW crash) because some structures aren't allocated in that device state. One reason for that was that ar_pci->started wasn't reset. The other is interrupts should've been masked when teardown starts. The patch reorganized interrupt setup and makes sure ar_pci->started is reset accordingly. Reported-by: Ben Greear <[email protected]> Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02Merge tag 'for-linville-20130730' of git://github.com/kvalo/ath6klJohn W. Linville19-454/+959
2013-08-02ath10k: fix failpath in MSI-X setupMichal Kazior1-1/+6
pci_disable_msi() must be called if the initial request_irq() fails. Also add a warning message so it's possible to distinguish request_irq() failure and pci_enable_msi() failure. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02ath10k: zero arvif memory on add_interface()Michal Kazior1-0/+2
The private memory area in vif provided by mac80211 isn't guaranteed to be zeroed. This patch should fix issues when switching between STA and AP interface types. The tim_bitmap could become polluted by STA bssid field (since it's a union), wep_keys array could also become polluted with invalid pointers and probably much more. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02ath10k: advertise more conservative intf combinationsMichal Kazior1-3/+9
Apparently the available firmware has a limit of handling 7 APs, 3 GOs or 8 STAs. This is based on empirical tests and it is still possible some combinations may crash the firmware. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02ath10k: make sure to use passive scan when n_ssids is 0Michal Kazior1-0/+2
Normally user specifies broadcast ssid for scanning. If the user wants to do a passive scan it does not pass any ssids. The patch makes sure we ath10k tells firmware to not send anything at all in case it decides no ssids equals broadcast ssid. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02ath10k: prevent using invalid ringbuffer indexesMichal Kazior1-0/+5
If the device is removed and hotplug fails ioread32() will return 0xFFFFFFFF. In that case reading ringbuffer during device bringup led to out-of-bounds addressing of a ringbuffer array that in turn led to a paging failure. This could be reproduced by the following: * boot without acpi/prevent hotplug from working * insert and manually detect (pci rescan) the device * remove the device physically * load ath10k driver * kernel crashed Ringbuffer index reading is now protected by using an appropriate mask to prevent addressing an invalid array index. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02ath10k: implement get_survey()Michal Kazior4-1/+122
This implements a limited subset of what can be reported in the survey dump. This can be used for assessing approximate channel load, e.g. for automatic channel selection. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2013-08-02ath10k: implement tx checksum offloadingMichal Kazior2-0/+4
HW supports L3/L4 tx checksum offloading. This should reduce CPU load and improve performance on slow host machines. Signed-off-by: Michal Kazior <[email protected]> Signed-off-by: Kalle Valo <[email protected]>