qcacmn: Adding back lost LMAC interrupt changes
Redo some of the LMAC interrupt mapping changes made in Iec8e9f4a02cd618a3b244cfd6fc7ead1e7d993c3, which were lost due to a recent change made to support MSI. Change-Id: Ic566e7285feaeb9058defe01c5e704be3135ed2d CRs-Fixed: 2113818
This commit is contained in:

committed by
Nandini Suresh

parent
9e5b93c55c
commit
ea027c5bf2
@@ -335,6 +335,10 @@ static int dp_srng_calculate_msi_group(struct dp_soc *soc,
|
||||
/* dp_mon_process */
|
||||
grp_mask = &soc->wlan_cfg_ctx->int_rx_mon_ring_mask[0];
|
||||
break;
|
||||
case RXDMA_DST:
|
||||
/* dp_rxdma_err_process */
|
||||
grp_mask = &soc->wlan_cfg_ctx->int_rxdma2host_ring_mask[0];
|
||||
break;
|
||||
|
||||
case RXDMA_MONITOR_BUF:
|
||||
case RXDMA_BUF:
|
||||
@@ -353,7 +357,6 @@ static int dp_srng_calculate_msi_group(struct dp_soc *soc,
|
||||
|
||||
case TCL_STATUS:
|
||||
case REO_REINJECT:
|
||||
case RXDMA_DST:
|
||||
/* misc unused rings */
|
||||
return -QDF_STATUS_E_NOENT;
|
||||
break;
|
||||
@@ -1013,6 +1016,8 @@ static void dp_soc_interrupt_map_calculate_integrated(struct dp_soc *soc,
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int reo_status_ring_mask = wlan_cfg_get_reo_status_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int rxdma2host_ring_mask = wlan_cfg_get_rxdma2host_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
|
||||
for (j = 0; j < HIF_MAX_GRP_IRQ; j++) {
|
||||
|
||||
@@ -1026,10 +1031,18 @@ static void dp_soc_interrupt_map_calculate_integrated(struct dp_soc *soc,
|
||||
(reo2host_destination_ring1 - j);
|
||||
}
|
||||
|
||||
if (rxdma2host_ring_mask & (1 << j)) {
|
||||
irq_id_map[num_irq++] =
|
||||
rxdma2host_destination_ring_mac1 -
|
||||
wlan_cfg_get_hw_mac_idx(soc->wlan_cfg_ctx, j);
|
||||
}
|
||||
|
||||
if (rx_mon_mask & (1 << j)) {
|
||||
irq_id_map[num_irq++] =
|
||||
(ppdu_end_interrupts_mac1 - j);
|
||||
ppdu_end_interrupts_mac1 -
|
||||
wlan_cfg_get_hw_mac_idx(soc->wlan_cfg_ctx, j);
|
||||
}
|
||||
|
||||
if (rx_wbm_rel_ring_mask & (1 << j))
|
||||
irq_id_map[num_irq++] = wbm2host_rx_release;
|
||||
|
||||
@@ -1059,6 +1072,8 @@ static void dp_soc_interrupt_map_calculate_msi(struct dp_soc *soc,
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int reo_status_ring_mask = wlan_cfg_get_reo_status_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int rxdma2host_ring_mask = wlan_cfg_get_rxdma2host_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
|
||||
unsigned int vector =
|
||||
(intr_ctx_num % msi_vector_count) + msi_vector_start;
|
||||
@@ -1067,7 +1082,7 @@ static void dp_soc_interrupt_map_calculate_msi(struct dp_soc *soc,
|
||||
soc->intr_mode = DP_INTR_MSI;
|
||||
|
||||
if (tx_mask | rx_mask | rx_mon_mask | rx_err_ring_mask |
|
||||
rx_wbm_rel_ring_mask | reo_status_ring_mask)
|
||||
rx_wbm_rel_ring_mask | reo_status_ring_mask | rxdma2host_ring_mask)
|
||||
irq_id_map[num_irq++] =
|
||||
pld_get_msi_irq(soc->osdev->dev, vector);
|
||||
|
||||
@@ -1192,6 +1207,7 @@ static void dp_soc_interrupt_detach(void *txrx_soc)
|
||||
soc->intr_ctx[i].rx_err_ring_mask = 0;
|
||||
soc->intr_ctx[i].rx_wbm_rel_ring_mask = 0;
|
||||
soc->intr_ctx[i].reo_status_ring_mask = 0;
|
||||
soc->intr_ctx[i].rxdma2host_ring_mask = 0;
|
||||
|
||||
qdf_lro_deinit(soc->intr_ctx[i].lro_ctx);
|
||||
}
|
||||
|
Reference in New Issue
Block a user