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;
}