diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h
index 80f3258177..264131d0d8 100644
--- a/dp/inc/cdp_txrx_cmn_struct.h
+++ b/dp/inc/cdp_txrx_cmn_struct.h
@@ -418,12 +418,14 @@ enum cdp_peer_type {
* @is_first_link: set true for first MLO link peer
* @is_primary_link: set true for MLO primary link peer
* @primary_umac_id: primary umac_id
+ * @num_links: number of links in MLO
*/
struct cdp_peer_setup_info {
uint8_t *mld_peer_mac;
uint8_t is_first_link:1,
is_primary_link:1;
uint8_t primary_umac_id;
+ uint8_t num_links;
};
/**
diff --git a/dp/wifi3.0/be/dp_be.c b/dp/wifi3.0/be/dp_be.c
index dc6432f29e..b9bde84f75 100644
--- a/dp/wifi3.0/be/dp_be.c
+++ b/dp/wifi3.0/be/dp_be.c
@@ -1866,6 +1866,89 @@ dp_initialize_arch_ops_be_mlo(struct dp_arch_ops *arch_ops)
}
#endif /* WLAN_FEATURE_11BE_MLO */
+#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
+#define DP_LMAC_PEER_ID_MSB_LEGACY 2
+#define DP_LMAC_PEER_ID_MSB_MLO 3
+
+static void dp_peer_get_reo_hash_be(struct dp_vdev *vdev,
+ struct cdp_peer_setup_info *setup_info,
+ enum cdp_host_reo_dest_ring *reo_dest,
+ bool *hash_based,
+ uint8_t *lmac_peer_id_msb)
+{
+ struct dp_soc *soc = vdev->pdev->soc;
+ struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
+
+ if (!be_soc->mlo_enabled)
+ return dp_vdev_get_default_reo_hash(vdev, reo_dest,
+ hash_based);
+
+ *hash_based = wlan_cfg_is_rx_hash_enabled(soc->wlan_cfg_ctx);
+ *reo_dest = vdev->pdev->reo_dest;
+
+ /* Not a ML link peer use non-mlo */
+ if (!setup_info) {
+ *lmac_peer_id_msb = DP_LMAC_PEER_ID_MSB_LEGACY;
+ return;
+ }
+
+ /* For STA ML VAP we do not have num links info at this point
+ * use MLO case always
+ */
+ if (vdev->opmode == wlan_op_mode_sta) {
+ *lmac_peer_id_msb = DP_LMAC_PEER_ID_MSB_MLO;
+ return;
+ }
+
+ /* For AP ML VAP consider the peer as ML only it associates with
+ * multiple links
+ */
+ if (setup_info->num_links == 1) {
+ *lmac_peer_id_msb = DP_LMAC_PEER_ID_MSB_LEGACY;
+ return;
+ }
+
+ *lmac_peer_id_msb = DP_LMAC_PEER_ID_MSB_MLO;
+}
+
+static bool dp_reo_remap_config_be(struct dp_soc *soc,
+ uint32_t *remap0,
+ uint32_t *remap1,
+ uint32_t *remap2)
+{
+ struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
+ uint32_t reo_config = wlan_cfg_get_reo_rings_mapping(soc->wlan_cfg_ctx);
+ uint32_t reo_mlo_config =
+ wlan_cfg_mlo_rx_ring_map_get(soc->wlan_cfg_ctx);
+
+ if (!be_soc->mlo_enabled)
+ return dp_reo_remap_config(soc, remap0, remap1, remap2);
+
+ *remap0 = hal_reo_ix_remap_value_get_be(soc->hal_soc, reo_mlo_config);
+ *remap1 = hal_reo_ix_remap_value_get_be(soc->hal_soc, reo_config);
+ *remap2 = hal_reo_ix_remap_value_get_be(soc->hal_soc, reo_mlo_config);
+
+ return true;
+}
+#else
+static void dp_peer_get_reo_hash_be(struct dp_vdev *vdev,
+ struct cdp_peer_setup_info *setup_info,
+ enum cdp_host_reo_dest_ring *reo_dest,
+ bool *hash_based,
+ uint8_t *lmac_peer_id_msb)
+{
+ dp_vdev_get_default_reo_hash(vdev, reo_dest, hash_based);
+}
+
+static bool dp_reo_remap_config_be(struct dp_soc *soc,
+ uint32_t *remap0,
+ uint32_t *remap1,
+ uint32_t *remap2)
+{
+ return dp_reo_remap_config(soc, remap0, remap1, remap2);
+}
+#endif
+
void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
{
#ifndef QCA_HOST_MODE_WIFI_DISABLED
@@ -1924,4 +2007,6 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
dp_init_near_full_arch_ops_be(arch_ops);
arch_ops->get_rx_hash_key = dp_get_rx_hash_key_be;
arch_ops->print_mlo_ast_stats = dp_print_mlo_ast_stats_be;
+ arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_be;
+ arch_ops->reo_remap_config = dp_reo_remap_config_be;
}
diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c
index 3e5bc0068a..74dda22b11 100644
--- a/dp/wifi3.0/dp_main.c
+++ b/dp/wifi3.0/dp_main.c
@@ -6594,6 +6594,7 @@ dp_soc_attach_target_wifi3(struct cdp_soc_t *cdp_soc)
{
struct dp_soc *soc = (struct dp_soc *)cdp_soc;
QDF_STATUS status = QDF_STATUS_SUCCESS;
+ struct hal_reo_params reo_params;
htt_soc_attach_target(soc->htt_handle);
@@ -6649,6 +6650,39 @@ dp_soc_attach_target_wifi3(struct cdp_soc_t *cdp_soc)
/* initialize work queue for stats processing */
qdf_create_work(0, &soc->htt_stats.work, htt_t2h_stats_handler, soc);
+ wlan_cfg_soc_update_tgt_params(soc->wlan_cfg_ctx,
+ soc->ctrl_psoc);
+ /* Setup HW REO */
+ qdf_mem_zero(&reo_params, sizeof(reo_params));
+
+ if (wlan_cfg_is_rx_hash_enabled(soc->wlan_cfg_ctx)) {
+ /*
+ * Reo ring remap is not required if both radios
+ * are offloaded to NSS
+ */
+
+ if (soc->arch_ops.reo_remap_config(soc, &reo_params.remap0,
+ &reo_params.remap1,
+ &reo_params.remap2))
+ reo_params.rx_hash_enabled = true;
+ else
+ reo_params.rx_hash_enabled = false;
+ }
+
+ /*
+ * set the fragment destination ring
+ */
+ dp_reo_frag_dst_set(soc, &reo_params.frag_dst_ring);
+
+ if (wlan_cfg_get_dp_soc_nss_cfg(soc->wlan_cfg_ctx))
+ reo_params.alt_dst_ind_0 = REO_REMAP_RELEASE;
+
+ hal_reo_setup(soc->hal_soc, &reo_params, 1);
+
+ hal_reo_set_err_dst_remap(soc->hal_soc);
+
+ soc->features.pn_in_reo_dest = hal_reo_enable_pn_in_dest(soc->hal_soc);
+
return QDF_STATUS_SUCCESS;
}
@@ -8039,8 +8073,10 @@ static inline bool dp_is_vdev_subtype_p2p(struct dp_vdev *vdev)
* Return: None
*/
static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
+ struct cdp_peer_setup_info *setup_info,
enum cdp_host_reo_dest_ring *reo_dest,
- bool *hash_based)
+ bool *hash_based,
+ uint8_t *lmac_peer_id_msb)
{
struct dp_soc *soc;
struct dp_pdev *pdev;
@@ -8088,10 +8124,15 @@ static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
* Return: None
*/
static void dp_peer_setup_get_reo_hash(struct dp_vdev *vdev,
+ struct cdp_peer_setup_info *setup_info,
enum cdp_host_reo_dest_ring *reo_dest,
- bool *hash_based)
+ bool *hash_based,
+ uint8_t *lmac_peer_id_msb)
{
- dp_vdev_get_default_reo_hash(vdev, reo_dest, hash_based);
+ struct dp_soc *soc = vdev->pdev->soc;
+
+ soc->arch_ops.peer_get_reo_hash(vdev, setup_info, reo_dest, hash_based,
+ lmac_peer_id_msb);
}
#endif /* IPA_OFFLOAD */
@@ -8134,7 +8175,9 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
/* save vdev related member in case vdev freed */
vdev_opmode = vdev->opmode;
pdev = vdev->pdev;
- dp_peer_setup_get_reo_hash(vdev, &reo_dest, &hash_based);
+ dp_peer_setup_get_reo_hash(vdev, setup_info,
+ &reo_dest, &hash_based,
+ &lmac_peer_id_msb);
dp_info("pdev: %d vdev :%d opmode:%u hash-based-steering:%d default-reo_dest:%u",
pdev->pdev_id, vdev->vdev_id,
@@ -14879,7 +14922,6 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
{
struct htt_soc *htt_soc = (struct htt_soc *)soc->htt_handle;
bool is_monitor_mode = false;
- struct hal_reo_params reo_params;
uint8_t i;
int num_dp_msi;
struct dp_mon_ops *mon_ops;
@@ -15004,23 +15046,6 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
if (soc->disable_mac1_intr)
dp_soc_disable_unused_mac_intr_mask(soc, 0x1);
- /* Setup HW REO */
- qdf_mem_zero(&reo_params, sizeof(reo_params));
-
- if (wlan_cfg_is_rx_hash_enabled(soc->wlan_cfg_ctx)) {
- /*
- * Reo ring remap is not required if both radios
- * are offloaded to NSS
- */
-
- if (dp_reo_remap_config(soc, &reo_params.remap0,
- &reo_params.remap1,
- &reo_params.remap2))
- reo_params.rx_hash_enabled = true;
- else
- reo_params.rx_hash_enabled = false;
- }
-
/* setup the global rx defrag waitlist */
TAILQ_INIT(&soc->rx.defrag.waitlist);
soc->rx.defrag.timeout_ms =
@@ -15030,20 +15055,6 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
wlan_cfg_get_defrag_timeout_check(soc->wlan_cfg_ctx);
qdf_spinlock_create(&soc->rx.defrag.defrag_lock);
- /*
- * set the fragment destination ring
- */
- dp_reo_frag_dst_set(soc, &reo_params.frag_dst_ring);
-
- if (wlan_cfg_get_dp_soc_nss_cfg(soc->wlan_cfg_ctx))
- reo_params.alt_dst_ind_0 = REO_REMAP_RELEASE;
-
- hal_reo_setup(soc->hal_soc, &reo_params, 1);
-
- hal_reo_set_err_dst_remap(soc->hal_soc);
-
- soc->features.pn_in_reo_dest = hal_reo_enable_pn_in_dest(soc->hal_soc);
-
mon_ops = dp_mon_ops_get(soc);
if (mon_ops && mon_ops->mon_soc_init)
mon_ops->mon_soc_init(soc);
diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h
index d53510b0c3..c45655a50a 100644
--- a/dp/wifi3.0/dp_types.h
+++ b/dp/wifi3.0/dp_types.h
@@ -1830,6 +1830,13 @@ struct dp_arch_ops {
void (*txrx_peer_map_detach)(struct dp_soc *soc);
QDF_STATUS (*dp_rxdma_ring_sel_cfg)(struct dp_soc *soc);
void (*soc_cfg_attach)(struct dp_soc *soc);
+ void (*peer_get_reo_hash)(struct dp_vdev *vdev,
+ struct cdp_peer_setup_info *setup_info,
+ enum cdp_host_reo_dest_ring *reo_dest,
+ bool *hash_based,
+ uint8_t *lmac_peer_id_msb);
+ bool (*reo_remap_config)(struct dp_soc *soc, uint32_t *remap0,
+ uint32_t *remap1, uint32_t *remap2);
/* TX RX Arch Ops */
QDF_STATUS (*tx_hw_enqueue)(struct dp_soc *soc, struct dp_vdev *vdev,
diff --git a/dp/wifi3.0/li/dp_li.c b/dp/wifi3.0/li/dp_li.c
index 5e157483f9..4aed39dcfb 100644
--- a/dp/wifi3.0/li/dp_li.c
+++ b/dp/wifi3.0/li/dp_li.c
@@ -558,6 +558,23 @@ static void dp_get_rx_hash_key_li(struct dp_soc *soc,
dp_get_rx_hash_key_bytes(lro_hash);
}
+static void dp_peer_get_reo_hash_li(struct dp_vdev *vdev,
+ struct cdp_peer_setup_info *setup_info,
+ enum cdp_host_reo_dest_ring *reo_dest,
+ bool *hash_based,
+ uint8_t *lmac_peer_id_msb)
+{
+ dp_vdev_get_default_reo_hash(vdev, reo_dest, hash_based);
+}
+
+static bool dp_reo_remap_config_li(struct dp_soc *soc,
+ uint32_t *remap0,
+ uint32_t *remap1,
+ uint32_t *remap2)
+{
+ return dp_reo_remap_config(soc, remap0, remap1, remap2);
+}
+
void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
{
#ifndef QCA_HOST_MODE_WIFI_DISABLED
@@ -609,6 +626,8 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
arch_ops->dp_peer_rx_reorder_queue_setup =
dp_peer_rx_reorder_queue_setup_li;
arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_li;
+ arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
+ arch_ops->reo_remap_config = dp_reo_remap_config_li;
}
#ifdef QCA_DP_TX_HW_SW_NBUF_DESC_PREFETCH
diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h
index bab1387faa..ecc8704790 100644
--- a/wlan_cfg/cfg_dp.h
+++ b/wlan_cfg/cfg_dp.h
@@ -450,7 +450,7 @@
#define WLAN_CFG_PPE_RELEASE_RING_SIZE_MAX 1024
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
-#define WLAN_CFG_MLO_RX_RING_MAP 0xF
+#define WLAN_CFG_MLO_RX_RING_MAP 0x7
#define WLAN_CFG_MLO_RX_RING_MAP_MIN 0x0
#define WLAN_CFG_MLO_RX_RING_MAP_MAX 0xFF
#endif
@@ -1614,57 +1614,16 @@
*
*
*/
-#define CFG_DP_MLO_CHIP0_RX_RING_MAP \
- CFG_INI_UINT("dp_chip0_rx_ring_map", \
+#define CFG_DP_MLO_RX_RING_MAP \
+ CFG_INI_UINT("dp_mlo_reo_rings_map", \
WLAN_CFG_MLO_RX_RING_MAP_MIN, \
WLAN_CFG_MLO_RX_RING_MAP_MAX, \
WLAN_CFG_MLO_RX_RING_MAP, \
- CFG_VALUE_OR_DEFAULT, "DP Rx ring map chip0")
+ CFG_VALUE_OR_DEFAULT, "DP MLO Rx ring map")
-/*
- *
- * dp_chip1_rx_ring_map - Set Rx ring map for CHIP 1
- * @Min: 0x0
- * @Max: 0xFF
- * @Default: 0xF
- *
- * This ini sets Rx ring map for CHIP 1
- *
- * Usage: Internal
- *
- *
- */
-#define CFG_DP_MLO_CHIP1_RX_RING_MAP \
- CFG_INI_UINT("dp_chip1_rx_ring_map", \
- WLAN_CFG_MLO_RX_RING_MAP_MIN, \
- WLAN_CFG_MLO_RX_RING_MAP_MAX, \
- WLAN_CFG_MLO_RX_RING_MAP, \
- CFG_VALUE_OR_DEFAULT, "DP Rx ring map chip1")
-
-/*
- *
- * dp_chip2_rx_ring_map - Set Rx ring map for CHIP 2
- * @Min: 0x0
- * @Max: 0xFF
- * @Default: 0xF
- *
- * This ini sets Rx ring map for CHIP 2
- *
- * Usage: Internal
- *
- *
- */
-#define CFG_DP_MLO_CHIP2_RX_RING_MAP \
- CFG_INI_UINT("dp_chip2_rx_ring_map", \
- WLAN_CFG_MLO_RX_RING_MAP_MIN, \
- WLAN_CFG_MLO_RX_RING_MAP_MAX, \
- WLAN_CFG_MLO_RX_RING_MAP, \
- CFG_VALUE_OR_DEFAULT, "DP Rx ring map chip2")
#define CFG_DP_MLO_CONFIG \
- CFG(CFG_DP_MLO_CHIP0_RX_RING_MAP) \
- CFG(CFG_DP_MLO_CHIP1_RX_RING_MAP) \
- CFG(CFG_DP_MLO_CHIP2_RX_RING_MAP)
+ CFG(CFG_DP_MLO_RX_RING_MAP)
#else
#define CFG_DP_MLO_CONFIG
#endif
diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c
index f3a053c7b5..c842167273 100644
--- a/wlan_cfg/wlan_cfg.c
+++ b/wlan_cfg/wlan_cfg.c
@@ -2546,25 +2546,8 @@ wlan_multi_soc_mlo_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
uint8_t rx_ring_map;
rx_ring_map =
- cfg_get(psoc, CFG_DP_MLO_CHIP0_RX_RING_MAP);
- wlan_cfg_ctx->mlo_chip_rx_ring_map[0] = rx_ring_map;
- wlan_cfg_ctx->mlo_chip_default_rx_ring_id[0] =
- wlan_cfg_get_lsb_set_pos(rx_ring_map);
- wlan_cfg_ctx->lmac_peer_id_msb[0] = 1;
-
- rx_ring_map =
- cfg_get(psoc, CFG_DP_MLO_CHIP1_RX_RING_MAP);
- wlan_cfg_ctx->mlo_chip_rx_ring_map[1] = rx_ring_map;
- wlan_cfg_ctx->mlo_chip_default_rx_ring_id[1] =
- wlan_cfg_get_lsb_set_pos(rx_ring_map);
- wlan_cfg_ctx->lmac_peer_id_msb[1] = 2;
-
- rx_ring_map =
- cfg_get(psoc, CFG_DP_MLO_CHIP2_RX_RING_MAP);
- wlan_cfg_ctx->mlo_chip_rx_ring_map[2] = rx_ring_map;
- wlan_cfg_ctx->mlo_chip_default_rx_ring_id[2] =
- wlan_cfg_get_lsb_set_pos(rx_ring_map);
- wlan_cfg_ctx->lmac_peer_id_msb[2] = 3;
+ cfg_get(psoc, CFG_DP_MLO_RX_RING_MAP);
+ wlan_cfg_ctx->mlo_chip_rx_ring_map = rx_ring_map;
}
#else
static inline void
@@ -2637,6 +2620,14 @@ static void wlan_soc_tx_capt_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
}
#endif
+void
+wlan_cfg_soc_update_tgt_params(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
+ struct cdp_ctrl_objmgr_psoc *psoc)
+{
+ wlan_cfg_ctx->reo_rings_mapping = cfg_get(psoc,
+ CFG_DP_REO_RINGS_MAP);
+}
+
/**
* wlan_cfg_soc_attach() - Allocate and prepare SoC configuration
* @psoc - Object manager psoc
@@ -3983,24 +3974,9 @@ wlan_cfg_set_rx_rel_ring_id(struct wlan_cfg_dp_soc_ctxt *cfg,
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
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_rx_ring_map_get(struct wlan_cfg_dp_soc_ctxt *cfg)
{
- return cfg->mlo_chip_rx_ring_map[chip_id];
-}
-
-uint8_t
-wlan_cfg_mlo_default_rx_ring_get_by_chip_id(struct wlan_cfg_dp_soc_ctxt *cfg,
- uint8_t chip_id)
-{
- return cfg->mlo_chip_default_rx_ring_id[chip_id];
-}
-
-uint8_t
-wlan_cfg_mlo_lmac_peer_id_msb_get_by_chip_id(struct wlan_cfg_dp_soc_ctxt *cfg,
- uint8_t chip_id)
-{
- return cfg->lmac_peer_id_msb[chip_id];
+ return cfg->mlo_chip_rx_ring_map;
}
#endif
diff --git a/wlan_cfg/wlan_cfg.h b/wlan_cfg/wlan_cfg.h
index 20eb6300ec..957a0b6331 100644
--- a/wlan_cfg/wlan_cfg.h
+++ b/wlan_cfg/wlan_cfg.h
@@ -260,8 +260,6 @@ struct wlan_srng_cfg {
* @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
* @vdev_stats_hw_offload_config: HW vdev stats config
* @vdev_stats_hw_offload_timer: HW vdev stats timer duration
* @txmon_hw_support: TxMON HW support
@@ -424,9 +422,7 @@ struct wlan_cfg_dp_soc_ctxt {
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];
+ uint8_t mlo_chip_rx_ring_map;
#endif
#ifdef QCA_VDEV_STATS_HW_OFFLOAD_SUPPORT
bool vdev_stats_hw_offload_config;
@@ -2099,38 +2095,13 @@ wlan_cfg_get_sawf_config(struct wlan_cfg_dp_soc_ctxt *cfg);
#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
+ * wlan_cfg_mlo_rx_ring_map_get() - 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);
-
+wlan_cfg_mlo_rx_ring_map_get(struct wlan_cfg_dp_soc_ctxt *cfg);
#endif
/*
@@ -2194,4 +2165,14 @@ wlan_cfg_get_tx_capt_max_mem(struct wlan_cfg_dp_soc_ctxt *cfg)
*/
uint8_t wlan_cfg_get_napi_scale_factor(struct wlan_cfg_dp_soc_ctxt *cfg);
+/**
+ * wlan_cfg_soc_update_tgt_params() - Update band specific params
+ * @wlan_cfg_ctx - SOC cfg context
+ * @ctrl_obj - PSOC object
+ *
+ * Return: void
+ */
+void
+wlan_cfg_soc_update_tgt_params(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
+ struct cdp_ctrl_objmgr_psoc *ctrl_obj);
#endif /*__WLAN_CFG_H*/