qcacmn: Changes for MLO pdev attach

Changes for MLO pdev attach to get MLO_link_id
information.

Change-Id: Id9e6932138e314dfeb93417fce690329ec7d6ab8
This commit is contained in:
Chaithanya Garrepalli
2021-11-19 14:40:54 +05:30
committed by Madan Koyyalamudi
parent 70398a0ccd
commit 31281aab2b
10 changed files with 68 additions and 19 deletions

View File

@@ -253,8 +253,7 @@ cdp_pdev_attach_target(ol_txrx_soc_handle soc, uint8_t pdev_id)
}
static inline QDF_STATUS cdp_pdev_attach
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev, qdf_device_t osdev,
uint8_t pdev_id)
(ol_txrx_soc_handle soc, struct cdp_pdev_attach_params *params)
{
if (!soc || !soc->ops) {
dp_cdp_debug("Invalid Instance:");
@@ -266,8 +265,7 @@ static inline QDF_STATUS cdp_pdev_attach
!soc->ops->cmn_drv_ops->txrx_pdev_attach)
return QDF_STATUS_E_FAILURE;
return soc->ops->cmn_drv_ops->txrx_pdev_attach(soc, htc_pdev, osdev,
pdev_id);
return soc->ops->cmn_drv_ops->txrx_pdev_attach(soc, params);
}
/**

View File

@@ -2666,4 +2666,19 @@ struct cdp_soc_attach_params {
uint8_t mlo_chip_id;
uint8_t mlo_enabled;
};
/*
* cdp_pdev_attach_params
*
* @htc_handle: HTC handle for host-target interface
* @qdf_osdev: QDF OS device
* @pdev_id: PDEV ID
* @mlo_link_id: ML link id
*/
struct cdp_pdev_attach_params {
HTC_HANDLE htc_handle;
qdf_device_t qdf_osdev;
uint8_t pdev_id;
uint32_t mlo_link_id;
};
#endif

View File

@@ -127,8 +127,8 @@ struct cdp_cmn_ops {
void *cb_context);
QDF_STATUS (*txrx_pdev_attach)
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev,
qdf_device_t osdev, uint8_t pdev_id);
(ol_txrx_soc_handle soc,
struct cdp_pdev_attach_params *params);
int (*txrx_pdev_post_attach)(struct cdp_soc_t *soc, uint8_t pdev_id);

View File

@@ -481,8 +481,10 @@ fail:
return qdf_status;
}
static QDF_STATUS dp_pdev_attach_be(struct dp_pdev *pdev)
static QDF_STATUS dp_pdev_attach_be(struct dp_pdev *pdev,
struct cdp_pdev_attach_params *params)
{
dp_pdev_mlo_fill_params(pdev, params);
return QDF_STATUS_SUCCESS;
}

View File

