Search Linux Wireless

Re: [PATCH 1/7] ath11k: get msi_data again after request_irq is called

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Baochen Qiang <bqiang@xxxxxxxxxxxxxx> wrote:

> 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@xxxxxxxxxxxxxx>
> Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>

7 patches applied to ath-next branch of ath.git, thanks.

87b4072d7ef8 ath11k: get msi_data again after request_irq is called
01279bcd01d9 ath11k: add CE and ext IRQ flag to indicate irq_handler
4ab4693f327a ath11k: use ATH11K_PCI_IRQ_DP_OFFSET for DP IRQ
c41a6700b276 ath11k: refactor multiple MSI vector implementation
ac6e73483f7b ath11k: add support one MSI vector
915a081ff307 ath11k: do not restore ASPM in case of single MSI vector
e94b07493da3 ath11k: Set IRQ affinity to CPU0 in case of one MSI vector

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20211026041636.5008-1-bqiang@xxxxxxxxxxxxxx/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux