[bugfix][T108][bug-view-1470][GNSS] Fix the situation where the deinit call on the customer's side would crash

Only Configure: No
Affected branch: GSW_V1453
Affected module: GNSS
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no

Change-Id: I9d5dc469fa624257d5730bc6630593b468b627bb
diff --git a/mbtk/libgsw_lib/gsw_gnss_interface.c b/mbtk/libgsw_lib/gsw_gnss_interface.c
index e63576d..cb6b397 100755
--- a/mbtk/libgsw_lib/gsw_gnss_interface.c
+++ b/mbtk/libgsw_lib/gsw_gnss_interface.c
@@ -397,8 +397,10 @@
     int ret;

     if(!inited)

     {

-        dlHandle_gnss = dlopen(lynqLib_gnss, RTLD_NOW);

-        fun_ptr_log = (mbtk_log)dlsym(dlHandle_gnss, "mbtk_log");

+        if(dlHandle_gnss == NULL)

+            dlHandle_gnss = dlopen(lynqLib_gnss, RTLD_NOW);

+        if(fun_ptr_log == NULL)

+            fun_ptr_log = (mbtk_log)dlsym(dlHandle_gnss, "mbtk_log");

         if(fun_ptr_log == NULL || dlHandle_gnss == NULL)

         {

             return GSW_HAL_NORMAL_FAIL;

@@ -545,15 +547,19 @@
         }

         else

         {

-            LOGE("[GSW_gnss] mbtk_gnss_init() fail.ret = [%d]", ret);

+            LOGE("[GSW_gnss] mbtk_gnss_deinit() fail.ret = [%d]", ret);

+            /*

             dlclose(dlHandle_gnss);

             dlHandle_gnss = NULL;

+            */

             return GSW_HAL_NORMAL_FAIL;

         }

     }

 

+    /*

     dlclose(dlHandle_gnss);

     dlHandle_gnss = NULL;

+    */

     gnss_freq = -1;

     gnss_startmode = -1;

     gnss_switch_op = -1;