@@ -210,12 +210,16 @@ struct dp_soc_be {
* struct dp_pdev_be - Extended DP pdev for BE targets
* @pdev: dp pdev structure
* @monitor_pdev_be: BE specific monitor object
* @mlo_link_id: MLO link id for PDEV
*/
struct dp_pdev_be {
struct dp_pdev pdev;
#if !defined(DISABLE_MON_CONFIG)
struct dp_mon_pdev_be *monitor_pdev_be;
#endif
#ifdef WLAN_MLO_MULTI_CHIP
uint8_t mlo_link_id;
#endif
};
/**
@@ -541,5 +545,11 @@ void dp_soc_mlo_fill_params(struct dp_soc *soc,
struct cdp_soc_attach_params *params)
{
}
static inline
void dp_pdev_mlo_fill_params(struct dp_pdev *pdev,
struct cdp_pdev_attach_params *params)
{
}
#endif
#endif

View File

@@ -113,3 +113,17 @@ void dp_soc_mlo_fill_params(struct dp_soc *soc,
be_soc->ml_ctxt = cdp_mlo_ctx_to_dp(params->ml_context);
be_soc->mlo_enabled = 1;
}
void dp_pdev_mlo_fill_params(struct dp_pdev *pdev,
struct cdp_pdev_attach_params *params)
{
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(pdev->soc);
struct dp_pdev_be *be_pdev = dp_get_be_pdev_from_dp_pdev(pdev);
if (!be_soc->mlo_enabled) {
dp_info("MLO not enabled on SOC");
return;
}
be_pdev->mlo_link_id = params->mlo_link_id;
}

View File

@@ -80,4 +80,14 @@ struct dp_mlo_ctxt *cdp_mlo_ctx_to_dp(struct cdp_mlo_ctxt *mlo_ctxt)
*/
void dp_soc_mlo_fill_params(struct dp_soc *soc,
struct cdp_soc_attach_params *params);
/**
* dp_pdev_mlo_fill_params() - update PDEV mlo params
* @pdev: DP PDEV
* @params: PDEV attach params
*
* Return: struct dp_soc pointer
*/
void dp_pdev_mlo_fill_params(struct dp_pdev *pdev,
struct cdp_pdev_attach_params *params);
#endif /* __DP_MLO_H */

View File

@@ -183,9 +183,7 @@ static void dp_soc_cfg_attach(struct dp_soc *soc);
static inline
QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
HTC_HANDLE htc_handle,
qdf_device_t qdf_osdev,
uint8_t pdev_id);
struct cdp_pdev_attach_params *params);
static int dp_pdev_post_attach_wifi3(struct cdp_soc_t *psoc, uint8_t pdev_id);
@@ -4972,20 +4970,18 @@ static inline void dp_soc_tx_history_detach(struct dp_soc *soc)
/*
* dp_pdev_attach_wifi3() - attach txrx pdev
* @txrx_soc: Datapath SOC handle
* @htc_handle: HTC handle for host-target interface
* @qdf_osdev: QDF OS device
* @pdev_id: PDEV ID
* @params: Params for PDEV attach
*
* Return: QDF_STATUS
*/
static inline QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
HTC_HANDLE htc_handle,
qdf_device_t qdf_osdev,
uint8_t pdev_id)
static inline
QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
struct cdp_pdev_attach_params *params)
{
qdf_size_t pdev_context_size;
struct dp_soc *soc = (struct dp_soc *)txrx_soc;
struct dp_pdev *pdev = NULL;
uint8_t pdev_id = params->pdev_id;
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx;
int nss_cfg;
@@ -5045,6 +5041,8 @@ static inline QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
goto fail4;
}
soc->arch_ops.txrx_pdev_attach(pdev, params);
return QDF_STATUS_SUCCESS;
fail4:
dp_rx_pdev_desc_pool_free(pdev);

View File

@@ -1608,7 +1608,8 @@ struct dp_arch_ops {
QDF_STATUS (*txrx_soc_srng_init)(struct dp_soc *soc);
void (*txrx_soc_srng_deinit)(struct dp_soc *soc);
void (*txrx_soc_srng_free)(struct dp_soc *soc);
QDF_STATUS (*txrx_pdev_attach)(struct dp_pdev *pdev);
QDF_STATUS (*txrx_pdev_attach)(struct dp_pdev *pdev,
struct cdp_pdev_attach_params *params);
QDF_STATUS (*txrx_pdev_detach)(struct dp_pdev *pdev);
QDF_STATUS (*txrx_vdev_attach)(struct dp_soc *soc,
struct dp_vdev *vdev);

View File

@@ -86,7 +86,8 @@ static QDF_STATUS dp_soc_deinit_li(struct dp_soc *soc)
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS dp_pdev_attach_li(struct dp_pdev *pdev)
static QDF_STATUS dp_pdev_attach_li(struct dp_pdev *pdev,
struct cdp_pdev_attach_params *params)
{
return QDF_STATUS_SUCCESS;
}