diff --git a/umac/scan/core/src/wlan_scan_cache_db.c b/umac/scan/core/src/wlan_scan_cache_db.c
index 701a33d..f77aba7 100644
--- a/umac/scan/core/src/wlan_scan_cache_db.c
+++ b/umac/scan/core/src/wlan_scan_cache_db.c
@@ -1463,7 +1463,7 @@
  * scm_filter_channels() - Remove entries not belonging to channel list
  * @scan_db: scan db
  * @db_node: node on which filters are applied
- * @chan_list: valid channel list
+ * @chan_freq_list: valid channel frequency (in MHz) list
  * @num_chan: number of channels
  *
  * Return: QDF_STATUS
@@ -1471,17 +1471,14 @@
 static void scm_filter_channels(struct wlan_objmgr_pdev *pdev,
 				struct scan_dbs *scan_db,
 				struct scan_cache_node *db_node,
-				uint8_t *chan_list, uint32_t num_chan)
+				uint32_t *chan_freq_list, uint32_t num_chan)
 {
 	int i;
 	bool match = false;
 
 	for (i = 0; i < num_chan; i++) {
-		if (chan_list[i] ==
-			wlan_reg_freq_to_chan(
-				pdev,
-				util_scan_entry_channel_frequency(
-							db_node->entry))) {
+		if (chan_freq_list[i] == util_scan_entry_channel_frequency(
+							db_node->entry)) {
 			match = true;
 			break;
 		}
@@ -1495,7 +1492,7 @@
 }
 
 void scm_filter_valid_channel(struct wlan_objmgr_pdev *pdev,
-	uint8_t *chan_list, uint32_t num_chan)
+	uint32_t *chan_freq_list, uint32_t num_chan)
 {
 	int i;
 	struct wlan_objmgr_psoc *psoc;
@@ -1527,7 +1524,7 @@
 			   &scan_db->scan_hash_tbl[i], NULL);
 		while (cur_node) {
 			scm_filter_channels(pdev, scan_db,
-					    cur_node, chan_list, num_chan);
+					    cur_node, chan_freq_list, num_chan);
 			next_node = scm_get_next_node(scan_db,
 				&scan_db->scan_hash_tbl[i], cur_node);
 			cur_node = next_node;
diff --git a/umac/scan/core/src/wlan_scan_cache_db.h b/umac/scan/core/src/wlan_scan_cache_db.h
index 5de55d5..570c30f 100644
--- a/umac/scan/core/src/wlan_scan_cache_db.h
+++ b/umac/scan/core/src/wlan_scan_cache_db.h
@@ -145,7 +145,7 @@
  * scm_filter_valid_channel() - The Public API to filter scan result
  * based on valid channel list
  * @pdev: pdev object
- * @chan_list: valid channel list
+ * @chan_freq_list: valid channel frequency (in MHz) list
  * @num_chan: number of valid channels
  *
  * The Public API to to filter scan result
@@ -154,7 +154,7 @@
  * Return: void.
  */
 void scm_filter_valid_channel(struct wlan_objmgr_pdev *pdev,
-	uint8_t *chan_list, uint32_t num_chan);
+	uint32_t *chan_freq_list, uint32_t num_chan);
 
 /**
  * scm_iterate_scan_db() - function to iterate scan table
diff --git a/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h b/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h
index d93f257..7a9b914 100644
--- a/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h
+++ b/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h
@@ -363,7 +363,7 @@
  * ucfg_scan_filter_valid_channel() - The Public API to filter scan result
  * based on valid channel list
  * @pdev: pdev object
- * @chan_list: valid channel list
+ * @chan_freq_list: valid channel frequency (in MHz) list
  * @num_chan: number of valid channels
  *
  * The Public API to to filter scan result
@@ -372,7 +372,7 @@
  * Return: void.
  */
 void ucfg_scan_filter_valid_channel(struct wlan_objmgr_pdev *pdev,
-	uint8_t *chan_list, uint32_t num_chan);
+	uint32_t *chan_freq_list, uint32_t num_chan);
 
 /**
  * ucfg_scan_db_iterate() - function to iterate scan table
diff --git a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c
index c977082..3a8e3ec 100644
--- a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c
+++ b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c
@@ -71,9 +71,9 @@
 }
 
 void ucfg_scan_filter_valid_channel(struct wlan_objmgr_pdev *pdev,
-	uint8_t *chan_list, uint32_t num_chan)
+	uint32_t *chan_freq_list, uint32_t num_chan)
 {
-	scm_filter_valid_channel(pdev, chan_list, num_chan);
+	scm_filter_valid_channel(pdev, chan_freq_list, num_chan);
 }
 
 QDF_STATUS ucfg_scan_init(void)
