qcacmn: Add configurable option for MSI interrupts

Provide multiple combinations to configure the msi interrupts
of DP and CE based on the number of MSIs available in the platform.
Number of MSIs used for CE and DP can be changed by modifying the
MSI assignment table in platform driver. Best possible mask for that
MSI is automatically chosen based on predetermined settings.

Change-Id: I02b44fb033631d69d97f2d8d2d3f698541d37aad
这个提交包含在:
Nandha Kishore Easwaran
2021-03-03 12:38:42 +05:30
提交者 Madan Koyyalamudi
父节点 2359af8cea
当前提交 718d6aeece
修改 7 个文件,包含 987 行新增292 行删除

查看文件

@@ -225,17 +225,17 @@ struct wlan_cfg_dp_soc_ctxt {
int tx_ring_size;
int tx_comp_ring_size;
int tx_comp_ring_size_nss;
int int_tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_host2rxdma_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_ce_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_rx_wbm_rel_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int int_host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_tx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_rx_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_rx_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_host2rxdma_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_rxdma2host_mon_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_ce_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_rx_err_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_rx_wbm_rel_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_reo_status_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_rxdma2host_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
uint8_t int_host2rxdma_ring_mask[WLAN_CFG_INT_NUM_CONTEXTS];
int hw_macid[MAX_PDEV_CNT];
int hw_macid_pdev_id_map[MAX_NUM_LMAC_HW];
int base_hw_macid;
@@ -1412,13 +1412,15 @@ wlan_cfg_is_tx_per_pkt_vdev_id_check_enabled(struct wlan_cfg_dp_soc_ctxt *cfg);
* wlan_cfg_fill_interrupt_mask() - set interrupt mask
*
* @wlan_cfg_dp_soc_ctxt: soc configuration context
* @interrupt_mode: interrupt_mode: MSI/LEGACY
* @num_dp_msi: Number of DP interrupts available (0 for integrated)
* @interrupt_mode: Type of interrupt
* @is_monitor_mode: is monitor mode enabled
*
* Return: void
*/
void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
int interrupt_mode, bool is_monitor_mode);
int num_dp_msi, int interrupt_mode,
bool is_monitor_mode);
/**
* wlan_cfg_is_rx_fisa_enabled() - Get Rx FISA enabled flag