ath11k: ce: get msi_addr and msi_data before srng setup
authorCarl Huang <cjhuang@codeaurora.org>
Mon, 17 Aug 2020 10:31:50 +0000 (13:31 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 18 Aug 2020 09:44:33 +0000 (12:44 +0300)
Move function to get msi_addr and msi_data before srng setup,
otherwise srng is setup with no MSI configuration.

Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.1.0.1-01238-QCAHKSWPL_SILICONZ-2

Signed-off-by: Carl Huang <cjhuang@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1597576599-8857-8-git-send-email-kvalo@codeaurora.org
drivers/net/wireless/ath/ath11k/ce.c

index 41c1a6e..b2da1f9 100644 (file)
@@ -467,6 +467,9 @@ static int ath11k_ce_init_ring(struct ath11k_base *ab,
        params.ring_base_vaddr = ce_ring->base_addr_owner_space;
        params.num_entries = ce_ring->nentries;
 
+       if (!(CE_ATTR_DIS_INTR & ab->hw_params.host_ce_config[ce_id].flags))
+               ath11k_ce_srng_msi_ring_params_setup(ab, ce_id, &params);
+
        switch (type) {
        case HAL_CE_SRC:
                if (!(CE_ATTR_DIS_INTR & ab->hw_params.host_ce_config[ce_id].flags))
@@ -500,9 +503,6 @@ static int ath11k_ce_init_ring(struct ath11k_base *ab,
                return ret;
        }
 
-       if (!(CE_ATTR_DIS_INTR & ab->hw_params.host_ce_config[ce_id].flags))
-               ath11k_ce_srng_msi_ring_params_setup(ab, ce_id, &params);
-
        ce_ring->hal_ring_id = ret;
 
        return 0;