ソースを参照

qcacld-3.0: Fix force SCC for Autonomous GO+GO

Currently "is_forcescc_restart_required" flag is updated
for first go when any new go comes up. Force scc is
done as part of set key and it is expected that when CLI
joins second GO, first GO moves to new GO's channel but in
case of AUTO GO when no client is connected to first GO
and second GO comes up then "is_forcescc_restart_required"
is set for existing GO but when any client joins first GO
then as part of set key CSA is triggered for same target and
current frequency because "is_forcescc_restart_required" is true
for first AUTO GO. As target and current frequencies are same,
CSA fails and "is_forcescc_restart_required" sets to false. When
CLI joins second GO then CSA for first GO doesn't happen as
"is_forcescc_restart_required" is already changed to false as
part of first CSA attempt.

Fix is to trigger CSA only if current and target session ids are
different.

Change-Id: Ib875cdd93e08f4edc912589b867b733a1d57bdf3
CRs-Fixed: 3067847
sheenam monga 3 年 前
コミット
1c91e56fc7
1 ファイル変更6 行追加4 行削除
  1. 6 4
      core/sap/src/sap_api_link_cntl.c

+ 6 - 4
core/sap/src/sap_api_link_cntl.c

@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -865,10 +866,11 @@ sap_check_and_process_forcescc_for_go_plus_go(
 		sap_ctx = mac_ctx->sap.sapCtxList[i].sap_context;
 		if (sap_ctx &&
 		    QDF_P2P_GO_MODE == mac_ctx->sap.sapCtxList[i].sapPersona &&
-		    sap_ctx->is_forcescc_restart_required) {
-			sap_debug("sessionId %d chan_freq %d chan_width %d",
-				  sap_ctx->sessionId, cur_sap_ctx->chan_freq,
-				  cur_sap_ctx->ch_params.ch_width);
+		    sap_ctx->is_forcescc_restart_required &&
+		    cur_sap_ctx->sessionId != sap_ctx->sessionId) {
+			sap_debug("update chan_freq %d of sessionId %d with chan_freq %d",
+				  sap_ctx->chan_freq, sap_ctx->sessionId,
+				  cur_sap_ctx->chan_freq);
 			policy_mgr_process_forcescc_for_go(
 				mac_ctx->psoc, sap_ctx->sessionId,
 				cur_sap_ctx->chan_freq,