|
@@ -335,6 +335,10 @@ static int dp_srng_calculate_msi_group(struct dp_soc *soc,
|
|
/* dp_mon_process */
|
|
/* dp_mon_process */
|
|
grp_mask = &soc->wlan_cfg_ctx->int_rx_mon_ring_mask[0];
|
|
grp_mask = &soc->wlan_cfg_ctx->int_rx_mon_ring_mask[0];
|
|
break;
|
|
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_MONITOR_BUF:
|
|
case RXDMA_BUF:
|
|
case RXDMA_BUF:
|
|
@@ -353,7 +357,6 @@ static int dp_srng_calculate_msi_group(struct dp_soc *soc,
|
|
|
|
|
|
case TCL_STATUS:
|
|
case TCL_STATUS:
|
|
case REO_REINJECT:
|
|
case REO_REINJECT:
|
|
- case RXDMA_DST:
|
|
|
|
/* misc unused rings */
|
|
/* misc unused rings */
|
|
return -QDF_STATUS_E_NOENT;
|
|
return -QDF_STATUS_E_NOENT;
|
|
break;
|
|
break;
|
|
@@ -1013,6 +1016,8 @@ static void dp_soc_interrupt_map_calculate_integrated(struct dp_soc *soc,
|
|
soc->wlan_cfg_ctx, intr_ctx_num);
|
|
soc->wlan_cfg_ctx, intr_ctx_num);
|
|
int reo_status_ring_mask = wlan_cfg_get_reo_status_ring_mask(
|
|
int reo_status_ring_mask = wlan_cfg_get_reo_status_ring_mask(
|
|
soc->wlan_cfg_ctx, intr_ctx_num);
|
|
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++) {
|
|
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);
|
|
(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)) {
|
|
if (rx_mon_mask & (1 << j)) {
|
|
irq_id_map[num_irq++] =
|
|
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))
|
|
if (rx_wbm_rel_ring_mask & (1 << j))
|
|
irq_id_map[num_irq++] = wbm2host_rx_release;
|
|
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);
|
|
soc->wlan_cfg_ctx, intr_ctx_num);
|
|
int reo_status_ring_mask = wlan_cfg_get_reo_status_ring_mask(
|
|
int reo_status_ring_mask = wlan_cfg_get_reo_status_ring_mask(
|
|
soc->wlan_cfg_ctx, intr_ctx_num);
|
|
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 =
|
|
unsigned int vector =
|
|
(intr_ctx_num % msi_vector_count) + msi_vector_start;
|
|
(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;
|
|
soc->intr_mode = DP_INTR_MSI;
|
|
|
|
|
|
if (tx_mask | rx_mask | rx_mon_mask | rx_err_ring_mask |
|
|
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++] =
|
|
irq_id_map[num_irq++] =
|
|
pld_get_msi_irq(soc->osdev->dev, vector);
|
|
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_err_ring_mask = 0;
|
|
soc->intr_ctx[i].rx_wbm_rel_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].reo_status_ring_mask = 0;
|
|
|
|
+ soc->intr_ctx[i].rxdma2host_ring_mask = 0;
|
|
|
|
|
|
qdf_lro_deinit(soc->intr_ctx[i].lro_ctx);
|
|
qdf_lro_deinit(soc->intr_ctx[i].lro_ctx);
|
|
}
|
|
}
|