Przeglądaj źródła

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 lat temu
rodzic
commit
5276ece978
2 zmienionych plików z 13 dodań i 4 usunięć
  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,