qcacmn: Rx path changes for multichip MLO
Rx patch changes for multichip MLO 1. Create ini for rx ring mask for each chip 2. Configure hash based routing for each chip based on lmac_peer_id_msb 3. Peer setup changes to configure lmac_peer_id_msb to enable hash based routing 4. Rx Replenish changes to provide buffers back to owner SOC of reo ring Change-Id: Ibbe6e81f9e62d88d9bb289a082dd14b4362252c4
This commit is contained in:

committed by
Madan Koyyalamudi

vanhempi
bbe062b4b7
commit
c42af1f62f
@@ -87,6 +87,13 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Max number of chips that can participate in MLO */
|
||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||
#define WLAN_MAX_MLO_CHIPS 3
|
||||
#else
|
||||
#define WLAN_MAX_MLO_CHIPS 1
|
||||
#endif
|
||||
|
||||
struct wlan_cfg_dp_pdev_ctxt;
|
||||
|
||||
/**
|
||||
@@ -234,6 +241,9 @@ struct wlan_srng_cfg {
|
||||
* @tx_mon_buf_ring_size: Tx monitor buf ring size
|
||||
* @tx_rings_grp_bitmap: bitmap of group intr contexts which have
|
||||
* non-zero tx ring mask
|
||||
* @mlo_chip_rx_ring_map: map of chip_id to rx ring map
|
||||
* @mlo_chip_default_rx_ring_id: default rx_ring of chip when hash is not found
|
||||
* @lmac_peer_id_msb: value used for hash based routing
|
||||
*/
|
||||
struct wlan_cfg_dp_soc_ctxt {
|
||||
int num_int_ctxts;
|
||||
@@ -382,6 +392,11 @@ struct wlan_cfg_dp_soc_ctxt {
|
||||
uint32_t tx_mon_buf_ring_size;
|
||||
uint8_t rx_rel_wbm2sw_ring_id;
|
||||
uint32_t tx_rings_grp_bitmap;
|
||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||
uint8_t mlo_chip_rx_ring_map[WLAN_MAX_MLO_CHIPS];
|
||||
uint8_t mlo_chip_default_rx_ring_id[WLAN_MAX_MLO_CHIPS];
|
||||
uint8_t lmac_peer_id_msb[WLAN_MAX_MLO_CHIPS];
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1933,3 +1948,38 @@ void
|
||||
wlan_cfg_set_rx_rel_ring_id(struct wlan_cfg_dp_soc_ctxt *cfg,
|
||||
uint8_t wbm2sw_ring_id);
|
||||
#endif
|
||||
|
||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||
/**
|
||||
* wlan_cfg_mlo_rx_ring_map_get_by_chip_id() - get rx ring map
|
||||
* @cfg: soc configuration context
|
||||
* @chip_id: mlo_chip_id
|
||||
*
|
||||
* Return: rx_ring_map
|
||||
*/
|
||||
uint8_t
|
||||
wlan_cfg_mlo_rx_ring_map_get_by_chip_id(struct wlan_cfg_dp_soc_ctxt *cfg,
|
||||
uint8_t chip_id);
|
||||
|
||||
/**
|
||||
* wlan_cfg_mlo_default_rx_ring_get_by_chip_id() - get default RX ring
|
||||
* @cfg: soc configuration context
|
||||
* @chip_id: mlo_chip_id
|
||||
*
|
||||
* Return: default rx ring
|
||||
*/
|
||||
uint8_t
|
||||
wlan_cfg_mlo_default_rx_ring_get_by_chip_id(struct wlan_cfg_dp_soc_ctxt *cfg,
|
||||
uint8_t chip_id);
|
||||
|
||||
/**
|
||||
* wlan_cfg_mlo_lmac_peer_id_msb_get_by_chip_id() - get chip's lmac_peer_id_msb
|
||||
* @cfg: soc configuration context
|
||||
* @chip_id: mlo_chip_id
|
||||
*
|
||||
* Return: lmac_peer_id_msb
|
||||
*/
|
||||
uint8_t
|
||||
wlan_cfg_mlo_lmac_peer_id_msb_get_by_chip_id(struct wlan_cfg_dp_soc_ctxt *cfg,
|
||||
uint8_t chip_id);
|
||||
#endif
|
||||
|
Viittaa uudesa ongelmassa
Block a user