• Miaoqing Pan's avatar
    ath9k: fix data bus error on ar9300 and ar9580 · 466b0f02
    Miaoqing Pan authored
    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: default avatarMiaoqing Pan <miaoqing@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    466b0f02
reg.h 76.1 KB