On 5/28/2024 7:15 PM, Baochen Qiang wrote: > Currently for ath12k PCI devices, firmware could be running in one of > several execution environments, e.g., PBL, SBL and mission mode etc. Among > which PBL is the only stage where PCIe link negotiation could happen. So > normally firmware runs in PBL in order to be enumerated during system reboot. > > However it might not work in kernel crash scenario: ath12k target is not > found after warm reboot from kernel crash. This is because when kernel crashes, > ath12k host does nothing to firmware. And during warm reboot, WLAN power > is sustained. So firmware is likely to keep running in mission mode throughout > the bootup process. As a result PCIe link is not established and thus target > not enumerated. > > So add a handler in panic notification list for ath12k. When kernel crashes, > this handler gets called and tries to reset target to PBL state. Then PCIe > link negotiation could happen and target gets enumerated. > > This change applies to all PCI devices including WCN7850 and QCN9274. > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Signed-off-by: Baochen Qiang <quic_bqiang@xxxxxxxxxxx> Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>