• Miaoqing Pan's avatar
    ath10k: fix fw crash by moving chip reset after napi disabled · 08d80e4c
    Miaoqing Pan authored
    On SMP platform, when continuously running wifi up/down, the napi
    poll can be scheduled during chip reset, which will call
    ath10k_pci_has_fw_crashed() to check the fw status. But in the reset
    period, the value from FW_INDICATOR_ADDRESS register will return
    0xdeadbeef, which also be treated as fw crash. Fix the issue by
    moving chip reset after napi disabled.
    
    ath10k_pci 0000:01:00.0: firmware crashed! (guid 73b30611-5b1e-4bdd-90b4-64c81eb947b6)
    ath10k_pci 0000:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
    ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1
    ath10k_pci 0000:01:00.0: failed to get memcpy hi address for firmware address 4: -16
    ath10k_pci 0000:01:00.0: failed to read firmware dump area: -16
    ath10k_pci 0000:01:00.0: Copy Engine register dump:
    ath10k_pci 0000:01:00.0: [00]: 0x0004a000   0   0   0   0
    ath10k_pci 0000:01:00.0: [01]: 0x0004a400   0   0   0   0
    ath10k_pci 0000:01:00.0: [02]: 0x0004a800   0   0   0   0
    ath10k_pci 0000:01:00.0: [03]: 0x0004ac00   0   0   0   0
    ath10k_pci 0000:01:00.0: [04]: 0x0004b000   0   0   0   0
    ath10k_pci 0000:01:00.0: [05]: 0x0004b400   0   0   0   0
    ath10k_pci 0000:01:00.0: [06]: 0x0004b800   0   0   0   0
    ath10k_pci 0000:01:00.0: [07]: 0x0004bc00   1   0   1   0
    ath10k_pci 0000:01:00.0: [08]: 0x0004c000   0   0   0   0
    ath10k_pci 0000:01:00.0: [09]: 0x0004c400   0   0   0   0
    ath10k_pci 0000:01:00.0: [10]: 0x0004c800   0   0   0   0
    ath10k_pci 0000:01:00.0: [11]: 0x0004cc00   0   0   0   0
    
    Tested HW: QCA9984,QCA9887,WCN3990
    Signed-off-by: default avatarMiaoqing Pan <miaoqing@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    08d80e4c
pci.c 94.2 KB