Searched hist:"87 b4072d7ef818e368b0f4162a1af2fb4727f51c" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/drivers/net/wireless/ath/ath11k/ |
H A D | pci.c | diff 87b4072d7ef818e368b0f4162a1af2fb4727f51c Fri Nov 19 07:36:26 CST 2021 Carl Huang <cjhuang@codeaurora.org> ath11k: get msi_data again after request_irq is called
The reservation mode of interrupts in kernel assigns a dummy vector when the interrupt is allocated and assigns a real vector when the request_irq is called. The reservation mode helps to ease vector pressure when devices with a large amount of queues/interrupts are initialized, but only a minimal subset of those queues/interrupts is actually used.
So on reservation mode, the msi_data may change after request_irq is called, so ath11k reads msi_data again after request_irq is called, and then the correct msi_data is programmed into QCA6390 hardware components. Without this change, spurious interrupt occurs in case of one MSI vector. When VT-d in BIOS is enabled and ath11k can get 32 MSI vectors, ath11k always get the same msi_data before and after request_irq, that's why this change is only required when one MSI vector is to be supported.
Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1
Signed-off-by: Carl Huang <cjhuang@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20211026041636.5008-1-bqiang@codeaurora.org
|