From 09e5503fe76ba8432e94bcb6b972a026d37ce01d Mon Sep 17 00:00:00 2001 From: Krunal Soni Date: Tue, 7 Jun 2016 10:06:55 -0700 Subject: [PATCH] qcacld-3.0: Don't set operating channel before ROC gets finished Vendor cmd(QCA_NL80211_VENDOR_SUBCMD_SET_PROBABLE_OPER_CHANNEL) in supplicant has been designed to notify the driver about operating channel right after go negotiation is completed, so that driver can get going with HW mode change little ahead of time before the change iface/add iface req comes down from supplicant for the CLI role. But it looks like the cmd is coming even before RoC cancellation is done for the completed negotiation. So, this delays the HW mode change req in FW as FW thinks the scan (on going RoC) is not complete yet. As a result it waits for the RoC to finish before entertaining the HW mode change req. To fix this situation, don't set probable operating channel till RoC gets finished. CRs-Fixed: 1025390 Change-Id: I8b3df2259f71cf51b8ffc8b9a50edad7fea81d13 --- core/hdd/src/wlan_hdd_cfg80211.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index fd05af138484..9dd232406134 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -4484,6 +4484,9 @@ static int __wlan_hdd_cfg80211_set_probable_oper_channel(struct wiphy *wiphy, return -EINVAL; } + if (0 != wlan_hdd_check_remain_on_channel(adapter)) + hdd_warn("Remain On Channel Pending"); + if (hdd_ctx->config->policy_manager_enabled) { ret = qdf_reset_connection_update(); if (!QDF_IS_STATUS_SUCCESS(ret))