linux/drivers/net/wireless/ath/ath9k
Miaoqing Pan 466b0f0208 ath9k: fix data bus error on ar9300 and ar9580
One crash issue be found on ar9300: RTC_RC reg read leads crash, leading
the data bus error, due to RTC_RC reg write not happen properly.

Warm Reset trigger in continuous beacon stuck for one of the customer for
other chip, noticed the MAC was stuck in RTC reset. After analysis noticed
DMA did not complete when RTC was put in reset.

So, before resetting the MAC need to make sure there are no pending DMA
transactions because this reset does not reset all parts of the chip.

The 12th and 11th bit of MAC _DMA_CFG register used to do that.
	12 cfg_halt_ack 0x0
		0 DMA has not yet halted
		1 DMA has halted
	11 cfg_halt_req 0x0
		0 DMA logic operates normally
		1 Request DMA logic to stop so software can reset the MAC

The Bit [12] of this register indicates when the halt has taken effect or
not. the DMA halt IS NOT recoverable; once software sets bit [11] to
request a DMA halt, software must wait for bit [12] to be set and reset
the MAC.

So, the same thing we implemented for ar9580 chip.

Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-01-26 16:47:39 +02:00
..
Kconfig ath9k: feeding entropy in kernel from ADC capture 2015-12-11 14:08:58 +02:00
Makefile ath9k: feeding entropy in kernel from ADC capture 2015-12-11 14:08:58 +02:00
ahb.c ath9k: Add HW IDs for QCA956x 2015-01-15 14:24:57 +02:00
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_hw: add low power tx gain table for AR953x 2016-01-26 16:47:38 +02:00
ar955x_1p0_initvals.h ath9k: Update AR955x initvals 2015-01-29 10:33:21 +02:00
ar956x_initvals.h ath9k: Add initvals for QCA956x 2015-01-15 14:24:59 +02:00
ar5008_initvals.h
ar5008_phy.c ath9k: split ar5008_hw_spur_mitigate and reuse common code in ar9002_hw_spur_mitigate. 2015-05-26 14:02:45 +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 ath9k: add TPC capability to TX descriptor path 2014-11-25 14:09:56 -05:00
ar9002_phy.c ath9k: split ar5008_hw_spur_mitigate and reuse common code in ar9002_hw_spur_mitigate. 2015-05-26 14:02:45 +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_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ar9003_aic.c ath9k: Handle MCI_STATE_AIC_CAL 2015-03-20 08:28:11 +02:00
ar9003_aic.h ath9k: Handle MCI_STATE_AIC_CAL 2015-03-20 08:28:11 +02:00
ar9003_buffalo_initvals.h
ar9003_calib.c ath9k: enable hw manual peak calibration for QCA9561 2015-09-29 10:34:09 +03:00
ar9003_eeprom.c ath9k: fix inconsistent use of tab and space in indentation 2016-01-26 16:47:39 +02:00
ar9003_eeprom.h
ar9003_hw.c ath9k_hw: add low power tx gain table for AR953x 2016-01-26 16:47:38 +02:00
ar9003_mac.c ath9k: add TPC capability to TX descriptor path 2014-11-25 14:09:56 -05:00
ar9003_mac.h
ar9003_mci.c ath9k: Start AIC calibration during MCI reset 2015-03-20 08:28:14 +02:00
ar9003_mci.h ath9k: Fix GPM initialization 2015-03-03 14:55:24 +02:00
ar9003_paprd.c
ar9003_phy.c ath9k: do not reset while BB panic(0x4000409) on ar9561 2016-01-26 16:47:38 +02:00
ar9003_phy.h ath9k: Fix register definitions for QCA956x 2015-07-21 18:03:02 +03:00
ar9003_rtt.c ath9k: Fix RTT chainmask usage 2015-03-13 15:19:36 +02:00
ar9003_rtt.h ath9k_hw: make support for PC-OEM cards optional 2014-10-27 14:16:18 -04:00
ar9003_wow.c ath9k: Restart TSF2 timers on wakeup 2015-02-26 14:58:46 +02:00
ar9330_1p1_initvals.h ath9k_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ar9330_1p2_initvals.h ath9k_hw: update ar9300 initvals 2014-04-30 12:13:15 -04:00
ar9340_initvals.h ath9k_hw: fix worse EVM for 11b rates 2014-04-30 12:13:16 -04:00
ar9462_2p0_initvals.h
ar9462_2p1_initvals.h
ar9485_initvals.h
ar9565_1p0_initvals.h
ar9565_1p1_initvals.h
ar9580_1p0_initvals.h ath9k: Update AR9580 initvals 2014-10-27 14:16:17 -04:00
ath9k.h ath9k: feeding entropy in kernel from ADC capture 2015-12-11 14:08:58 +02:00
beacon.c ath9k: MCC, add NOA also in case of an AP 2015-12-08 16:50:58 +02:00
btcoex.c ath9k: Fix wlan-active gpio for the AR9003 family 2015-03-03 15:46:56 +02:00
btcoex.h ath9k: Handle MCI_STATE_AIC_CAL_SINGLE 2015-03-20 08:27:20 +02:00
calib.c ath9k: ath9k_hw_loadnf: use REG_RMW 2015-03-30 11:31:32 +03:00
calib.h ath9k: restart hardware after noise floor calibration failure 2014-10-27 14:16:18 -04:00
channel.c ath9k: Drop useless const on chanctx_event_delta() return type 2016-01-26 16:47:38 +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 ath9k: move phy_err to ath9k_cmn_debug_phy_err 2014-05-13 15:56:42 -04:00
common-init.c
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 Merge commit '4e6ce4dc7ce71d0886908d55129d5d6482a27ff9' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-11-19 15:38:48 -05:00
common.h ath9k: fix tracking of enabled AP beacons 2015-03-16 08:34:36 +02:00
debug.c ath9k: Add support for OCB mode 2015-09-29 10:39:22 +03:00
debug.h ath9k: make DMA stop related messages debug-only 2015-07-21 16:56:41 +03:00
debug_sta.c ath9k: fix build with CONFIG_ATH9K_STATION_STATISTICS=y 2015-08-07 11:21:06 +03:00
dfs.c ath9k: DFS - add pulse chirp detection for FCC 2015-07-11 19:51:53 +03:00
dfs.h
dfs_debug.c
dfs_debug.h ath9k: simplify DFS pulse interval debug printing 2014-05-29 13:08:10 -04:00
dynack.c ath9k: fix getting tx duration for dynack 2014-09-30 13:17:48 -04:00
dynack.h ath9k: add dynamic ACK timeout estimation 2014-09-16 16:18:30 -04:00
eeprom.c ath9k: fix ath9k_hw_nvram_check_version() 2016-01-07 15:16:15 +02:00
eeprom.h ath9k: Simplify and fix eeprom endianness swapping 2015-12-08 16:50:18 +02:00
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
gpio.c ath9k: add extra GPIO led support 2015-04-07 20:15:01 +03:00
hif_usb.c ath9k_htc: add device ID for Toshiba WLM-20U2/GN-1080 2016-01-26 16:47:38 +02:00
hif_usb.h ath9k_htc: introduce support for different fw versions 2015-09-18 10:40:14 +03:00
htc.h ath9k_htc: add support of channel switch 2015-06-15 12:44:34 +03:00
htc_drv_beacon.c ath9k_htc: add support of channel switch 2015-06-15 12:44:34 +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 and ath9k_htc: rename variable "led_blink" 2015-01-27 20:06:27 +02:00
htc_drv_init.c ath9k: Add support for OCB mode 2015-09-29 10:39:22 +03:00
htc_drv_main.c ath9k_htc: fix handling return value of ath9k_hw_calibrate 2015-12-31 15:23:17 +02:00
htc_drv_txrx.c mac80211: remove support for IFF_PROMISC 2015-04-24 11:14:13 +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
hw-ops.h ath9k: Register private AIC ops 2015-03-20 08:27:17 +02:00
hw.c ath9k: fix data bus error on ar9300 and ar9580 2016-01-26 16:47:39 +02:00
hw.h driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
init.c ath9k: Enable support for cloned SKBS 2016-01-07 15:02:15 +02:00
link.c ath9k: match wait_for_completion_timeout return type 2015-08-13 15:27:12 +03:00
mac.c ath9k: Add QCA956x HW support 2015-01-15 14:25:03 +02:00
mac.h ath9k: fix phyerror codes 2015-10-28 20:57:13 +02:00
main.c ath9k: request NOA update when chanctx active 2016-01-26 16:47:38 +02:00
mci.c ath9k: Fix GPM initialization 2015-03-03 14:55:24 +02:00
mci.h
pci.c ath9k: Check WOW triggers properly 2015-02-03 15:31:04 +02: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.h ath9k: fix data bus error on ar9300 and ar9580 2016-01-26 16:47:39 +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
rng.c ath9k: feeding entropy in kernel from ADC capture 2015-12-11 14:08:58 +02:00
tx99.c ath9k: Unify reset API 2014-10-27 14:16:14 -04: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 ath9k: Register correct WOW details with mac80211 2015-02-06 08:39:21 +02:00
xmit.c ath9k: fix inconsistent indenting on return statement 2015-12-11 14:09:00 +02:00