qcacld-3.0: Add support to get the TDLS wider bandwidth cap

Extend the bitwise mask in
QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_FEATURES_SUPPORTED.
attribute to get the TDLS wider bandwidth capability.

Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_CAPABILITIES
Vendor attr: QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_FEATURES_SUPPORTED
BIT: WIFI_TDLS_WIDER_BW_SUPPORT

Change-Id: Ia9a8859cfd15426b190b92b6606bf257bd6f1fe8
CRs-Fixed: 3556159
This commit is contained in:
Deeksha Gupta
2023-06-27 10:51:49 +05:30
committed by Rahul Choudhary
szülő 167488b437
commit ea029e0c45
2 fájl változott, egészen pontosan 23 új sor hozzáadva és 1 régi sor törölve

Fájl megtekintése

@@ -1046,6 +1046,9 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
int data_len)
{
int status;
struct net_device *dev = wdev->netdev;
struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
struct wlan_objmgr_vdev *vdev;
struct hdd_context *hdd_ctx = wiphy_priv(wiphy);
struct sk_buff *skb;
uint32_t set = 0;
@@ -1055,6 +1058,7 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
bool tdls_sleep_sta_enable;
bool tdls_buffer_sta;
bool tdls_off_channel;
bool tdls_fw_wideband_cap;
hdd_enter_dev(wdev->netdev);
@@ -1063,6 +1067,9 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
return -EPERM;
}
if (hdd_validate_adapter(adapter))
return -EINVAL;
status = wlan_hdd_validate_context(hdd_ctx);
if (status)
return status;
@@ -1092,14 +1099,28 @@ static int __wlan_hdd_cfg80211_get_tdls_capabilities(struct wiphy *wiphy,
&tdls_buffer_sta);
cfg_tdls_get_off_channel_enable(hdd_ctx->psoc,
&tdls_off_channel);
vdev = hdd_objmgr_get_vdev_by_user(adapter->deflink,
WLAN_OSIF_ID);
if (!vdev) {
hdd_err("Vdev is null return");
goto fail;
}
tdls_fw_wideband_cap =
wlan_cfg80211_tdls_is_fw_wideband_capable(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
set = set | WIFI_TDLS_SUPPORT;
set = set | (tdls_external_control ?
WIFI_TDLS_EXTERNAL_CONTROL_SUPPORT : 0);
set = set | (tdls_off_channel ?
WIFI_TDLS_OFFCHANNEL_SUPPORT : 0);
set = set | (tdls_fw_wideband_cap ?
WIFI_TDLS_WIDER_BW_SUPPORT : 0);
max_num_tdls_sta = cfg_tdls_get_max_peer_count(hdd_ctx->psoc);
hdd_debug("TDLS Feature supported value %x", set);
hdd_debug("TDLS Feature supported value %x tdls_max_peer_count:%d",
set, max_num_tdls_sta);
if (nla_put_u32(skb, PARAM_MAX_TDLS_SESSION,
max_num_tdls_sta) ||
nla_put_u32(skb, PARAM_TDLS_FEATURE_SUPPORT, set)) {

Fájl megtekintése

@@ -286,6 +286,7 @@ typedef enum {
#define WIFI_TDLS_SUPPORT BIT(0)
#define WIFI_TDLS_EXTERNAL_CONTROL_SUPPORT BIT(1)
#define WIFI_TDLS_OFFCHANNEL_SUPPORT BIT(2)
#define WIFI_TDLS_WIDER_BW_SUPPORT BIT(3)
#define CFG_NON_AGG_RETRY_MAX (64)
#define CFG_AGG_RETRY_MAX (64)