qcacmn: Maintain dp_mlo_ctxt per each MLO group
As per current design, dp_mlo_ctxt is allocated during the initialization of module while the MLO grouping information is understood after WMI_READY_EVENT. The same is deinitialized while unregistering the module. To ensure dp_mlo_ctxt exists per MLO group, bring the dp_handle a layer below in the hierarchy into the mlo_setup_info and allocate dp_mlo_ctxt after the WMI_READY_EVENT is received from all the SOCs for a given group. Deallocate it after the WMI_MLO_TEARDOWN_COMPLETE event is received. CRs-Fixed: 3355405 Change-Id: Ic3102a34a8d44877827e2ff1f7da2e414b2b463f
This commit is contained in:

zatwierdzone przez
Madan Koyyalamudi

rodzic
27f8943f9c
commit
49ca504dbd
@@ -886,7 +886,6 @@ static QDF_STATUS dp_pdev_attach_be(struct dp_pdev *pdev,
|
||||
struct cdp_pdev_attach_params *params)
|
||||
{
|
||||
dp_pdev_mlo_fill_params(pdev, params);
|
||||
dp_mlo_update_link_to_pdev_map(pdev->soc, pdev);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -265,10 +265,19 @@ static void dp_mlo_soc_setup(struct cdp_soc_t *soc_hdl,
|
||||
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
|
||||
struct dp_mlo_ctxt *mlo_ctxt = cdp_mlo_ctx_to_dp(cdp_ml_ctxt);
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
uint8_t pdev_id;
|
||||
|
||||
if (!cdp_ml_ctxt)
|
||||
return;
|
||||
|
||||
be_soc->ml_ctxt = mlo_ctxt;
|
||||
|
||||
for (pdev_id = 0; pdev_id < MAX_PDEV_CNT; pdev_id++) {
|
||||
if (soc->pdev_list[pdev_id])
|
||||
dp_mlo_update_link_to_pdev_map(soc,
|
||||
soc->pdev_list[pdev_id]);
|
||||
}
|
||||
|
||||
dp_mlo_set_soc_by_chip_id(mlo_ctxt, soc, be_soc->mlo_chip_id);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user