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
此提交包含在:

提交者
Madan Koyyalamudi

父節點
1faab04393
當前提交
70398a0ccd
@@ -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 */
|
||||
|
新增問題並參考
封鎖使用者