qcacld-3.0: Process the BAND_MASK attribute
Process the BAND_MASK attribute which comes to the host via the QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET vendor command. Save the value of this band mask into the RSO configuration structure. Change-Id: I57ecc10912a38207ef478b38cf3add3c584dd2f4 CRs-Fixed: 3009749
This commit is contained in:

committed by
Madan Koyyalamudi

parent
cfa33dc393
commit
0697018d60
@@ -4311,6 +4311,8 @@ static void cm_roam_start_init(struct wlan_objmgr_psoc *psoc,
|
||||
DEFAULT_ROAM_SCAN_SCHEME_BITMAP);
|
||||
wlan_cm_roam_cfg_get_value(psoc, vdev_id,
|
||||
MOBILITY_DOMAIN, &src_cfg);
|
||||
wlan_cm_set_roam_band_bitmask(psoc, vdev_id, REG_BAND_MASK_ALL);
|
||||
|
||||
mdie_present = src_cfg.bool_value;
|
||||
/* Based on the auth scheme tell if we are 11r */
|
||||
if (cm_is_auth_type_11r(mlme_obj, vdev, mdie_present)) {
|
||||
|
@@ -880,6 +880,19 @@ wlan_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
uint32_t roam_scan_scheme_bitmap);
|
||||
|
||||
/**
|
||||
* wlan_cm_set_roam_band_bitmask() - Set roam band bitmask for vdev
|
||||
* @psoc: psoc pointer
|
||||
* @vdev_id: vdev id
|
||||
* @roam_band_bitmask: bitmask of roam band for which roam scan needs to be
|
||||
* enabled in fw
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_cm_set_roam_band_bitmask(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
uint32_t roam_band_bitmask);
|
||||
|
||||
/**
|
||||
* wlan_cm_get_roam_scan_scheme_bitmap() - Get roam scan scheme bitmap value
|
||||
* @psoc: PSOC pointer
|
||||
@@ -1113,6 +1126,13 @@ wlan_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
wlan_cm_set_roam_band_bitmask(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
uint32_t roam_band_bitmask)
|
||||
{
|
||||
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)
|
||||
|
@@ -337,6 +337,7 @@ struct roam_synch_frame_ind {
|
||||
* wmi_roam_invoke_status_error in case of forced roam
|
||||
* @lost_link_rssi: lost link RSSI
|
||||
* @roam_sync_frame_ind: roam sync frame ind
|
||||
* @roam_band_bitmask: This allows the driver to roam within this band
|
||||
*/
|
||||
struct rso_config {
|
||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||
@@ -381,6 +382,7 @@ struct rso_config {
|
||||
uint32_t roam_invoke_fail_reason;
|
||||
int32_t lost_link_rssi;
|
||||
struct roam_synch_frame_ind roam_sync_frame_ind;
|
||||
uint32_t roam_band_bitmask;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -486,6 +488,7 @@ struct rso_config_params {
|
||||
* @HS_20_AP: Hotspot 2.0 AP
|
||||
* @MBO_OCE_ENABLED_AP: MBO/OCE enabled network
|
||||
* @LOST_LINK_RSSI: lost link RSSI
|
||||
* @ROAM_BAND: Allowed band for roaming in FW
|
||||
*/
|
||||
enum roam_cfg_param {
|
||||
RSSI_CHANGE_THRESHOLD,
|
||||
@@ -514,6 +517,7 @@ enum roam_cfg_param {
|
||||
MBO_OCE_ENABLED_AP,
|
||||
IS_SINGLE_PMK,
|
||||
LOST_LINK_RSSI,
|
||||
ROAM_BAND,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -122,6 +122,14 @@ ucfg_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
return wlan_cm_update_roam_scan_scheme_bitmap(psoc, vdev_id,
|
||||
roam_scan_scheme_bitmap);
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
ucfg_cm_set_roam_band_mask(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
uint32_t roam_band_mask)
|
||||
{
|
||||
return wlan_cm_set_roam_band_bitmask(psoc, vdev_id, roam_band_mask);
|
||||
}
|
||||
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
ucfg_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
@@ -130,6 +138,13 @@ ucfg_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
ucfg_cm_set_roam_band_mask(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
uint32_t roam_band_mask)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -1181,6 +1181,11 @@ wlan_cm_roam_cfg_set_value(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
case LOST_LINK_RSSI:
|
||||
rso_cfg->lost_link_rssi = src_config->int_value;
|
||||
break;
|
||||
case ROAM_BAND:
|
||||
rso_cfg->roam_band_bitmask = src_config->uint_value;
|
||||
mlme_debug("[ROAM BAND] Set roam band:%d",
|
||||
rso_cfg->roam_band_bitmask);
|
||||
break;
|
||||
default:
|
||||
mlme_err("Invalid roam config requested:%d", roam_cfg_type);
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
@@ -1925,6 +1930,17 @@ wlan_cm_update_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_cm_set_roam_band_bitmask(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
uint32_t roam_band_bitmask)
|
||||
{
|
||||
struct cm_roam_values_copy src_config;
|
||||
|
||||
src_config.uint_value = roam_band_bitmask;
|
||||
return wlan_cm_roam_cfg_set_value(psoc, vdev_id, ROAM_BAND,
|
||||
&src_config);
|
||||
}
|
||||
|
||||
uint32_t wlan_cm_get_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
|
Reference in New Issue
Block a user