qcacmn: Send standby pdev info to FW
Send standby pdev/radio which is expected to be up while in powersave mode to FW, to switch master control for timers. Change-Id: I4b48d93859359d1b6aee0b9993fd1bd3bff863f2 CRs-Fixed: 3621705
This commit is contained in:

committed by
Rahul Choudhary

parent
3251d2d0ad
commit
6bd218f3be
@@ -3013,11 +3013,13 @@ QDF_STATUS target_if_mlo_ready(struct wlan_objmgr_pdev **pdev,
|
||||
* @pdev: Pointer to pdev object
|
||||
* @reason: Reason for triggering teardown
|
||||
* @reset: UMAC reset for mode1 SSR
|
||||
* @standby_active: Active radio while in standby mode
|
||||
*
|
||||
* Return: QDF_STATUS codes
|
||||
*/
|
||||
QDF_STATUS target_if_mlo_teardown_req(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t reason, bool reset);
|
||||
uint32_t reason, bool reset,
|
||||
bool standby_active);
|
||||
#endif /*WLAN_FEATURE_11BE_MLO && WLAN_MLO_MULTI_CHIP*/
|
||||
|
||||
/**
|
||||
|
@@ -1243,7 +1243,7 @@ QDF_STATUS target_if_mlo_ready(struct wlan_objmgr_pdev **pdev,
|
||||
QDF_STATUS
|
||||
target_if_mlo_teardown_req(struct wlan_objmgr_pdev *pdev,
|
||||
enum wmi_mlo_teardown_reason reason,
|
||||
bool reset)
|
||||
bool reset, bool standby_active)
|
||||
{
|
||||
wmi_unified_t wmi_handle;
|
||||
struct wmi_mlo_teardown_params params = {0};
|
||||
@@ -1255,6 +1255,7 @@ target_if_mlo_teardown_req(struct wlan_objmgr_pdev *pdev,
|
||||
params.pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
|
||||
params.reason = reason;
|
||||
params.umac_reset = reset;
|
||||
params.standby_active = standby_active;
|
||||
|
||||
return wmi_mlo_teardown_cmd_send(wmi_handle, ¶ms);
|
||||
}
|
||||
|
@@ -254,6 +254,7 @@ struct wlan_objmgr_pdev_objmgr {
|
||||
* @peer_free_list: list to hold freed peer
|
||||
* @peer_obj_free_work:delayed work to be queued into workqueue
|
||||
* @active_work_cnt: active work counts
|
||||
* @standby_active: Pdev in standby mode while power down
|
||||
*/
|
||||
struct wlan_objmgr_pdev {
|
||||
struct wlan_chan_list *current_chan_list;
|
||||
@@ -271,6 +272,9 @@ struct wlan_objmgr_pdev {
|
||||
qdf_work_t peer_obj_free_work;
|
||||
uint32_t active_work_cnt;
|
||||
#endif
|
||||
#ifdef WLAN_MLO_MULTI_CHIP
|
||||
bool standby_active;
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
|
@@ -592,7 +592,8 @@ struct wlan_lmac_if_mlme_tx_ops {
|
||||
QDF_STATUS (*target_if_mlo_ready)(struct wlan_objmgr_pdev **pdev,
|
||||
uint8_t num_pdevs);
|
||||
QDF_STATUS (*target_if_mlo_teardown_req)(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t grp_id, bool reset);
|
||||
uint32_t grp_id, bool reset,
|
||||
bool standby_active);
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
|
||||
QDF_STATUS (*vdev_send_set_mac_addr)(struct qdf_mac_addr mac_addr,
|
||||
|
@@ -1042,13 +1042,15 @@ static void mlo_send_teardown_req(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
if (tx_ops && tx_ops->mops.target_if_mlo_teardown_req) {
|
||||
mlo_info(
|
||||
"Trigger Teardown with Pdev %d Psoc id %d link idx %d Umac reset %d for Mode 1",
|
||||
"Trigger Teardown with Pdev id: %d Psoc id: %d link idx: %d Umac reset: %d Standby Active: %d",
|
||||
wlan_objmgr_pdev_get_pdev_id(temp_pdev),
|
||||
wlan_psoc_get_id(wlan_pdev_get_psoc(temp_pdev)),
|
||||
link_idx, umac_reset);
|
||||
link_idx, umac_reset,
|
||||
temp_pdev->standby_active);
|
||||
tx_ops->mops.target_if_mlo_teardown_req(
|
||||
setup_info->pdev_list[link_idx],
|
||||
reason, umac_reset);
|
||||
reason, umac_reset,
|
||||
temp_pdev->standby_active);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1058,7 +1060,7 @@ static void mlo_send_teardown_req(struct wlan_objmgr_psoc *psoc,
|
||||
continue;
|
||||
tx_ops->mops.target_if_mlo_teardown_req(
|
||||
setup_info->pdev_list[link_idx],
|
||||
reason, 0);
|
||||
reason, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -66,6 +66,7 @@ struct wmi_mlo_teardown_params {
|
||||
uint32_t pdev_id;
|
||||
enum wmi_mlo_teardown_reason reason;
|
||||
bool umac_reset;
|
||||
bool standby_active;
|
||||
};
|
||||
|
||||
/** enum wmi_mlo_setup_status - Status code in WMI MLO setup completion event
|
||||
|
@@ -2285,6 +2285,7 @@ QDF_STATUS mlo_teardown_cmd_send_tlv(struct wmi_unified *wmi_handle,
|
||||
}
|
||||
|
||||
cmd->trigger_umac_reset = param->umac_reset;
|
||||
cmd->erp_standby_mode = param->standby_active;
|
||||
|
||||
wmi_mtrace(WMI_MLO_TEARDOWN_CMDID, NO_SESSION, 0);
|
||||
ret = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||
|
Reference in New Issue
Block a user