[Bugfix][API-1395]fix unable to retry whitin the progression

Only Configure:No
Affected branch:GSW3.0-No-Connman
Affected module:GNSS
Is it affected on both ZXIC and MTK:only MTK,
Self-test:Yes,
Doc Update:NO.

Change-Id: Ia3003a47332425f43a2a10fcd9ba18feece9bd22
diff --git a/lib/liblynq-gnss/src/lynq_gnss.c b/lib/liblynq-gnss/src/lynq_gnss.c
index 4d79d0f..a812738 100755
--- a/lib/liblynq-gnss/src/lynq_gnss.c
+++ b/lib/liblynq-gnss/src/lynq_gnss.c
@@ -72,6 +72,7 @@
 

 int lynq_gnss_callback_reg(lynq_gnss_cb* callbacks)

 {   

+    int i=0;

     if (NULL == callbacks)

     {

         RLOGD("illegal callbacks!!!");

@@ -85,9 +86,23 @@
         RLOGD("callbacks error");

         return -1;

     }

-    if(gpshal_gpscbs_save(turn_cbs) != 0)

+    for(i=0;i<5;i++)

     {

-        RLOGD("For cbs save error\r\n");

+        RLOGD("The callback_gps_state:%s",gpshal_state_to_string(g_gpshal_ctx.gps_state));

+        if(gpshal_gpscbs_save(turn_cbs) != 0)

+        {

+            RLOGD("For cbs save error\r\n");

+        }

+        RLOGD("The callback_gps_state:%s",gpshal_state_to_string(g_gpshal_ctx.gps_state));

+        if(g_gpshal_ctx.gps_state != GPSHAL_STATE_UNKNOWN)

+        {

+            break;

+        }

+        sleep(1);

+    }

+    if(i>=5)

+    {

+        RLOGD("For cbs save error2\r\n");

         return -1;

     }

     g_lynq_gnss_calback_flag = 1;

@@ -122,6 +137,11 @@
 

 int lynq_gnss_start(void)

 {

+    if (g_lynq_gnss_init_flag == 0)

+    {

+        RLOGD("start is not allowed");

+        return -1;

+    }

     //memset(&lynq_debug_data, 0, sizeof(DebugData));

     gpshal_set_gps_state_intent(GPSHAL_STATE_START);

     gpshal2mnl_gps_start();

@@ -130,6 +150,11 @@
 

 int lynq_gnss_stop(void)

 {

+    if (g_lynq_gnss_init_flag == 0)

+    {

+        RLOGD("stop is not allowed");

+        return -1;

+    }

     gpshal_set_gps_state_intent(GPSHAL_STATE_STOP);

     gpshal2mnl_gps_stop();

     return 0;