linux/drivers/net/wireless/ath/ath9k
Benjamin Berg cfda2d8e23 ath9k: Fix beacon configuration for addition/removal of interfaces
This patch fixes some issues with interface reconfiguration. It could
for example happen that an AP interface in beacon slot 0 was removed
leaving an IBSS station in one of the other slots. When this happens
the driver never sends out the beacon as it only tries to send a beacon
from slot 0.

Appart from that the tracking of required changes to the beacon config is
relatively complicated and prone to errors.

The approach taken here is to solve reconfiguration issues is to
reconfigure the beacons when any interface changes. This means that
the complexity of deciding whether an interface change may modify the
beacon configuration is gone. It also means that the beacon config will
be reliably updated when an interface is removed.

The issue that a single non-AP interface might not be in beacon
slot 0 and wouldn't be send out is solved by moving it into the
first slot. The TSF value in hardware is adjusted accordingly so
that the timestamp of the beacons stay consistent.

Signed-off-by: Benjamin Berg <benjamin.berg@open-mesh.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-07-08 17:03:41 +03:00
..
ahb.c
ani.c ath9k: clean up ANI per-channel pointer checking 2016-01-26 16:47:38 +02:00
ani.h
antenna.c
ar953x_initvals.h ath9k: Update QCA953x initvals 2016-03-11 13:59:56 +02:00
ar955x_1p0_initvals.h ath9k: Update AR955x initvals 2016-03-11 13:59:58 +02:00
ar956x_initvals.h ath9k: Update QCA956x initvals 2016-03-11 13:59:59 +02:00
ar5008_initvals.h
ar5008_phy.c ath9k: ar5008_hw_cmn_spur_mitigate: add missing mask_m & mask_p initialisation 2016-04-15 21:03:54 +03:00
ar9001_initvals.h
ar9002_calib.c ath9k: ar9271_hw_pa_cal: use REG_READ_ARRAY 2015-03-30 11:31:30 +03:00
ar9002_hw.c
ar9002_initvals.h
ar9002_mac.c
ar9002_phy.c ath9k: ar5008_hw_cmn_spur_mitigate: add missing mask_m & mask_p initialisation 2016-04-15 21:03:54 +03:00
ar9002_phy.h ath9k: Fix NF CCA limits for AR9287 and AR9227 2015-10-14 14:05:00 +03:00
ar9003_2p2_initvals.h ath9k: Update AR9003 2.2 initvals 2016-03-11 13:59:56 +02:00
ar9003_aic.c ath9k: reduce stack usage in ar9003_aic_cal_post_process 2016-03-03 19:27:17 +02:00
ar9003_aic.h ath9k: reduce stack usage in ar9003_aic_cal_post_process 2016-03-03 19:27:17 +02:00
ar9003_buffalo_initvals.h
ar9003_calib.c ath9k: set correct peak detect threshold 2016-03-11 14:00:00 +02:00
ar9003_eeprom.c ath9k: Fix programming of minCCA power threshold 2016-06-30 14:13:31 +03:00
ar9003_eeprom.h ath9k: reuse ar9003_hw_tx_power_regwrite for tx99 setup 2016-05-09 20:46:31 +03:00
ar9003_hw.c ath9k_hw: add low power tx gain table for AR953x 2016-01-26 16:47:38 +02:00
ar9003_mac.c
ar9003_mac.h
ar9003_mci.c ath9k: make GPIO API to support both of WMAC and SOC 2016-03-11 14:00:02 +02:00
ar9003_mci.h ath9k: Fix GPM initialization 2015-03-03 14:55:24 +02:00
ar9003_paprd.c
ar9003_phy.c ath9k: Fix symbol overlap window for half/quarter channels 2016-05-09 21:12:01 +03:00
ar9003_phy.h ath9k: clear bb filter calibration power threshold 2016-03-03 19:27:17 +02:00
ar9003_rtt.c ath9k: Fix RTT chainmask usage 2015-03-13 15:19:36 +02:00
ar9003_rtt.h
ar9003_wow.c ath9k: Restart TSF2 timers on wakeup 2015-02-26 14:58:46 +02:00
ar9330_1p1_initvals.h ath9k: Update AR933x initvals 2016-03-11 13:59:57 +02:00
ar9330_1p2_initvals.h ath9k: Update AR933x initvals 2016-03-11 13:59:57 +02:00
ar9340_initvals.h ath9k: Update AR9340 initvals 2016-03-11 13:59:57 +02:00
ar9462_2p0_initvals.h ath9k: Update AR9462 initvals 2016-03-11 13:59:57 +02:00
ar9462_2p1_initvals.h ath9k: Update AR9462 initvals 2016-03-11 13:59:57 +02:00
ar9485_initvals.h ath9k: Update AR9485 initvals 2016-03-11 13:59:58 +02:00
ar9565_1p0_initvals.h ath9k: Update AR9565 initvals 2016-03-11 13:59:58 +02:00
ar9565_1p1_initvals.h
ar9580_1p0_initvals.h ath9k: Update AR9580 initvals 2016-03-11 13:59:59 +02:00
ath9k.h ath9k: Fix beacon configuration for addition/removal of interfaces 2016-07-08 17:03:41 +03:00
beacon.c ath9k: Fix beacon configuration for addition/removal of interfaces 2016-07-08 17:03:41 +03:00
btcoex.c ath9k: fix BTCoex configuration for SOC chips 2016-03-11 14:00:04 +02:00
btcoex.h ath9k: fix BTCoex configuration for SOC chips 2016-03-11 14:00:04 +02:00
calib.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
calib.h
channel.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
common-beacon.c ath9k: remove ath9k_mod_tsf64_tu 2015-12-08 16:51:05 +02:00
common-beacon.h
common-debug.c ath9k: fix phyerror codes 2015-10-28 20:57:13 +02:00
common-debug.h
common-init.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
common-init.h
common-spectral.c ath9k: Mix the received FFT bins to the random pool 2015-05-09 16:46:18 +03:00
common-spectral.h ath9k: Move processing of FFT frames to different functions 2015-05-09 16:46:11 +03:00
common.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
common.h ath9k: Fix beacon configuration for addition/removal of interfaces 2016-07-08 17:03:41 +03:00
debug_sta.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
debug.c ath9k: fix reg dump data bus error 2016-03-11 14:00:04 +02:00
debug.h ath9k: make DMA stop related messages debug-only 2015-07-21 16:56:41 +03:00
dfs_debug.c
dfs_debug.h
dfs.c ath9k: DFS - add pulse chirp detection for FCC 2015-07-11 19:51:53 +03:00
dfs.h
dynack.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
dynack.h
eeprom_4k.c ath9k: Simplify and fix eeprom endianness swapping 2015-12-08 16:50:18 +02:00
eeprom_9287.c ath9k: Simplify and fix eeprom endianness swapping 2015-12-08 16:50:18 +02:00
eeprom_def.c ath9k: Simplify and fix eeprom endianness swapping 2015-12-08 16:50:18 +02:00
eeprom.c ath9k: fix buffer overrun for ar9287 2016-03-14 13:09:49 -04:00
eeprom.h ath9k: Simplify and fix eeprom endianness swapping 2015-12-08 16:50:18 +02:00
gpio.c ath9k: cleanup led_pin initial 2016-03-11 14:00:02 +02:00
hif_usb.c ath9k_htc: Delete unnecessary variable initialisation 2016-04-07 19:37:40 +03:00
hif_usb.h ath9k_htc: introduce support for different fw versions 2015-09-18 10:40:14 +03:00
htc_drv_beacon.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
htc_drv_debug.c wireless: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:38 -08:00
htc_drv_gpio.c ath9k: free GPIO resource for SOC GPIOs 2016-03-11 14:00:02 +02:00
htc_drv_init.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
htc_drv_main.c Merge ath-next from ath.git 2016-04-26 14:13:59 +03:00
htc_drv_txrx.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
htc_hst.c ath9k_htc: check for underflow in ath9k_htc_rx_msg() 2015-11-26 14:05:17 +02:00
htc_hst.h
htc.h ath9k_htc: add support of channel switch 2015-06-15 12:44:34 +03:00
hw-ops.h ath9k: Register private AIC ops 2015-03-20 08:27:17 +02:00
hw.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
hw.h ath9k: make GPIO API to support both of WMAC and SOC 2016-03-11 14:00:02 +02:00
init.c ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
Kconfig ath9k: Move TX99 config option under ath9k debugging 2016-05-09 20:46:44 +03:00
link.c ath9k: match wait_for_completion_timeout return type 2015-08-13 15:27:12 +03:00
mac.c
mac.h ath9k: Remove some #defined constants to decrease verbosity 2016-07-08 17:03:37 +03:00
main.c ath9k: Fix beacon configuration for addition/removal of interfaces 2016-07-08 17:03:41 +03:00
Makefile ath9k: feeding entropy in kernel from ADC capture 2015-12-11 14:08:58 +02:00
mci.c ath9k: Fix GPM initialization 2015-03-03 14:55:24 +02:00
mci.h
pci.c ath9k: return false when reading wrong eeprom offset 2016-06-30 14:10:12 +03:00
phy.h
recv.c ath9k: fix AR_RX_FILTER for ar9462/ar9565 when rx stopped 2015-12-11 14:08:57 +02:00
reg_aic.h ath9k: Add register definitions for AIC 2015-03-20 08:27:19 +02:00
reg_mci.h ath9k: Mute BT properly 2015-03-03 14:55:27 +02:00
reg_wow.h ath9k: Clear additional WoW events 2015-02-26 14:58:43 +02:00
reg.h ath9k: add bits definition of BTCoex MODE2/3 for SOC chips 2016-03-11 14:00:03 +02:00
rng.c ath9k: fix rng high cpu load 2016-04-04 17:07:28 +03:00
tx99.c ath9k: Proper TX99 interrupt ref count 2016-05-28 11:24:25 +03:00
wmi.c ath9k_htc: wmi: match wait_for_completion_timeout return type 2015-08-13 15:26:19 +03:00
wmi.h ath9k_htc: check seq number instead of cmd id for timeout 2015-04-07 20:07:44 +03:00
wow.c
xmit.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00