qcacmn: Changes needed for MLO soc attach

Changes needed for MLO soc attach to pass chip_id,
dp_ml_context from upper layer.

This change also takes care of assigning appropriate
RBM id for IDLE link descriptors based on chip_id.

Change-Id: I8f5f08c524d91942e6e458f048700b7bdd900107
此提交包含在:
Chaithanya Garrepalli
2021-11-19 14:40:36 +05:30
提交者 Madan Koyyalamudi
父節點 1faab04393
當前提交 70398a0ccd
共有 17 個檔案被更改,包括 182 行新增57 行删除

查看文件

@@ -369,7 +369,8 @@ static QDF_STATUS dp_soc_detach_be(struct dp_soc *soc)
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS dp_soc_attach_be(struct dp_soc *soc)
static QDF_STATUS dp_soc_attach_be(struct dp_soc *soc,
struct cdp_soc_attach_params *params)
{
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
@@ -398,6 +399,8 @@ static QDF_STATUS dp_soc_attach_be(struct dp_soc *soc)
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
goto fail;
dp_soc_mlo_fill_params(soc, params);
for (i = 0; i < MAX_TXDESC_POOLS; i++) {
num_entries = wlan_cfg_get_num_tx_desc(soc->wlan_cfg_ctx);
qdf_status =

查看文件

@@ -21,6 +21,9 @@
#include <dp_types.h>
#include <hal_be_tx.h>
#ifdef WLAN_MLO_MULTI_CHIP
#include "mlo/dp_mlo.h"
#endif
/* maximum number of entries in one page of secondary page table */
#define DP_CC_SPT_PAGE_MAX_ENTRIES 512
@@ -173,8 +176,8 @@ struct dp_tx_bank_profile {
* @rx_cc_ctx: Cookie conversion context for rx desc pools
* @monitor_soc_be: BE specific monitor object
* @mlo_enabled: Flag to indicate MLO is enabled or not
* @ml_ctxt: pointer to global ml_context
* @mlo_chip_id: MLO chip_id
* @ml_ctxt: pointer to global ml_context
*/
struct dp_soc_be {
struct dp_soc soc;
@@ -195,8 +198,8 @@ struct dp_soc_be {
#endif
#ifdef WLAN_MLO_MULTI_CHIP
uint8_t mlo_enabled;
struct dp_mlo_context *ml_context;
uint8_t mlo_chip_id;
struct dp_mlo_ctxt *ml_ctxt;
#endif
};
@@ -531,4 +534,12 @@ uint32_t dp_desc_pool_get_cmem_base(uint8_t chip_id, uint8_t desc_pool_id,
}
return 0;
}
#ifndef WLAN_MLO_MULTI_CHIP
static inline
void dp_soc_mlo_fill_params(struct dp_soc *soc,
struct cdp_soc_attach_params *params)
{
}
#endif
#endif

查看文件

@@ -18,6 +18,7 @@
#include <dp_htt.h>
#include <hal_be_api.h>
#include "dp_mlo.h"
#include <dp_be.h>
/*
* dp_mlo_ctxt_attach_wifi3 () Attach DP MLO context
@@ -97,3 +98,18 @@ dp_mlo_get_soc_ref_by_chip_id(struct dp_mlo_ctxt *ml_ctxt,
return soc;
}
void dp_soc_mlo_fill_params(struct dp_soc *soc,
struct cdp_soc_attach_params *params)
{
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
if (!params->mlo_enabled) {
dp_warn("MLO not enabled on SOC");
return;
}
be_soc->mlo_chip_id = params->mlo_chip_id;
be_soc->ml_ctxt = cdp_mlo_ctx_to_dp(params->ml_context);
be_soc->mlo_enabled = 1;
}

查看文件

@@ -17,7 +17,6 @@
#define __DP_MLO_H
#include <dp_types.h>
#include <dp_be.h>
/* Max number of chips that can participate in MLO */
#define DP_MAX_MLO_CHIPS 3
@@ -71,4 +70,14 @@ struct dp_mlo_ctxt *cdp_mlo_ctx_to_dp(struct cdp_mlo_ctxt *mlo_ctxt)
{
return (struct dp_mlo_ctxt *)mlo_ctxt;
}
/**
* dp_soc_mlo_fill_params() - update SOC mlo params
* @soc: DP soc
* @params: soc attach params
*
* Return: struct dp_soc pointer
*/
void dp_soc_mlo_fill_params(struct dp_soc *soc,
struct cdp_soc_attach_params *params);
#endif /* __DP_MLO_H */