diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 39ab92d..476be41 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -76,6 +76,7 @@
 const char * cmd_remove_all = "REMOVE_NETWORK all";
 const char * state_scan_result = "CTRL-EVENT-SCAN-RESULTS";
 const char * STATE_COMPLETED = "COMPLETED";
+const char * STATE_SCANNING = "SCANNING";
 const char * STATE_DISCONNECTED = "DISCONNECTED";
 
 const char * cmd_ping = "PING";
@@ -2447,14 +2448,14 @@
     curr_state.state = status;
 
     printf("inner_check_ap_connected %d\n", retry_count);
-    usleep(500*1000);
+    usleep(250*1000);
     if (0 == inner_get_status_info(idx, &curr_state))
     {
-        if (strcmp(status, STATE_COMPLETED) == 0)
+        if ((strcmp(status, STATE_SCANNING) == 0)|| (strcmp(status, STATE_COMPLETED) == 0))
         {
             return 0;
         }
-        else if (retry_count == 4) //not ok in 2s, do reconnect
+        else if (retry_count == 8) //not ok in 2s, do reconnect
         {
             DO_REQUEST("RECONNECT");
             return inner_check_ap_connected(idx, retry_count+1);
@@ -2479,10 +2480,9 @@
 
 int lynq_wifi_ap_start(lynq_wifi_index_e idx)
 {
+    RLOGD("[lynq_wifi]----enter lynq_wifi_ap_start");
     char LYNQ_WIFI_CMD[128]={0};
-    //const char *lynq_remove_all_cmd = "REMOVE_NETWORK all";
-    //const char *lynq_reconfig_cmd = "RECONFIGURE /data/wifi/wg870/wpa_supplicant.conf";
-    RLOGD("enter lynq_wifi_ap_channel_get");
+    
     CHECK_IDX(idx, CTRL_AP);
 
     CHECK_WPA_CTRL(CTRL_AP);
@@ -2493,9 +2493,6 @@
         return -1;
     }
 
-    //DO_OK_FAIL_REQUEST(lynq_remove_all_cmd);
-    //DO_OK_FAIL_REQUEST(lynq_reconfig_cmd);
-
     sprintf(LYNQ_WIFI_CMD,"SELECT_NETWORK %d",AP_NETWORK_0);
     DO_OK_FAIL_REQUEST(LYNQ_WIFI_CMD);
 
@@ -2522,7 +2519,7 @@
         }
         RLOGD("[lynq_wifi_ap_start] creat APTmpWatcherThreadProc ok");
     }
-
+    RLOGD("[lynq_wifi]----end lynq_wifi_ap_start");
     return 0;
 }
 
