Merge "[Bugfix][API-621][wifi]wifi add api to set diffrent channel with frequency" into drv_fw
diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 8867126..49e664e 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -801,16 +801,44 @@
     return 0;
 }
 
+/*****
+ *frequency  <------>channel
+ *
+ *frequency   1    2    3    4    5    6    7    8    9   10   11   12   13   36   40   44   48   149  153  157  161  165
+ *
+ *
+ *channel     2412,2417,2422,2427,2532,2437,2442,2447,2452,2457,2462,2467,2472,5180,5200,5220,5240,5745,5765,5785,5805,5825
+ *
+ *
+ * */ 
+static int lynq_check_set_frequency(int input_frequency){
+    static int legitimate_frequency[21]={2412,2417,2422,2427,2432,2437,2442,2447,2452,2457,2462,2467,2472,5180,5200,5220,5240,5745,5765,5785,5805,5825};
+    int i = 0;
+    int flag_check = 0;
+    for(i=0 ;i<= 21; i++){
+        if(input_frequency == legitimate_frequency[i]){
+            flag_check = 1;
+            break;
+        }
+    }
+    if(flag_check == 1){
+        printf("input frequency in range\n");
+    }else{
+        printf("input frequency is eero--->%d,please check it\n",input_frequency);
+        return -1;
+    }
+    return 0;
+}
 int lynq_wifi_ap_frequency_set(lynq_wifi_index_e idx,int lynq_wifi_frequency)
 {
-	char lynq_wifi_frequency_cmd[128]={0};
-	char lynq_cmd_mode[128]={0};
+    char lynq_wifi_frequency_cmd[128]={0};
+    char lynq_cmd_mode[128]={0};
     char lynq_cmd_slect[128]={0};
 
-    if((lynq_wifi_frequency != 2437) && (lynq_wifi_frequency != 5180)){
-        PRINT_AND_RETURN_VALUE("set frequency not in range",-1);
+    //@do check input frequency
+    if((lynq_check_set_frequency(lynq_wifi_frequency)) != 0){
+        return -1;
     }
-
     if (lynq_check_network_number(idx, CTRL_AP, AP_NETWORK_0) != 0) {
         return -1;
     }