QCA6391: failed to get 32 MSI vectors, only 1 available

Devin Bayer dev at doubly.so
Mon Nov 2 13:16:49 EST 2020


Hello,

I am trying to get a QCA6391 card to work with the ath11k driver. It
recognizes the card since it has the same device ID as the QCA6390.
However it fails to initialize:

> [    4.241127] ath11k_pci 0000:03:00.0: WARNING: ath11k PCI support is experimental!
> [    4.258806] ath11k_pci 0000:03:00.0: BAR 0: assigned [mem 0xd0000000-0xd0ffffff 64bit]
> [    4.258838] ath11k_pci 0000:03:00.0: enabling device (0000 -> 0002)
> [    4.258987] ath11k_pci 0000:03:00.0: failed to get 32 MSI vectors, only 1 available
> [    4.258990] ath11k_pci 0000:03:00.0: failed to enable msi: -22

I've tried a few different kernel versions up to 5.10-rc2 and they all behave the same.

Does anyone know if there is anything I can do to get this to work?

Thanks,
Devin

Note: I applied a small patch to fix the debug output so it reports
the correct number of available vectors:

diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index d7eb6b7160bb..afaacce5a5b6 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -638,7 +638,7 @@ static int ath11k_pci_enable_msi(struct ath11k_pci *ab_pci)
 	int ret;

 	num_vectors = pci_alloc_irq_vectors(ab_pci->pdev,
-					    msi_config.total_vectors,
+					    1,
 					    msi_config.total_vectors,
 					    PCI_IRQ_MSI);
 	if (num_vectors != msi_config.total_vectors) {



More information about the ath11k mailing list