瀏覽代碼

qcacmn: Configure full scan period to firmware along with scan period

Full scan period is the idle period in seconds between two
successive full channel roam scans. Configure this to firmware
along with scan period as part of roam_scan_offload request

Change-Id: I3d629f0735b50a5b8116b422779ae423c15cae1d
CRs-Fixed: 2507604
Srinivas Dasari 5 年之前
父節點
當前提交
5276ece978
共有 2 個文件被更改,包括 13 次插入4 次删除
  1. 3 0
      wmi/inc/wmi_unified_roam_param.h
  2. 10 4
      wmi/src/wmi_unified_roam_tlv.c

+ 3 - 0
wmi/inc/wmi_unified_roam_param.h

@@ -139,6 +139,8 @@ struct roam_offload_scan_rssi_params {
  * roam_scan_inactivity_time.
  * @roam_scan_period_after_inactivity: Roam scan period in ms after device is
  * in inactive state.
+ * @full_scan_period: Full scan period is the idle period in seconds
+ * between two successive full channel roam scans.
  */
 struct roam_scan_period_params {
 	uint32_t vdev_id;
@@ -147,6 +149,7 @@ struct roam_scan_period_params {
 	uint32_t roam_scan_inactivity_time;
 	uint32_t roam_inactive_data_packet_count;
 	uint32_t roam_scan_period_after_inactivity;
+	uint32_t full_scan_period;
 };
 
 /**

+ 10 - 4
wmi/src/wmi_unified_roam_tlv.c

@@ -1823,7 +1823,7 @@ send_roam_scan_offload_scan_period_cmd_tlv(
 			       (wmi_roam_scan_period_fixed_param));
 	/* fill in scan period values */
 	scan_period_fp->vdev_id = param->vdev_id;
-	scan_period_fp->roam_scan_period = param->scan_period; /* 20 seconds */
+	scan_period_fp->roam_scan_period = param->scan_period;
 	scan_period_fp->roam_scan_age = param->scan_age;
 	scan_period_fp->inactivity_time_period =
 			param->roam_scan_inactivity_time;
@@ -1831,10 +1831,16 @@ send_roam_scan_offload_scan_period_cmd_tlv(
 			param->roam_inactive_data_packet_count;
 	scan_period_fp->roam_scan_period_after_inactivity =
 			param->roam_scan_period_after_inactivity;
+	/* Firmware expects the full scan preriod in msec whereas host
+	 * provides the same in seconds.
+	 * Convert it to msec and send to firmware
+	 */
+	scan_period_fp->roam_full_scan_period = param->full_scan_period * 1000;
 
-	WMI_LOGD("%s: roam_scan_period=%d, roam_scan_age=%d", __func__,
-		 scan_period_fp->roam_scan_period,
-		 scan_period_fp->roam_scan_age);
+	WMI_LOGD("%s: roam_scan_period=%d, roam_scan_age=%d, full_scan_period= %u",
+		 __func__, scan_period_fp->roam_scan_period,
+		 scan_period_fp->roam_scan_age,
+		 scan_period_fp->roam_full_scan_period);
 	WMI_LOGD("%s: inactiviy period:%d inactive count:%d period after inactivity:%d",
 		 __func__, scan_period_fp->inactivity_time_period,
 		 scan_period_fp->roam_inactive_count,