Merge "qcacmn: Interrupt changes in MSI path"
This commit is contained in:

zatwierdzone przez
Gerrit - the friendly Code Review server

commit
cf66f84918
@@ -1075,8 +1075,7 @@ static int dp_srng_calculate_msi_group(struct dp_soc *soc,
|
||||
break;
|
||||
|
||||
case RXDMA_MONITOR_BUF:
|
||||
/* TODO: support low_thresh interrupt */
|
||||
return -QDF_STATUS_E_NOENT;
|
||||
grp_mask = &soc->wlan_cfg_ctx->int_host2rxdma_mon_ring_mask[0];
|
||||
break;
|
||||
|
||||
case TCL_DATA:
|
||||
@@ -1333,6 +1332,15 @@ dp_srng_configure_interrupt_thresholds(struct dp_soc *soc,
|
||||
ring_params->flags |= HAL_SRNG_LOW_THRES_INTR_ENABLE;
|
||||
ring_params->intr_batch_cntr_thres_entries = 0;
|
||||
}
|
||||
|
||||
/* In case of PCI chipsets, we dont have PPDU end interrupts,
|
||||
* so MONITOR STATUS ring is reaped by receiving MSI from srng.
|
||||
* Keep batch threshold as 8 so that interrupt is received for
|
||||
* every 4 packets in MONITOR_STATUS ring
|
||||
*/
|
||||
if ((ring_type == RXDMA_MONITOR_STATUS) &&
|
||||
(soc->intr_mode == DP_INTR_MSI))
|
||||
ring_params->intr_batch_cntr_thres_entries = 4;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2038,6 +2046,10 @@ static void dp_soc_interrupt_map_calculate_msi(struct dp_soc *soc,
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int rxdma2host_ring_mask = wlan_cfg_get_rxdma2host_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int host2rxdma_ring_mask = wlan_cfg_get_host2rxdma_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
int host2rxdma_mon_ring_mask = wlan_cfg_get_host2rxdma_mon_ring_mask(
|
||||
soc->wlan_cfg_ctx, intr_ctx_num);
|
||||
|
||||
unsigned int vector =
|
||||
(intr_ctx_num % msi_vector_count) + msi_vector_start;
|
||||
@@ -2046,7 +2058,8 @@ 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 | rxdma2host_ring_mask)
|
||||
rx_wbm_rel_ring_mask | reo_status_ring_mask | rxdma2host_ring_mask |
|
||||
host2rxdma_ring_mask | host2rxdma_mon_ring_mask)
|
||||
irq_id_map[num_irq++] =
|
||||
pld_get_msi_irq(soc->osdev->dev, vector);
|
||||
|
||||
@@ -11307,7 +11320,7 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
||||
soc->hw_nac_monitor_support = 1;
|
||||
soc->per_tid_basize_max_tid = 8;
|
||||
soc->num_hw_dscp_tid_map = HAL_MAX_HW_DSCP_TID_V2_MAPS;
|
||||
soc->lmac_polled_mode = 1;
|
||||
soc->lmac_polled_mode = 0;
|
||||
soc->wbm_release_desc_rx_sg_support = 1;
|
||||
if (cfg_get(soc->ctrl_psoc, CFG_DP_FULL_MON_MODE))
|
||||
soc->full_mon_mode = true;
|
||||
|
Reference in New Issue
Block a user