Skip to content

Commit 08d52ba

Browse files
Kang Yangkvalo
authored andcommitted
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 <[email protected]> Acked-by: Jeff Johnson <[email protected]> Signed-off-by: Kalle Valo <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 8398654 commit 08d52ba

File tree

1 file changed

+4
-1
lines changed
  • drivers/net/wireless/ath/ath12k

1 file changed

+4
-1
lines changed

drivers/net/wireless/ath/ath12k/pci.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1094,7 +1094,10 @@ int ath12k_pci_start(struct ath12k_base *ab)
10941094

10951095
set_bit(ATH12K_PCI_FLAG_INIT_DONE, &ab_pci->flags);
10961096

1097-
ath12k_pci_aspm_restore(ab_pci);
1097+
if (test_bit(ATH12K_PCI_FLAG_MULTI_MSI_VECTORS, &ab_pci->flags))
1098+
ath12k_pci_aspm_restore(ab_pci);
1099+
else
1100+
ath12k_info(ab, "leaving PCI ASPM disabled to avoid MHI M2 problems\n");
10981101

10991102
ath12k_pci_ce_irqs_enable(ab);
11001103
ath12k_ce_rx_post_buf(ab);

0 commit comments

Comments
 (0)