bcmdhd: Fixed FW roaming state command behavior
Roam didn’t trigger even though RSSI is very low.
It happened due to FW roaming state command behavior under DUAL-STA scenario.
Currently, the driver set roam_off to true for all associated interfaces
if the framework calls wl_cfgvendor_set_fw_roaming_state to disable roaming.
This makes mismatched state between driver and framework, so that this issue happened.
The driver will act as follows:
1. If the framework calls wl_cfgvendor_set_fw_roaming_state to disable roaming,
roam_off set to true for passed interface. (wlan0 or wlan1)
2. If the framework calls wl_cfgvendor_set_fw_roaming_state to enable roaming,
a. If associated_STA >=1, roam_off is set/keep to false for primary STA.
b. If associated_STA == 0, roam_off is set to false for the passed interface. (wlan0 or wlan1)
Bug: 198819971
Test: build done, it works properly on Hikey board. Will verify more on R4/O6 platforms.
Change-Id: Ie5cebc021d4fe3659107c14fd40104bd4c4811c5
Merged-In: Ie5cebc021d4fe3659107c14fd40104bd4c4811c5
Signed-off-by: Isaac Chiou <isaacchiou@google.com>
1 file changed