• Kang Yang's avatar
    wifi: ath12k: add support one MSI vector · 83986543
    Kang Yang authored
    On some platforms it's not possible to allocate 32 MSI vectors for
    various reasons, maybe kernel configuration, VT-d disabled, buggy BIOS
    etc. So ath12k was not able to use WCN7850 PCI devices on those
    platforms. Add support for one MSI vector to solve that.
    
    In case of one MSI vector, interrupt migration needs to be disabled.
    This is because when interrupt migration happens, the msi_data may
    change. However, msi_data is already programmed to rings during initial
    phase and ath12k has no way to know that msi_data is changed during run
    time and reprogram again.
    
    In case of one MSI vector, MHI subsystem should not use IRQF_NO_SUSPEND
    as WCN7850 doesn't set this flag too. Ath12k doesn't need to leave IRQ
    enabled in suspend state.
    
    Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
    Signed-off-by: default avatarKang Yang <quic_kangyang@quicinc.com>
    Acked-by: default avatarJeff Johnson <quic_jjohnson@quicinc.com>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20231121021304.12966-6-quic_kangyang@quicinc.com
    83986543
pci.c 37.5 KB