소스 검색

qcacld-3.0: Enable wakelock for enhanced CFR capture

There is potential risk when starting CFR and resume happens at same
time. Wake lock is added to CFR component, and this change enables
wake lock for enhanced CFR.

Change-Id: I1ebe8c11fad66b66adcad0b551756abf2c010cde
CRs-Fixed: 2977699
Wu Gao 3 년 전
부모
커밋
9a64793130
2개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      Kbuild
  2. 5 0
      core/hdd/src/wlan_hdd_cfr.c

+ 1 - 0
Kbuild

@@ -2816,6 +2816,7 @@ cppflags-$(CONFIG_HDD_INIT_WITH_RTNL_LOCK) += -DCONFIG_HDD_INIT_WITH_RTNL_LOCK
 cppflags-$(CONFIG_WLAN_CONV_SPECTRAL_ENABLE) += -DWLAN_CONV_SPECTRAL_ENABLE
 cppflags-$(CONFIG_WLAN_CONV_SPECTRAL_ENABLE) += -DWLAN_CONV_SPECTRAL_ENABLE
 cppflags-$(CONFIG_WLAN_CFR_ENABLE) += -DWLAN_CFR_ENABLE
 cppflags-$(CONFIG_WLAN_CFR_ENABLE) += -DWLAN_CFR_ENABLE
 cppflags-$(CONFIG_WLAN_ENH_CFR_ENABLE) += -DWLAN_ENH_CFR_ENABLE
 cppflags-$(CONFIG_WLAN_ENH_CFR_ENABLE) += -DWLAN_ENH_CFR_ENABLE
+cppflags-$(CONFIG_WLAN_ENH_CFR_ENABLE) += -DWLAN_CFR_PM
 cppflags-$(CONFIG_WLAN_CFR_ENABLE) += -DCFR_USE_FIXED_FOLDER
 cppflags-$(CONFIG_WLAN_CFR_ENABLE) += -DCFR_USE_FIXED_FOLDER
 cppflags-$(CONFIG_WLAN_FEATURE_MEDIUM_ASSESS) += -DWLAN_FEATURE_MEDIUM_ASSESS
 cppflags-$(CONFIG_WLAN_FEATURE_MEDIUM_ASSESS) += -DWLAN_FEATURE_MEDIUM_ASSESS
 cppflags-$(CONFIG_FEATURE_RADAR_HISTORY) += -DFEATURE_RADAR_HISTORY
 cppflags-$(CONFIG_FEATURE_RADAR_HISTORY) += -DFEATURE_RADAR_HISTORY

+ 5 - 0
core/hdd/src/wlan_hdd_cfr.c

@@ -501,11 +501,16 @@ wlan_cfg80211_peer_enh_cfr_capture(struct hdd_adapter *adapter,
 		hdd_debug("cleanup rcc mode");
 		hdd_debug("cleanup rcc mode");
 		ucfg_cfr_set_rcc_mode(vdev, RCC_DIS_ALL_MODE, 0);
 		ucfg_cfr_set_rcc_mode(vdev, RCC_DIS_ALL_MODE, 0);
 	}
 	}
+
+	if (is_start_capture)
+		ucfg_cfr_resume(wlan_vdev_get_pdev(vdev));
+
 	ucfg_cfr_subscribe_ppdu_desc(wlan_vdev_get_pdev(vdev),
 	ucfg_cfr_subscribe_ppdu_desc(wlan_vdev_get_pdev(vdev),
 				     is_start_capture);
 				     is_start_capture);
 	ucfg_cfr_committed_rcc_config(vdev);
 	ucfg_cfr_committed_rcc_config(vdev);
 	if (!is_start_capture) {
 	if (!is_start_capture) {
 		ucfg_cfr_stop_indication(vdev);
 		ucfg_cfr_stop_indication(vdev);
+		ucfg_cfr_suspend(wlan_vdev_get_pdev(vdev));
 		hdd_debug("stop indication done");
 		hdd_debug("stop indication done");
 	}
 	}