qcacld-3.0: Add support to send roam scan scheme for the triggers
Add support to handle the nl80211 attribute - QCA_ATTR_ROAM_CONTROL_TRIGGERS_SCAN_SCHEME. Send RSO update to firmware if roam scan scheme value is received via the nl80211 attribute QCA_ATTR_ROAM_CONTROL_TRIGGERS_SCAN_SCHEME over the QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD subcommand. Change-Id: If21281245097648380990b9218a722691279f598 CRs-Fixed: 2785256
This commit is contained in:

committed by
snandini

parent
adbc4f7d5b
commit
cd22d076ab
@@ -1558,6 +1558,7 @@ static void mlme_init_roam_offload_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
lfr->idle_roam_min_rssi = cfg_get(psoc, CFG_LFR_IDLE_ROAM_MIN_RSSI);
|
lfr->idle_roam_min_rssi = cfg_get(psoc, CFG_LFR_IDLE_ROAM_MIN_RSSI);
|
||||||
lfr->roam_trigger_bitmap =
|
lfr->roam_trigger_bitmap =
|
||||||
cfg_get(psoc, CFG_ROAM_TRIGGER_BITMAP);
|
cfg_get(psoc, CFG_ROAM_TRIGGER_BITMAP);
|
||||||
|
|
||||||
lfr->idle_roam_band = cfg_get(psoc, CFG_LFR_IDLE_ROAM_BAND);
|
lfr->idle_roam_band = cfg_get(psoc, CFG_LFR_IDLE_ROAM_BAND);
|
||||||
lfr->sta_roam_disable = cfg_get(psoc, CFG_STA_DISABLE_ROAM);
|
lfr->sta_roam_disable = cfg_get(psoc, CFG_STA_DISABLE_ROAM);
|
||||||
mlme_init_sae_single_pmk_cfg(psoc, lfr);
|
mlme_init_sae_single_pmk_cfg(psoc, lfr);
|
||||||
|
@@ -3010,4 +3010,5 @@ QDF_STATUS mlme_get_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *dst,
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS mlme_set_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *src,
|
QDF_STATUS mlme_set_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *src,
|
||||||
qdf_size_t len);
|
qdf_size_t len);
|
||||||
|
|
||||||
#endif /* _WLAN_MLME_API_H_ */
|
#endif /* _WLAN_MLME_API_H_ */
|
||||||
|
@@ -513,6 +513,31 @@ wlan_cm_roam_get_vendor_btm_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
struct wlan_cm_roam_vendor_btm_params
|
struct wlan_cm_roam_vendor_btm_params
|
||||||
*param);
|
*param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cm_update_roam_scan_scheme_bitmap() - Set roam scan scheme bitmap for
|
||||||
|
* each vdev
|
||||||
|
* @psoc: PSOC pointer
|
||||||
|
* @vdev_id: VDEV id
|
||||||
|
* @roam_scan_scheme_bitmap: bitmap of roam triggers for which partial roam
|
||||||
|
* scan needs to be enabled
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint32_t roam_scan_scheme_bitmap);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cm_get_roam_scan_scheme_bitmap() - Get roam scan scheme bitmap value
|
||||||
|
* @psoc: PSOC pointer
|
||||||
|
* @vdev_id: VDEV id
|
||||||
|
*
|
||||||
|
* Return: Roam scan scheme bitmap value
|
||||||
|
*/
|
||||||
|
uint32_t wlan_cm_get_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id);
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
void wlan_cm_roam_activate_pcl_per_vdev(struct wlan_objmgr_psoc *psoc,
|
void wlan_cm_roam_activate_pcl_per_vdev(struct wlan_objmgr_psoc *psoc,
|
||||||
@@ -570,5 +595,20 @@ wlan_cm_roam_get_vendor_btm_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
struct wlan_cm_roam_vendor_btm_params *param)
|
struct wlan_cm_roam_vendor_btm_params *param)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
wlan_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint32_t roam_scan_scheme_bitmap)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_E_NOSUPPORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
uint32_t wlan_cm_get_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
#endif /* FEATURE_ROAM_OFFLOAD */
|
#endif /* FEATURE_ROAM_OFFLOAD */
|
||||||
#endif /* WLAN_CM_ROAM_API_H__ */
|
#endif /* WLAN_CM_ROAM_API_H__ */
|
||||||
|
@@ -94,6 +94,7 @@
|
|||||||
#define WLAN_FILS_FT_MAX_LEN 48
|
#define WLAN_FILS_FT_MAX_LEN 48
|
||||||
|
|
||||||
#define WLAN_MAX_PMK_DUMP_BYTES 6
|
#define WLAN_MAX_PMK_DUMP_BYTES 6
|
||||||
|
#define DEFAULT_ROAM_SCAN_SCHEME_BITMAP 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum roam_cfg_param - Type values for roaming parameters used as index
|
* enum roam_cfg_param - Type values for roaming parameters used as index
|
||||||
@@ -1312,12 +1313,18 @@ enum roam_scan_freq_scheme {
|
|||||||
* @beacon_rssi_weight: Number of beacons to be used to calculate the average
|
* @beacon_rssi_weight: Number of beacons to be used to calculate the average
|
||||||
* rssi of the AP.
|
* rssi of the AP.
|
||||||
* @hi_rssi_scan_delay: Roam scan delay in ms for High RSSI roam trigger.
|
* @hi_rssi_scan_delay: Roam scan delay in ms for High RSSI roam trigger.
|
||||||
|
* @roam_scan_scheme_bitmap: Bitmap of roam triggers for which partial channel
|
||||||
|
* map scan scheme needs to be enabled. Each bit in the bitmap corresponds to
|
||||||
|
* the bit position in the order provided by the enum roam_trigger_reason
|
||||||
|
* Ex: roam_scan_scheme_bitmap - 0x00110 will enable partial scan for below
|
||||||
|
* triggers:
|
||||||
|
* ROAM_TRIGGER_REASON_PER, ROAM_TRIGGER_REASON_BMISS
|
||||||
*/
|
*/
|
||||||
struct wlan_cm_rso_configs {
|
struct wlan_cm_rso_configs {
|
||||||
uint8_t rescan_rssi_delta;
|
uint8_t rescan_rssi_delta;
|
||||||
uint8_t beacon_rssi_weight;
|
uint8_t beacon_rssi_weight;
|
||||||
uint32_t hi_rssi_scan_delay;
|
uint32_t hi_rssi_scan_delay;
|
||||||
|
uint32_t roam_scan_scheme_bitmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -135,5 +135,24 @@ ucfg_cm_roaming_in_progress(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id)
|
|||||||
return wlan_cm_roaming_in_progress(pdev, vdev_id);
|
return wlan_cm_roaming_in_progress(pdev, vdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint32_t roam_scan_scheme_bitmap)
|
||||||
|
{
|
||||||
|
return wlan_cm_update_roam_scan_scheme_bitmap(psoc, vdev_id,
|
||||||
|
roam_scan_scheme_bitmap);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint32_t roam_scan_scheme_bitmap)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@@ -674,3 +674,65 @@ QDF_STATUS wlan_cm_update_fils_ft(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint32_t roam_scan_scheme_bitmap)
|
||||||
|
{
|
||||||
|
struct wlan_objmgr_vdev *vdev;
|
||||||
|
struct mlme_legacy_priv *mlme_priv;
|
||||||
|
|
||||||
|
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
|
||||||
|
WLAN_MLME_NB_ID);
|
||||||
|
|
||||||
|
if (!vdev) {
|
||||||
|
mlme_err("vdev%d: vdev object is NULL", vdev_id);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev);
|
||||||
|
if (!mlme_priv) {
|
||||||
|
mlme_err("vdev%d: vdev legacy private object is NULL", vdev_id);
|
||||||
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
mlme_priv->cm_roam.vdev_rso_config.roam_scan_scheme_bitmap =
|
||||||
|
roam_scan_scheme_bitmap;
|
||||||
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t wlan_cm_get_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id)
|
||||||
|
{
|
||||||
|
struct wlan_objmgr_vdev *vdev;
|
||||||
|
struct mlme_legacy_priv *mlme_priv;
|
||||||
|
uint32_t roam_scan_scheme_bitmap;
|
||||||
|
|
||||||
|
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
|
||||||
|
WLAN_MLME_NB_ID);
|
||||||
|
|
||||||
|
if (!vdev) {
|
||||||
|
mlme_err("vdev%d: vdev object is NULL", vdev_id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev);
|
||||||
|
if (!mlme_priv) {
|
||||||
|
mlme_err("vdev%d: vdev legacy private object is NULL", vdev_id);
|
||||||
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
roam_scan_scheme_bitmap =
|
||||||
|
mlme_priv->cm_roam.vdev_rso_config.roam_scan_scheme_bitmap;
|
||||||
|
|
||||||
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
|
||||||
|
|
||||||
|
return roam_scan_scheme_bitmap;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@@ -4543,6 +4543,7 @@ roam_control_policy[QCA_ATTR_ROAM_CONTROL_MAX + 1] = {
|
|||||||
[QCA_ATTR_ROAM_CONTROL_CONNECTED_RSSI_THRESHOLD] = {.type = NLA_U32},
|
[QCA_ATTR_ROAM_CONTROL_CONNECTED_RSSI_THRESHOLD] = {.type = NLA_U32},
|
||||||
[QCA_ATTR_ROAM_CONTROL_CANDIDATE_RSSI_THRESHOLD] = {.type = NLA_U32},
|
[QCA_ATTR_ROAM_CONTROL_CANDIDATE_RSSI_THRESHOLD] = {.type = NLA_U32},
|
||||||
[QCA_ATTR_ROAM_CONTROL_USER_REASON] = {.type = NLA_U32},
|
[QCA_ATTR_ROAM_CONTROL_USER_REASON] = {.type = NLA_U32},
|
||||||
|
[QCA_ATTR_ROAM_CONTROL_SCAN_SCHEME_TRIGGERS] = {.type = NLA_U32},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4612,7 +4613,7 @@ wlan_hdd_convert_control_roam_trigger_bitmap(uint32_t trigger_reason_bitmap)
|
|||||||
/* Enable the complete trigger bitmap when all bits are set in
|
/* Enable the complete trigger bitmap when all bits are set in
|
||||||
* the control config bitmap
|
* the control config bitmap
|
||||||
*/
|
*/
|
||||||
all_bitmap = (QCA_ROAM_TRIGGER_REASON_BSS_LOAD << 1) - 1;
|
all_bitmap = (QCA_ROAM_TRIGGER_REASON_EXTERNAL_SCAN << 1) - 1;
|
||||||
if (trigger_reason_bitmap == all_bitmap)
|
if (trigger_reason_bitmap == all_bitmap)
|
||||||
return BIT(ROAM_TRIGGER_REASON_MAX) - 1;
|
return BIT(ROAM_TRIGGER_REASON_MAX) - 1;
|
||||||
|
|
||||||
@@ -4640,9 +4641,74 @@ wlan_hdd_convert_control_roam_trigger_bitmap(uint32_t trigger_reason_bitmap)
|
|||||||
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_BSS_LOAD)
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_BSS_LOAD)
|
||||||
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_BSS_LOAD);
|
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_BSS_LOAD);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_USER_TRIGGER)
|
||||||
|
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_FORCED);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_DEAUTH)
|
||||||
|
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_DEAUTH);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_IDLE)
|
||||||
|
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_IDLE);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_TX_FAILURES)
|
||||||
|
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_STA_KICKOUT);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_EXTERNAL_SCAN)
|
||||||
|
drv_trigger_bitmap |= BIT(ROAM_TRIGGER_REASON_BACKGROUND);
|
||||||
|
|
||||||
return drv_trigger_bitmap;
|
return drv_trigger_bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_hdd_convert_control_roam_scan_scheme_bitmap() - Convert the
|
||||||
|
* vendor specific roam scan scheme for roam triggers to internal roam trigger
|
||||||
|
* bitmap for partial scan.
|
||||||
|
* @trigger_reason_bitmap: Vendor specific roam trigger bitmap
|
||||||
|
*
|
||||||
|
* Return: Internal roam scan scheme bitmap
|
||||||
|
*/
|
||||||
|
static uint32_t
|
||||||
|
wlan_hdd_convert_control_roam_scan_scheme_bitmap(uint32_t trigger_reason_bitmap)
|
||||||
|
{
|
||||||
|
uint32_t drv_scan_scheme_bitmap = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Partial scan scheme override over default scan scheme only for
|
||||||
|
* the PER, BMISS, Low RSSI, BTM, BSS_LOAD Triggers
|
||||||
|
*/
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_PER)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_PER);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_BEACON_MISS)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_BMISS);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_POOR_RSSI)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_LOW_RSSI);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_BTM)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_BTM);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_BSS_LOAD)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_BSS_LOAD);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_USER_TRIGGER)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_FORCED);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_DEAUTH)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_DEAUTH);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_IDLE)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_IDLE);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_TX_FAILURES)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_STA_KICKOUT);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & QCA_ROAM_TRIGGER_REASON_EXTERNAL_SCAN)
|
||||||
|
drv_scan_scheme_bitmap |= BIT(ROAM_TRIGGER_REASON_BACKGROUND);
|
||||||
|
|
||||||
|
return drv_scan_scheme_bitmap;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hdd_send_roam_triggers_to_sme() - Send roam trigger bitmap to SME
|
* hdd_send_roam_triggers_to_sme() - Send roam trigger bitmap to SME
|
||||||
* @hdd_ctx: HDD context
|
* @hdd_ctx: HDD context
|
||||||
@@ -4694,6 +4760,16 @@ hdd_send_roam_triggers_to_sme(struct hdd_context *hdd_ctx,
|
|||||||
triggers.trigger_bitmap =
|
triggers.trigger_bitmap =
|
||||||
wlan_hdd_convert_control_roam_trigger_bitmap(roam_trigger_bitmap);
|
wlan_hdd_convert_control_roam_trigger_bitmap(roam_trigger_bitmap);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* roam trigger bitmap is > 0 - Roam triggers are set.
|
||||||
|
* roam trigger bitmap is 0 - Disable roaming
|
||||||
|
*
|
||||||
|
* For both the above modes, reset the roam scan scheme bitmap to
|
||||||
|
* 0.
|
||||||
|
*/
|
||||||
|
status = ucfg_cm_update_roam_scan_scheme_bitmap(hdd_ctx->psoc,
|
||||||
|
vdev_id, 0);
|
||||||
|
|
||||||
#ifdef ROAM_OFFLOAD_V1
|
#ifdef ROAM_OFFLOAD_V1
|
||||||
status = ucfg_cm_rso_set_roam_trigger(hdd_ctx->pdev, vdev_id,
|
status = ucfg_cm_rso_set_roam_trigger(hdd_ctx->pdev, vdev_id,
|
||||||
&triggers);
|
&triggers);
|
||||||
@@ -4978,6 +5054,15 @@ hdd_set_roam_with_control_config(struct hdd_context *hdd_ctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
attr = tb2[QCA_ATTR_ROAM_CONTROL_SCAN_SCHEME_TRIGGERS];
|
||||||
|
if (attr) {
|
||||||
|
value = wlan_hdd_convert_control_roam_scan_scheme_bitmap(
|
||||||
|
nla_get_u32(attr));
|
||||||
|
status = ucfg_cm_update_roam_scan_scheme_bitmap(hdd_ctx->psoc,
|
||||||
|
vdev_id,
|
||||||
|
value);
|
||||||
|
}
|
||||||
|
|
||||||
/* Scoring and roam candidate selection criteria */
|
/* Scoring and roam candidate selection criteria */
|
||||||
attr = tb2[QCA_ATTR_ROAM_CONTROL_SELECTION_CRITERIA];
|
attr = tb2[QCA_ATTR_ROAM_CONTROL_SELECTION_CRITERIA];
|
||||||
if (attr) {
|
if (attr) {
|
||||||
@@ -5004,7 +5089,9 @@ hdd_set_roam_with_control_config(struct hdd_context *hdd_ctx,
|
|||||||
param.user_roam_reason = nla_get_u32(attr);
|
param.user_roam_reason = nla_get_u32(attr);
|
||||||
else
|
else
|
||||||
param.user_roam_reason = DISABLE_VENDOR_BTM_CONFIG;
|
param.user_roam_reason = DISABLE_VENDOR_BTM_CONFIG;
|
||||||
|
|
||||||
wlan_cm_roam_set_vendor_btm_params(hdd_ctx->psoc, vdev_id, ¶m);
|
wlan_cm_roam_set_vendor_btm_params(hdd_ctx->psoc, vdev_id, ¶m);
|
||||||
|
/* Sends RSO update */
|
||||||
sme_send_vendor_btm_params(hdd_ctx->mac_handle, vdev_id);
|
sme_send_vendor_btm_params(hdd_ctx->mac_handle, vdev_id);
|
||||||
|
|
||||||
return qdf_status_to_os_return(status);
|
return qdf_status_to_os_return(status);
|
||||||
|
@@ -824,6 +824,10 @@ static void csr_neighbor_roam_info_ctx_init(struct mac_context *mac,
|
|||||||
src_cfg.uint_value = mac->mlme_cfg->lfr.roam_scan_hi_rssi_delay;
|
src_cfg.uint_value = mac->mlme_cfg->lfr.roam_scan_hi_rssi_delay;
|
||||||
wlan_cm_roam_cfg_set_value(mac->psoc, session_id,
|
wlan_cm_roam_cfg_set_value(mac->psoc, session_id,
|
||||||
HI_RSSI_DELAY_BTW_SCANS, &src_cfg);
|
HI_RSSI_DELAY_BTW_SCANS, &src_cfg);
|
||||||
|
|
||||||
|
wlan_cm_update_roam_scan_scheme_bitmap(mac->psoc, session_id,
|
||||||
|
DEFAULT_ROAM_SCAN_SCHEME_BITMAP);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now we can clear the preauthDone that
|
* Now we can clear the preauthDone that
|
||||||
* was saved as we are connected afresh
|
* was saved as we are connected afresh
|
||||||
|
Reference in New Issue
Block a user