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

View File

@@ -2666,4 +2666,19 @@ struct cdp_soc_attach_params {
uint8_t mlo_chip_id; uint8_t mlo_chip_id;
uint8_t mlo_enabled; 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 #endif

View File

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

View File

@@ -481,8 +481,10 @@ fail:
return qdf_status; 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; return QDF_STATUS_SUCCESS;
} }

View File

@@ -210,12 +210,16 @@ struct dp_soc_be {
* struct dp_pdev_be - Extended DP pdev for BE targets * struct dp_pdev_be - Extended DP pdev for BE targets
* @pdev: dp pdev structure * @pdev: dp pdev structure
* @monitor_pdev_be: BE specific monitor object * @monitor_pdev_be: BE specific monitor object
* @mlo_link_id: MLO link id for PDEV
*/ */
struct dp_pdev_be { struct dp_pdev_be {
struct dp_pdev pdev; struct dp_pdev pdev;
#if !defined(DISABLE_MON_CONFIG) #if !defined(DISABLE_MON_CONFIG)
struct dp_mon_pdev_be *monitor_pdev_be; struct dp_mon_pdev_be *monitor_pdev_be;
#endif #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) 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
#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->ml_ctxt = cdp_mlo_ctx_to_dp(params->ml_context);
be_soc->mlo_enabled = 1; 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, void dp_soc_mlo_fill_params(struct dp_soc *soc,
struct cdp_soc_attach_params *params); 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 */ #endif /* __DP_MLO_H */

View File

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