From 25faca72f5fa9101ecbfc330a0403d4f93277a95 Mon Sep 17 00:00:00 2001 From: Jingxiang Ge Date: Thu, 22 Oct 2020 14:43:36 +0800 Subject: [PATCH] qcacmn: Support link rate for mcs12/13 This is part of feature which enables link rate he mcs12/13 for 4k QAM. Change-Id: Ifade156afca0bf9498383455843b9a7020b53298 CRs-Fixed: 2803008 --- umac/mlme/include/wlan_vdev_mlme.h | 60 +++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index 31465ab6bdc4..74d18b785cf0 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/umac/mlme/include/wlan_vdev_mlme.h @@ -247,9 +247,10 @@ struct vdev_mlme_mgmt_ap { /** * struct vdev_mlme_mgmt_sta - sta specific vdev mlme mgmt cfg - * @. + * @he_mcs_12_13_map: map to indicate mcs12/13 caps of peer&dut */ struct vdev_mlme_mgmt_sta { + uint16_t he_mcs_12_13_map; }; /** @@ -914,4 +915,61 @@ static inline bool wlan_vdev_mlme_is_special_vdev( return vdev_mlme->mgmt.generic.special_vdev_mode; } + +#ifdef WLAN_FEATURE_11AX +/** + * wlan_vdev_mlme_set_he_mcs_12_13_map() - set he mcs12/13 map + * @vdev: VDEV object + * @he_mcs_12_13_map: he mcs12/13 map from self&peer + * + * API to set he mcs 12/13 map + * + * Return: void + */ +static inline void wlan_vdev_mlme_set_he_mcs_12_13_map( + struct wlan_objmgr_vdev *vdev, + uint16_t he_mcs_12_13_map) +{ + struct vdev_mlme_obj *vdev_mlme; + + vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev); + if (!vdev_mlme) + return; + + vdev_mlme->mgmt.sta.he_mcs_12_13_map = he_mcs_12_13_map; +} + +/** + * wlan_vdev_mlme_get_he_mcs_12_13_map() - get he mcs12/13 map + * @vdev: VDEV object + * + * API to get he mcs12/13 support capability + * + * Return: + * @he_mcs_12_13_map: he mcs12/13 map + */ +static inline uint16_t wlan_vdev_mlme_get_he_mcs_12_13_map( + struct wlan_objmgr_vdev *vdev) +{ + struct vdev_mlme_obj *vdev_mlme; + + vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev); + if (!vdev_mlme) + return 0; + + return vdev_mlme->mgmt.sta.he_mcs_12_13_map; +} +#else +static inline void wlan_vdev_mlme_set_he_mcs_12_13_map( + struct wlan_objmgr_vdev *vdev, + uint16_t he_mcs_12_13_map) +{ +} + +static inline uint16_t wlan_vdev_mlme_get_he_mcs_12_13_map( + struct wlan_objmgr_vdev *vdev) +{ + return 0; +} +#endif #endif