qcacmn: Add function declaration to a T2LM API
- To invoke the API wlan_send_tid_to_link_mapping from other files, change its static definition and add a function declaration. - Remove repetitive logging of T2LM params in wlan_mlo_parse_t2lm_info API. - HMT STA host needs to send T2LM mapping info to FW only on one peer instead of both peers in case of WKK. Thus, add new API under MCC flag to address this issue. The original changes will remain under else case. Change-Id: I2495fddca7dc5da253a6d10ab41b70cf7f627156 CRs-Fixed: 3373326
This commit is contained in:

committed by
Madan Koyyalamudi

parent
d7593bcef6
commit
880ee4dd1a
@@ -594,6 +594,17 @@ QDF_STATUS wlan_process_bcn_prbrsp_t2lm_ie(struct wlan_objmgr_vdev *vdev,
|
|||||||
struct wlan_t2lm_context *rx_t2lm_ie,
|
struct wlan_t2lm_context *rx_t2lm_ie,
|
||||||
uint64_t tsf);
|
uint64_t tsf);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_send_tid_to_link_mapping() - API to send T2LM info received from beacon,
|
||||||
|
* probe response or action frame to FW.
|
||||||
|
*
|
||||||
|
* @vdev: Pointer to vdev
|
||||||
|
* @t2lm: T2LM info
|
||||||
|
*
|
||||||
|
* Return QDF_STATUS
|
||||||
|
*/
|
||||||
|
QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct wlan_t2lm_info *t2lm);
|
||||||
#else
|
#else
|
||||||
static inline QDF_STATUS wlan_mlo_parse_t2lm_ie(
|
static inline QDF_STATUS wlan_mlo_parse_t2lm_ie(
|
||||||
struct wlan_t2lm_onging_negotiation_info *t2lm, uint8_t *ie)
|
struct wlan_t2lm_onging_negotiation_info *t2lm, uint8_t *ie)
|
||||||
@@ -709,5 +720,12 @@ static inline QDF_STATUS wlan_mlo_dev_t2lm_notify_link_update(
|
|||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct wlan_t2lm_info *t2lm)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif /* WLAN_FEATURE_11BE */
|
#endif /* WLAN_FEATURE_11BE */
|
||||||
#endif /* _WLAN_MLO_T2LM_H_ */
|
#endif /* _WLAN_MLO_T2LM_H_ */
|
||||||
|
@@ -100,8 +100,7 @@ QDF_STATUS wlan_mlo_parse_t2lm_info(uint8_t *ie,
|
|||||||
ie_ptr += WLAN_T2LM_EXPECTED_DURATION_SIZE * (sizeof(uint8_t));
|
ie_ptr += WLAN_T2LM_EXPECTED_DURATION_SIZE * (sizeof(uint8_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
t2lm_debug("direction:%d default_link_mapping:%d mapping_switch_time:%d expected_duration:%d",
|
t2lm_debug("mapping_switch_time:%d expected_duration:%d",
|
||||||
t2lm->direction, t2lm->default_link_mapping,
|
|
||||||
t2lm->mapping_switch_time, t2lm->expected_duration);
|
t2lm->mapping_switch_time, t2lm->expected_duration);
|
||||||
|
|
||||||
if (t2lm->default_link_mapping)
|
if (t2lm->default_link_mapping)
|
||||||
@@ -715,35 +714,37 @@ QDF_STATUS wlan_mlo_vdev_tid_to_link_map_event(
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
|
||||||
static
|
static
|
||||||
QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
QDF_STATUS wlan_send_t2lm_info(struct wlan_objmgr_vdev *vdev,
|
||||||
struct wlan_t2lm_info *t2lm)
|
struct wlan_t2lm_info *t2lm,
|
||||||
|
struct wlan_lmac_if_mlo_tx_ops *mlo_tx_ops)
|
||||||
|
{
|
||||||
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
if (!wlan_vdev_mlme_is_mlo_vdev(vdev)) {
|
||||||
|
t2lm_err("vdev is not MLO vdev");
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
status = mlo_tx_ops->send_tid_to_link_mapping(vdev, t2lm);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
t2lm_err("Failed to send T2LM command to FW");
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static
|
||||||
|
QDF_STATUS wlan_send_t2lm_info(struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct wlan_t2lm_info *t2lm,
|
||||||
|
struct wlan_lmac_if_mlo_tx_ops *mlo_tx_ops)
|
||||||
{
|
{
|
||||||
struct wlan_lmac_if_mlo_tx_ops *mlo_tx_ops;
|
|
||||||
struct wlan_objmgr_vdev *co_mld_vdev;
|
struct wlan_objmgr_vdev *co_mld_vdev;
|
||||||
struct wlan_objmgr_psoc *psoc;
|
struct wlan_objmgr_vdev *wlan_vdev_list[WLAN_UMAC_MLO_MAX_VDEVS];
|
||||||
struct wlan_objmgr_vdev *wlan_vdev_list[WLAN_UMAC_MLO_MAX_VDEVS] = {NULL};
|
|
||||||
uint16_t vdev_count = 0;
|
uint16_t vdev_count = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
psoc = wlan_vdev_get_psoc(vdev);
|
|
||||||
if (!psoc) {
|
|
||||||
t2lm_err("null psoc");
|
|
||||||
return QDF_STATUS_E_NULL_VALUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
mlo_tx_ops = &psoc->soc_cb.tx_ops->mlo_ops;
|
|
||||||
if (!mlo_tx_ops) {
|
|
||||||
t2lm_err("tx_ops is null!");
|
|
||||||
return QDF_STATUS_E_NULL_VALUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mlo_tx_ops->send_tid_to_link_mapping) {
|
|
||||||
t2lm_err("send_tid_to_link_mapping is null");
|
|
||||||
return QDF_STATUS_E_NULL_VALUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
mlo_get_ml_vdev_list(vdev, &vdev_count, wlan_vdev_list);
|
mlo_get_ml_vdev_list(vdev, &vdev_count, wlan_vdev_list);
|
||||||
if (!vdev_count) {
|
if (!vdev_count) {
|
||||||
t2lm_err("Number of VDEVs under MLD is reported as 0");
|
t2lm_err("Number of VDEVs under MLD is reported as 0");
|
||||||
@@ -767,6 +768,36 @@ QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
|||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
QDF_STATUS wlan_send_tid_to_link_mapping(struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct wlan_t2lm_info *t2lm)
|
||||||
|
{
|
||||||
|
struct wlan_lmac_if_mlo_tx_ops *mlo_tx_ops;
|
||||||
|
struct wlan_objmgr_psoc *psoc;
|
||||||
|
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
psoc = wlan_vdev_get_psoc(vdev);
|
||||||
|
if (!psoc) {
|
||||||
|
t2lm_err("null psoc");
|
||||||
|
return QDF_STATUS_E_NULL_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
mlo_tx_ops = &psoc->soc_cb.tx_ops->mlo_ops;
|
||||||
|
if (!mlo_tx_ops) {
|
||||||
|
t2lm_err("tx_ops is null!");
|
||||||
|
return QDF_STATUS_E_NULL_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mlo_tx_ops->send_tid_to_link_mapping) {
|
||||||
|
t2lm_err("send_tid_to_link_mapping is null");
|
||||||
|
return QDF_STATUS_E_NULL_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
status = wlan_send_t2lm_info(vdev, t2lm, mlo_tx_ops);
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
void wlan_mlo_t2lm_timer_expiry_handler(void *vdev)
|
void wlan_mlo_t2lm_timer_expiry_handler(void *vdev)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user