[bug][T108-suolin][bug-view-2420][ril] when in 3G,  sometimes call all ril api fail

 Only Configure:No
 Affected branchmaster
 Affected module:ril
 Is it affected on:asr
 Doc Update:No

Change-Id: I27c70295e6bff6a56faa33ff4cfd59bdf65f45c1
diff --git a/mbtk/mbtk_rild_v2/src/main.c b/mbtk/mbtk_rild_v2/src/main.c
index 1c55e2c..ce74dd9 100755
--- a/mbtk/mbtk_rild_v2/src/main.c
+++ b/mbtk/mbtk_rild_v2/src/main.c
@@ -2069,8 +2069,8 @@
         || strStartsWith(s, "+EEMNRINTERRAT:")

         || strStartsWith(s, "+EEMLTESVC:") || strStartsWith(s, "+EEMLTEINTER:")

         || strStartsWith(s, "+EEMLTEINTRA:") || strStartsWith(s, "+EEMLTEINTERRAT:")

-        || strStartsWith(s, "+EEMUMTSSVC:") || strStartsWith(s, "+EEMUMTSINTRA:")

-        || strStartsWith(s, "+EEMUMTSINTERRAT:") || strStartsWith(s, "+EEMGINFOBASIC:")

+        || strStartsWith(s, "+EEMUMTSSVC:") /*|| strStartsWith(s, "+EEMUMTSINTRA:")

+        || strStartsWith(s, "+EEMUMTSINTERRAT:")*/ || strStartsWith(s, "+EEMGINFOBASIC:")

         || strStartsWith(s, "+EEMGINFOSVC:") || strStartsWith(s, "+EEMGINFOPS:")

         || strStartsWith(s, "+EEMGINFONC:")) {

         urc_cell_info_process(sim_id, s, sms_pdu);

@@ -2654,7 +2654,8 @@
 // Return MBTK_INFO_ERR_SUCCESS,will call pack_error_send() to send RSP.
 // Otherwise, do not call pack_error_send().
 static mbtk_ril_err_enum pack_req_process(sock_cli_info_t* cli_info, ril_msg_pack_info_t* pack)

-{
+{

+    LOGD("lynq rild 1, simid %d port %d %d",cli_info->sim_id,cli_info->port,pack->msg_id);

     if(pack->msg_id > RIL_MSG_ID_DEV_BEGIN && pack->msg_id < RIL_MSG_ID_DEV_END) {

         return dev_pack_req_process(cli_info, pack);

     } else if(pack->msg_id > RIL_MSG_ID_SIM_BEGIN && pack->msg_id < RIL_MSG_ID_SIM_END) {

@@ -2917,32 +2918,32 @@
     return NULL;
 }

 

-static int check_device_info(void)
-{
-    mbtk_device_info_basic_t info_basic;
-    memset(&info_basic,0,sizeof(mbtk_device_info_basic_t));
-    int result = mbtk_dev_info_read(MBTK_DEVICE_INFO_ITEM_BASIC, &info_basic, sizeof(mbtk_device_info_basic_t));
-    if(result != 0)
-    {
-        LOGE("mbtk_dev_info_read(BASIC) fail. reset \n");
-	return -1;
-    }
-    return 0;
-}
-
-static int config_file_exists(void)
-{
-    ATResponse *response = NULL;
-
-    int err = at_send_command(portType_2_portId(MBTK_SIM_1, ATPORTTYPE_0), "AT*MRD_CDF=Q,TTPCom_NRAM2_CUSTOMIZATION_DATA.gki", &response);
-    if(err < 0 || response->success == 0)
-    {
-        LOGD("config_file gki check fail \n");
-        return 0;
-    }
-    return -1;
-}
-
+static int check_device_info(void)

+{

+    mbtk_device_info_basic_t info_basic;

+    memset(&info_basic,0,sizeof(mbtk_device_info_basic_t));

+    int result = mbtk_dev_info_read(MBTK_DEVICE_INFO_ITEM_BASIC, &info_basic, sizeof(mbtk_device_info_basic_t));

+    if(result != 0)

+    {

+        LOGE("mbtk_dev_info_read(BASIC) fail. reset \n");

+	return -1;

+    }

+    return 0;

+}

+

+static int config_file_exists(void)

+{

+    ATResponse *response = NULL;

+

+    int err = at_send_command(portType_2_portId(MBTK_SIM_1, ATPORTTYPE_0), "AT*MRD_CDF=Q,TTPCom_NRAM2_CUSTOMIZATION_DATA.gki", &response);

+    if(err < 0 || response->success == 0)

+    {

+        LOGD("config_file gki check fail \n");

+        return 0;

+    }

+    return -1;

+}

+

 static void band_support_init()

 {

     mbtk_device_info_modem_t info_modem;

@@ -3041,7 +3042,8 @@
         {
             if(item->cli_info) { // REQ form client.
                 ril_msg_pack_info_t *pack = (ril_msg_pack_info_t*)item->pack;

-                LOGD("Process REQ %s.", id2str(pack->msg_id));

+                LOGD("hq Process REQ %s.  port %d", id2str(pack->msg_id),*port);

+                LOGD("lynq rild 0, simid %d port %d %d",item->cli_info->sim_id,item->cli_info->port,*port);

                 ril_info.at_process[*port] = true;

                 err = pack_req_process(item->cli_info, pack);
                 if(err != MBTK_RIL_ERR_SUCCESS)

@@ -3075,7 +3077,7 @@
 
 OK
 */
-
+

 static void* band_config_thread()
 {
     band_info.band_set_success = FALSE;

@@ -3109,11 +3111,11 @@
     LOGD("Set Band thread exit.");
     return NULL;
 }
-
+

 

 

 int ril_server_start()

-{
+{

     signal(SIGPIPE, SIG_IGN);

 

     memset(&ril_info, 0, sizeof(ril_info_t));

@@ -3122,13 +3124,13 @@
 
     //check cfun and sim card status
     ril_at_ready_process();
-
-    // check device info
-    int check_res = check_device_info();
-
-    // check gki config 
-    int file_res = config_file_exists();
-
+

+    // check device info

+    int check_res = check_device_info();

+

+    // check gki config 

+    int file_res = config_file_exists();

+

     // Init support band.

     band_support_init();

     //any AT instruction that is not sent through pack_process_thread needs to precede the thread
@@ -3184,10 +3186,18 @@
         goto error;
     }

 

-    mbtk_queue_init(&(ril_info.msg_queue[ATPORTTYPE_0]));

-    pthread_mutex_init(&(ril_info.msg_mutex[ATPORTTYPE_0]), NULL);

-    pthread_cond_init(&(ril_info.msg_cond[ATPORTTYPE_0]), NULL);

-
+

+  

+    for(int i=0;i<ATPORTTYPE_NUM;i++)

+    {

+        mbtk_queue_init(&(ril_info.msg_queue[i]));

+        pthread_mutex_init(&(ril_info.msg_mutex[i]), NULL);

+        pthread_cond_init(&(ril_info.msg_cond[i]), NULL);

+    }

+

+	

+

+

     pthread_t info_pid, pack_pid/*, monitor_pid, urc_pid, bootconn_pid*/;

     pthread_attr_t thread_attr;
     pthread_attr_init(&thread_attr);
@@ -3232,7 +3242,7 @@
     char buff[10];
     memset(buff, 0, 10);
     property_get("persist.mbtk.band_config", buff, "");
-    
+    

     if(strlen(buff) == 0 && check_res == 0 && file_res == 0) {
         pthread_t band_pid;
         if(pthread_create(&band_pid, &thread_attr, band_config_thread, NULL))