qcacmn: Configure roam trigger bitmap to firmware
Userspace may configure the roam trigger bitmap to WLAN host driver to enable particular roam trigger reasons. Convert the bitmap to the format of firmware trigger reason bitmap and send to firmware. Change-Id: I9fc78c180bd25c995dfd380f80e52e3eb302fce3 CRs-Fixed: 2507611
This commit is contained in:

committed by
nshrivas

parent
31435bbef5
commit
de39f3fc40
@@ -1999,6 +1999,9 @@ QDF_STATUS (*extract_oem_response_param)
|
||||
QDF_STATUS (*extract_hw_mode_resp_event)(wmi_unified_t wmi_handle,
|
||||
void *evt_buf, uint32_t *cmd_status);
|
||||
|
||||
QDF_STATUS (*send_set_roam_trigger_cmd)(wmi_unified_t wmi_handle,
|
||||
uint32_t vdev_id,
|
||||
uint32_t trigger_bitmap);
|
||||
};
|
||||
|
||||
/* Forward declartion for psoc*/
|
||||
|
@@ -381,4 +381,17 @@ QDF_STATUS wmi_unified_invoke_neighbor_report_cmd(
|
||||
wmi_unified_t wmi_handle,
|
||||
struct wmi_invoke_neighbor_report_params *params);
|
||||
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
/**
|
||||
* wmi_unified_set_roam_triggers() - send roam trigger bitmap
|
||||
* @wmi_handle: wmi handle
|
||||
* @triggers: Roam trigger bitmap params as defined @roam_control_trigger_reason
|
||||
*
|
||||
* This function passes the roam trigger bitmap to fw
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||
*/
|
||||
QDF_STATUS wmi_unified_set_roam_triggers(wmi_unified_t wmi_handle,
|
||||
struct roam_triggers *triggers);
|
||||
#endif
|
||||
#endif /* _WMI_UNIFIED_ROAM_API_H_ */
|
||||
|
@@ -761,4 +761,50 @@ struct wmi_invoke_neighbor_report_params {
|
||||
struct mac_ssid ssid;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum roam_control_trigger_reason - Bitmap of roaming triggers
|
||||
*
|
||||
* @ROAM_TRIGGER_REASON_PER: Set if the roam has to be triggered based on
|
||||
* a bad packet error rates (PER).
|
||||
* @ROAM_TRIGGER_REASON_BEACON_MISS: Set if the roam has to be triggered
|
||||
* based on beacon misses from the connected AP.
|
||||
* @ROAM_TRIGGER_REASON_POOR_RSSI: Set if the roam has to be triggered
|
||||
* due to poor RSSI of the connected AP.
|
||||
* @ROAM_TRIGGER_REASON_BETTER_RSSI: Set if the roam has to be triggered
|
||||
* upon finding a BSSID with a better RSSI than the connected BSSID.
|
||||
* Here the RSSI of the current BSSID need not be poor.
|
||||
* @ROAM_TRIGGER_REASON_PERIODIC: Set if the roam has to be triggered
|
||||
* by triggering a periodic scan to find a better AP to roam.
|
||||
* @ROAM_TRIGGER_REASON_DENSE: Set if the roam has to be triggered
|
||||
* when the connected channel environment is too noisy/congested.
|
||||
* @ROAM_TRIGGER_REASON_BTM: Set if the roam has to be triggered
|
||||
* when BTM Request frame is received from the connected AP.
|
||||
* @ROAM_TRIGGER_REASON_BSS_LOAD: Set if the roam has to be triggered
|
||||
* when the channel utilization is goes above the configured threshold.
|
||||
*
|
||||
* Set the corresponding roam trigger reason bit to consider it for roam
|
||||
* trigger.
|
||||
*/
|
||||
enum roam_control_trigger_reason {
|
||||
ROAM_CONTROL_TRIGGER_REASON_PER = 1 << 0,
|
||||
ROAM_CONTROL_TRIGGER_REASON_BEACON_MISS = 1 << 1,
|
||||
ROAM_CONTROL_TRIGGER_REASON_POOR_RSSI = 1 << 2,
|
||||
ROAM_CONTROL_TRIGGER_REASON_BETTER_RSSI = 1 << 3,
|
||||
ROAM_CONTROL_TRIGGER_REASON_PERIODIC = 1 << 4,
|
||||
ROAM_CONTROL_TRIGGER_REASON_DENSE = 1 << 5,
|
||||
ROAM_CONTROL_TRIGGER_REASON_BTM = 1 << 6,
|
||||
ROAM_CONTROL_TRIGGER_REASON_BSS_LOAD = 1 << 7,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct roam_triggers - vendor configured roam triggers
|
||||
* @vdev_id: vdev id
|
||||
* @trigger_bitmap: vendor configured roam trigger bitmap as
|
||||
* defined @enum roam_control_trigger_reason
|
||||
*/
|
||||
struct roam_triggers {
|
||||
uint32_t vdev_id;
|
||||
uint32_t trigger_bitmap;
|
||||
};
|
||||
|
||||
#endif /* _WMI_UNIFIED_ROAM_PARAM_H_ */
|
||||
|
Reference in New Issue
Block a user