qcacmn: Registration function for link disablement
This change is to allow other modules to register for link disablement. It includes below functions: 1- Notify link update 2- Register to handler to get link update notification 3- Unregister T2LM handlers Added the below changes as well, - Move T2LM related data structures to wlan_mlo_t2lm.h file - Host receives the expected duration from FW for multiple vdevs. Hence, add support to extract the expected duration for multiple vdevs. Change-Id: Ie8e77d5d3b4351a8551ecd7da50786b58dad3b2e CRs-Fixed: 3346432
This commit is contained in:

gecommit door
Madan Koyyalamudi

bovenliggende
07bee8ee4e
commit
800dddec55
@@ -171,7 +171,7 @@ QDF_STATUS
|
||||
wmi_extract_mlo_vdev_bcast_tid_to_link_map_event(
|
||||
wmi_unified_t wmi,
|
||||
void *evt_buf,
|
||||
struct wmi_host_bcast_t2lm_info *bcast);
|
||||
struct mlo_bcast_t2lm_info *bcast);
|
||||
#endif /* WLAN_FEATURE_11BE */
|
||||
|
||||
#endif /*_WMI_UNIFIED_11BE_API_H_*/
|
||||
|
@@ -1153,16 +1153,6 @@ struct wmi_host_tid_to_link_map_resp {
|
||||
enum wlan_t2lm_status status;
|
||||
uint8_t mapping_switch_tsf;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_host_bcast_t2lm_info - TID-to-link mapping broadcast info
|
||||
* @vdev_id: Vdev id
|
||||
* @expected_duration: Expected duration for vdev t2lm ie
|
||||
*/
|
||||
struct wmi_host_bcast_t2lm_info {
|
||||
uint8_t vdev_id;
|
||||
uint32_t expected_duration;
|
||||
};
|
||||
#endif /* WLAN_FEATURE_11BE */
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
|
@@ -3127,7 +3127,7 @@ QDF_STATUS (*extract_mlo_vdev_tid_to_link_map_event)(
|
||||
QDF_STATUS (*extract_mlo_vdev_bcast_tid_to_link_map_event)(
|
||||
struct wmi_unified *wmi_handle,
|
||||
void *buf,
|
||||
struct wmi_host_bcast_t2lm_info *bcast_info);
|
||||
struct mlo_bcast_t2lm_info *bcast_info);
|
||||
#endif /* WLAN_FEATURE_11BE */
|
||||
|
||||
QDF_STATUS
|
||||
|
@@ -97,7 +97,7 @@ QDF_STATUS
|
||||
wmi_extract_mlo_vdev_bcast_tid_to_link_map_event(
|
||||
wmi_unified_t wmi,
|
||||
void *evt_buf,
|
||||
struct wmi_host_bcast_t2lm_info *bcast)
|
||||
struct mlo_bcast_t2lm_info *bcast)
|
||||
{
|
||||
if (wmi->ops->extract_mlo_vdev_bcast_tid_to_link_map_event) {
|
||||
return wmi->ops->extract_mlo_vdev_bcast_tid_to_link_map_event(
|
||||
|
@@ -1180,10 +1180,11 @@ static QDF_STATUS
|
||||
extract_mlo_vdev_bcast_tid_to_link_map_event_tlv(
|
||||
struct wmi_unified *wmi_handle,
|
||||
void *buf,
|
||||
struct wmi_host_bcast_t2lm_info *bcast_info)
|
||||
struct mlo_bcast_t2lm_info *bcast_info)
|
||||
{
|
||||
WMI_MGMT_RX_EVENTID_param_tlvs *param_tlvs;
|
||||
wmi_mlo_bcast_t2lm_info *info;
|
||||
int i;
|
||||
|
||||
param_tlvs = (WMI_MGMT_RX_EVENTID_param_tlvs *)buf;
|
||||
if (!param_tlvs) {
|
||||
@@ -1191,19 +1192,32 @@ extract_mlo_vdev_bcast_tid_to_link_map_event_tlv(
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
info = param_tlvs->mlo_bcast_t2lm_info;
|
||||
if (!info) {
|
||||
wmi_debug("mgmt_ml_info TLV is not sent by FW");
|
||||
if (param_tlvs->num_mlo_bcast_t2lm_info > MAX_AP_MLDS_PER_LINK) {
|
||||
wmi_err("num_mlo_bcast_t2lm_info is greater than %d",
|
||||
MAX_AP_MLDS_PER_LINK);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
bcast_info->vdev_id =
|
||||
WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_GET(
|
||||
info->vdev_id_expec_dur);
|
||||
info = param_tlvs->mlo_bcast_t2lm_info;
|
||||
if (!info) {
|
||||
wmi_debug("mlo_bcast_t2lm_info is not applicable");
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
bcast_info->expected_duration =
|
||||
WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_EXP_DUR_GET(
|
||||
info->vdev_id_expec_dur);
|
||||
bcast_info->num_vdevs = param_tlvs->num_mlo_bcast_t2lm_info;
|
||||
wmi_debug("num_vdevs:%d", bcast_info->num_vdevs);
|
||||
for (i = 0; i < param_tlvs->num_mlo_bcast_t2lm_info; i++) {
|
||||
bcast_info->vdev_id[i] =
|
||||
WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_VDEV_ID_GET(
|
||||
info->vdev_id_expec_dur);
|
||||
|
||||
bcast_info->expected_duration[i] =
|
||||
WMI_MLO_BROADCAST_TID_TO_LINK_MAP_INFO_EXP_DUR_GET(
|
||||
info->vdev_id_expec_dur);
|
||||
wmi_debug("vdev_id:%d expected_duration:%d",
|
||||
bcast_info->vdev_id[i],
|
||||
bcast_info->expected_duration[i]);
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
Verwijs in nieuw issue
Block a user