qcacmn: Update the MLO ops to include attach and detach
To handle dp_mlo_ctxt assignments from the UMAC module, moving the callers for attach and detach to the list of MLO operations for multi chip. CRs-Fixed: 3355400 Change-Id: Id743ec1086cf1b3ba0a3ec42212dc21c5a9ccc6b
This commit is contained in:

committed by
Madan Koyyalamudi

parent
e2da240791
commit
27f8943f9c
@@ -19,25 +19,40 @@
|
|||||||
|
|
||||||
struct cdp_mlo_ctxt;
|
struct cdp_mlo_ctxt;
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_ctrl_mlo_mgr - opaque handle for mlo manager context
|
|
||||||
*/
|
|
||||||
struct cdp_ctrl_mlo_mgr;
|
|
||||||
|
|
||||||
struct
|
struct
|
||||||
cdp_mlo_ctxt *dp_mlo_ctxt_attach_wifi3(struct cdp_ctrl_mlo_mgr *ctrl_ctxt);
|
cdp_mlo_ctxt *dp_mlo_ctxt_attach_wifi3(struct cdp_ctrl_mlo_mgr *ctrl_ctxt);
|
||||||
void dp_mlo_ctxt_detach_wifi3(struct cdp_mlo_ctxt *ml_ctxt);
|
void dp_mlo_ctxt_detach_wifi3(struct cdp_mlo_ctxt *ml_ctxt);
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
struct cdp_mlo_ctxt *cdp_mlo_ctxt_attach(struct cdp_ctrl_mlo_mgr *ctrl_ctxt)
|
struct cdp_mlo_ctxt *cdp_mlo_ctxt_attach(ol_txrx_soc_handle soc,
|
||||||
|
struct cdp_ctrl_mlo_mgr *ctrl_ctxt)
|
||||||
{
|
{
|
||||||
return dp_mlo_ctxt_attach_wifi3(ctrl_ctxt);
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_BUG(0);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->mlo_ops ||
|
||||||
|
!soc->ops->mlo_ops->mlo_ctxt_attach)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return soc->ops->mlo_ops->mlo_ctxt_attach(ctrl_ctxt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void cdp_mlo_ctxt_detach(struct cdp_mlo_ctxt *ml_ctxt)
|
void cdp_mlo_ctxt_detach(ol_txrx_soc_handle soc,
|
||||||
|
struct cdp_mlo_ctxt *ml_ctxt)
|
||||||
{
|
{
|
||||||
dp_mlo_ctxt_detach_wifi3(ml_ctxt);
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_BUG(0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->mlo_ops ||
|
||||||
|
!soc->ops->mlo_ops->mlo_ctxt_detach)
|
||||||
|
return;
|
||||||
|
|
||||||
|
soc->ops->mlo_ops->mlo_ctxt_detach(ml_ctxt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void cdp_soc_mlo_soc_setup(ol_txrx_soc_handle soc,
|
static inline void cdp_soc_mlo_soc_setup(ol_txrx_soc_handle soc,
|
||||||
|
@@ -48,6 +48,11 @@
|
|||||||
#define CDP_PEER_DO_NOT_START_UNMAP_TIMER 1
|
#define CDP_PEER_DO_NOT_START_UNMAP_TIMER 1
|
||||||
|
|
||||||
struct hif_opaque_softc;
|
struct hif_opaque_softc;
|
||||||
|
/**
|
||||||
|
* cdp_ctrl_mlo_mgr - opaque handle for mlo manager context
|
||||||
|
*/
|
||||||
|
struct cdp_ctrl_mlo_mgr;
|
||||||
|
|
||||||
|
|
||||||
/* same as ieee80211_nac_param */
|
/* same as ieee80211_nac_param */
|
||||||
enum cdp_nac_param_cmd {
|
enum cdp_nac_param_cmd {
|
||||||
@@ -148,6 +153,8 @@ enum cdp_peer_txq_flush_policy {
|
|||||||
* @mlo_update_delta_tsf2: update delta tsf2 for link
|
* @mlo_update_delta_tsf2: update delta tsf2 for link
|
||||||
* @mlo_update_delta_tqm: update delta tqm for SOC
|
* @mlo_update_delta_tqm: update delta tqm for SOC
|
||||||
* @mlo_update_mlo_ts_offset: update MLO timestamp offset for SOC
|
* @mlo_update_mlo_ts_offset: update MLO timestamp offset for SOC
|
||||||
|
* @mlo_ctxt_attach: Attach DP MLO context
|
||||||
|
* @mlo_ctxt_detach: Detach DP MLO context
|
||||||
*/
|
*/
|
||||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||||
struct cdp_mlo_ops {
|
struct cdp_mlo_ops {
|
||||||
@@ -160,6 +167,8 @@ struct cdp_mlo_ops {
|
|||||||
int8_t *vdev_ids, uint8_t num_vdevs,
|
int8_t *vdev_ids, uint8_t num_vdevs,
|
||||||
uint8_t vdev_id);
|
uint8_t vdev_id);
|
||||||
void (*mlo_setup_complete)(struct cdp_mlo_ctxt *mlo_ctxt);
|
void (*mlo_setup_complete)(struct cdp_mlo_ctxt *mlo_ctxt);
|
||||||
|
struct cdp_mlo_ctxt *(*mlo_ctxt_attach)(struct cdp_ctrl_mlo_mgr *m_ctx);
|
||||||
|
void (*mlo_ctxt_detach)(struct cdp_mlo_ctxt *mlo_ctxt);
|
||||||
void (*mlo_update_delta_tsf2)(struct cdp_soc_t *soc_hdl,
|
void (*mlo_update_delta_tsf2)(struct cdp_soc_t *soc_hdl,
|
||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
uint64_t delta_tsf2);
|
uint64_t delta_tsf2);
|
||||||
|
@@ -523,6 +523,8 @@ static struct cdp_mlo_ops dp_mlo_ops = {
|
|||||||
.mlo_update_delta_tsf2 = dp_mlo_update_delta_tsf2,
|
.mlo_update_delta_tsf2 = dp_mlo_update_delta_tsf2,
|
||||||
.mlo_update_delta_tqm = dp_mlo_update_delta_tqm,
|
.mlo_update_delta_tqm = dp_mlo_update_delta_tqm,
|
||||||
.mlo_update_mlo_ts_offset = dp_mlo_update_mlo_ts_offset,
|
.mlo_update_mlo_ts_offset = dp_mlo_update_mlo_ts_offset,
|
||||||
|
.mlo_ctxt_attach = dp_mlo_ctxt_attach_wifi3,
|
||||||
|
.mlo_ctxt_detach = dp_mlo_ctxt_detach_wifi3,
|
||||||
};
|
};
|
||||||
|
|
||||||
void dp_soc_mlo_fill_params(struct dp_soc *soc,
|
void dp_soc_mlo_fill_params(struct dp_soc *soc,
|
||||||
|
Reference in New Issue
Block a user