Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afff1c08 authored by Balaji Pothunoori's avatar Balaji Pothunoori Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Add support for FT over DS

Add support to enable the "FT over DS" via
QCA_WLAN_VENDOR_ATTR_CONFIG_FT_OVER_DS vendor config
command.
This configuration helps the firmware to support
“FT over DS” instead of “FT over Air”

Change-Id: I493bf15f83bc39135aaeefa9d8ef328f0fc0cda3
CRs-Fixed: 2968680
parent fc7c43b3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -1884,6 +1884,7 @@ static void mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc,
		cfg_get(psoc, CFG_POST_INACTIVITY_ROAM_SCAN_PERIOD);
	lfr->fw_akm_bitmap = 0;
	lfr->enable_ft_im_roaming = cfg_get(psoc, CFG_FT_IM_ROAMING);
	lfr->enable_ft_over_ds = !ENABLE_FT_OVER_DS;

	mlme_init_roam_offload_cfg(psoc, lfr);
	mlme_init_ese_cfg(psoc, lfr);
+9 −0
Original line number Diff line number Diff line
@@ -2707,6 +2707,15 @@ wlan_mlme_get_roaming_offload(struct wlan_objmgr_psoc *psoc,
}
#endif

/**
 * wlan_mlme_set_ft_over_ds() - Update ft_over_ds
 * @psoc: pointer to psoc object
 * @ft_over_ds_enable: value of ft_over_ds
 *
 * Return: QDF_STATUS
 */
QDF_STATUS wlan_mlme_set_ft_over_ds(struct wlan_objmgr_psoc *psoc,
				    uint8_t ft_over_ds_enable);
/**
 * wlan_mlme_get_dfs_chan_ageout_time() - Get the DFS Channel ageout time
 * @psoc: pointer to psoc object
+3 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -1720,6 +1720,7 @@ struct fw_scan_channels {
 * @saved_freq_list: Valid channel list
 * @sae_single_pmk_feature_enabled: Contains value of ini
 * sae_single_pmk_feature_enabled
 * @enable_ft_over_ds: Flag to enable/disable FT-over-DS
 */
struct wlan_mlme_lfr_cfg {
	bool mawc_roam_enabled;
@@ -1837,6 +1838,7 @@ struct wlan_mlme_lfr_cfg {
#if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
	bool sae_single_pmk_feature_enabled;
#endif
	bool enable_ft_over_ds;
};

/**
+16 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -4203,6 +4204,21 @@ QDF_STATUS ucfg_mlme_set_user_ps(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
	return mlme_set_user_ps(psoc, vdev_id, ps_enable);
}

/**
 * ucfg_mlme_set_ft_over_ds() - update ft_over_ds status with user configured
 * value
 * @psoc: pointer to psoc object
 * @ft_over_ds_enable: value of ft_over_ds
 *
 * Return: QDF Status
 */
static inline QDF_STATUS
ucfg_mlme_set_ft_over_ds(struct wlan_objmgr_psoc *psoc,
			 uint8_t ft_over_ds_enable)
{
	return wlan_mlme_set_ft_over_ds(psoc, ft_over_ds_enable);
}

/**
 * ucfg_mlme_get_user_ps()  - Get user PS flag
 * @psoc: pointer to psoc object
+15 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -4244,6 +4244,20 @@ wlan_mlme_get_idle_roam_band(struct wlan_objmgr_psoc *psoc, uint32_t *val)
}
#endif

QDF_STATUS
wlan_mlme_set_ft_over_ds(struct wlan_objmgr_psoc *psoc,
			 uint8_t ft_over_ds_enable)
{
	struct wlan_mlme_psoc_ext_obj *mlme_obj;

	mlme_obj = mlme_get_psoc_ext_obj(psoc);
	if (!mlme_obj)
		return QDF_STATUS_E_FAILURE;

	mlme_obj->cfg.lfr.enable_ft_over_ds = ft_over_ds_enable;
	return QDF_STATUS_SUCCESS;
}

QDF_STATUS
wlan_mlme_get_dfs_chan_ageout_time(struct wlan_objmgr_psoc *psoc,
				   uint8_t *dfs_chan_ageout_time)
Loading