qcacld-3.0: Send RSO command (any type) only in connected state
Currently the driver sends the update cfg RSO command to the FW, which updates the channel list to which the FW should roam to find other BSSIDs. Before the connection is established all the channels are sent to the FW, but after the connection is established only few channels are present which reduces the scan time, and reconnection time to the new BSSID. But when the FW gets the new channel list as part of RSO after th connection, it appends the new channels with the previous list that it received, and hence scans all the channels when roaming happens, which in turn consumes power, and reduces battery life with no extra advantage. Fix is to reject the update cfg command in the disconnected state as whatever updates are done are cached in the driver, and are always sent to the FW after the connection is established. There is no point to send the updated cfg params everytime, if the driver already sends the command just after the connection. Change-Id: I19caf194edc1dc038abdfb5b03e69afba48ffc89 CRs-Fixed: 2469350
This commit is contained in:
parent
d816ec54b6
commit
6cf277e8c9
@ -19506,6 +19506,12 @@ csr_roam_offload_scan(struct mac_context *mac_ctx, uint8_t session_id,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!csr_is_conn_state_connected(mac_ctx, session_id) &&
|
||||||
|
command == ROAM_SCAN_OFFLOAD_UPDATE_CFG) {
|
||||||
|
sme_debug("Session not in connected state, RSO not sent");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
temp_session_id = csr_get_roam_enabled_sta_sessionid(mac_ctx);
|
temp_session_id = csr_get_roam_enabled_sta_sessionid(mac_ctx);
|
||||||
if ((temp_session_id != WLAN_UMAC_VDEV_ID_MAX) &&
|
if ((temp_session_id != WLAN_UMAC_VDEV_ID_MAX) &&
|
||||||
(session_id != temp_session_id)) {
|
(session_id != temp_session_id)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user