qcacmn: Use enum roam_trigger_reason for fw bitmap conversion
From upper layers the vendor specific control roam bitmap is converted to unified enum roam_trigger reason. From this bitmap, deriver the fw trigger reason bitmap at convert_control_roam_trigger_reason_bitmap. Depreciate the roam_control_trigger_reason enum. Change-Id: I64ac273d88b696c32c5b72462454a8983774ef90 CRs-Fixed: 2631968
This commit is contained in:

committed by
nshrivas

parent
42e17e09b4
commit
7a60a81d3a
@@ -462,6 +462,7 @@ struct scoring_param {
|
|||||||
* ROAM_TRIGGER_REASON_DEAUTH: Roam triggered due to deauth received from the
|
* ROAM_TRIGGER_REASON_DEAUTH: Roam triggered due to deauth received from the
|
||||||
* current connected AP.
|
* current connected AP.
|
||||||
* ROAM_TRIGGER_REASON_IDLE: Roam triggered due to inactivity of the device.
|
* ROAM_TRIGGER_REASON_IDLE: Roam triggered due to inactivity of the device.
|
||||||
|
* ROAM_TRIGGER_REASON_STA_KICKOUT: Roam triggered due to sta kickout event.
|
||||||
* ROAM_TRIGGER_REASON_MAX: Maximum number of roam triggers
|
* ROAM_TRIGGER_REASON_MAX: Maximum number of roam triggers
|
||||||
*/
|
*/
|
||||||
enum roam_trigger_reason {
|
enum roam_trigger_reason {
|
||||||
@@ -480,6 +481,7 @@ enum roam_trigger_reason {
|
|||||||
ROAM_TRIGGER_REASON_BSS_LOAD,
|
ROAM_TRIGGER_REASON_BSS_LOAD,
|
||||||
ROAM_TRIGGER_REASON_DEAUTH,
|
ROAM_TRIGGER_REASON_DEAUTH,
|
||||||
ROAM_TRIGGER_REASON_IDLE,
|
ROAM_TRIGGER_REASON_IDLE,
|
||||||
|
ROAM_TRIGGER_REASON_STA_KICKOUT,
|
||||||
ROAM_TRIGGER_REASON_MAX,
|
ROAM_TRIGGER_REASON_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -765,41 +767,6 @@ struct wmi_invoke_neighbor_report_params {
|
|||||||
struct mac_ssid ssid;
|
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
|
* struct roam_triggers - vendor configured roam triggers
|
||||||
* @vdev_id: vdev id
|
* @vdev_id: vdev id
|
||||||
|
@@ -2474,34 +2474,58 @@ convert_control_roam_trigger_reason_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 = (ROAM_CONTROL_TRIGGER_REASON_BSS_LOAD << 1) - 1;
|
all_bitmap = BIT(ROAM_TRIGGER_REASON_MAX) - 1;
|
||||||
if (trigger_reason_bitmap == all_bitmap)
|
if (trigger_reason_bitmap == all_bitmap)
|
||||||
return (BIT(WMI_ROAM_TRIGGER_REASON_MAX) - 1);
|
return BIT(WMI_ROAM_TRIGGER_EXT_REASON_MAX) - 1;
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_PER)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_NONE))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_NONE);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_PER))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_PER);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_PER);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_BEACON_MISS)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_BMISS))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BMISS);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BMISS);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_POOR_RSSI)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_LOW_RSSI))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_LOW_RSSI);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_LOW_RSSI);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_BETTER_RSSI)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_HIGH_RSSI))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_HIGH_RSSI);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_HIGH_RSSI);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_PERIODIC)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_PERIODIC))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_PERIODIC);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_PERIODIC);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_DENSE)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_MAWC))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_MAWC);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_DENSE))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_DENSE);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_DENSE);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_BTM)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_BACKGROUND))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BACKGROUND);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_FORCED))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_FORCED);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_BTM))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BTM);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BTM);
|
||||||
|
|
||||||
if (trigger_reason_bitmap & ROAM_CONTROL_TRIGGER_REASON_BSS_LOAD)
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_UNIT_TEST))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_UNIT_TEST);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_BSS_LOAD))
|
||||||
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BSS_LOAD);
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_BSS_LOAD);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_DEAUTH))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_DEAUTH);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_IDLE))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_IDLE);
|
||||||
|
|
||||||
|
if (trigger_reason_bitmap & BIT(ROAM_TRIGGER_REASON_STA_KICKOUT))
|
||||||
|
fw_trigger_bitmap |= BIT(WMI_ROAM_TRIGGER_REASON_STA_KICKOUT);
|
||||||
|
|
||||||
return fw_trigger_bitmap;
|
return fw_trigger_bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user