mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
wifi: ath12k: do not restore ASPM in case of single MSI vector
Current code enables ASPM by default, it allows MHI to enter M2 state. In case of one MSI vector, system hang is observed if ath12k does MHI register reading in this state. The workaround here is to prevent MHI from entering M2 state, this can be done by disabling ASPM if only one MSI vector is used. When using 32 vectors ASPM is enabled as before. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 Signed-off-by: Kang Yang <quic_kangyang@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20231121021304.12966-7-quic_kangyang@quicinc.com
This commit is contained in:
parent
8398654398
commit
08d52ba296
|
|
@ -1094,7 +1094,10 @@ int ath12k_pci_start(struct ath12k_base *ab)
|
|||
|
||||
set_bit(ATH12K_PCI_FLAG_INIT_DONE, &ab_pci->flags);
|
||||
|
||||
ath12k_pci_aspm_restore(ab_pci);
|
||||
if (test_bit(ATH12K_PCI_FLAG_MULTI_MSI_VECTORS, &ab_pci->flags))
|
||||
ath12k_pci_aspm_restore(ab_pci);
|
||||
else
|
||||
ath12k_info(ab, "leaving PCI ASPM disabled to avoid MHI M2 problems\n");
|
||||
|
||||
ath12k_pci_ce_irqs_enable(ab);
|
||||
ath12k_ce_rx_post_buf(ab);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user