Merge "[Bugfix][bug-view-155]fix after reset modem, first call liblynq-sim api will return 1" into DSDS
diff --git a/IC_src/mtk/telephonyware/3.0/atcid/atci/src/platform/atcid_mipc.c b/IC_src/mtk/telephonyware/3.0/atcid/atci/src/platform/atcid_mipc.c
index 24db98c..9de6e50 100755
--- a/IC_src/mtk/telephonyware/3.0/atcid/atci/src/platform/atcid_mipc.c
+++ b/IC_src/mtk/telephonyware/3.0/atcid/atci/src/platform/atcid_mipc.c
@@ -165,7 +165,7 @@
     char *atcicmd_req_ptr, *atcmd_res_ptr, *atci_res;
     uint16_t atcmd_req_len, atcmd_res_len;
 
-    char simIDProperty[MTK_PROPERTY_VALUE_MAX];
+    char simIDProperty[MTK_PROPERTY_VALUE_MAX] = {0};
     int simID = 0;
 
     int char_sub = 0x1a;
diff --git a/IC_src/mtk/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_apn_api.c b/IC_src/mtk/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_apn_api.c
index 1707c4d..2157466 100644
--- a/IC_src/mtk/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_apn_api.c
+++ b/IC_src/mtk/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_apn_api.c
@@ -40,7 +40,7 @@
         result_ptr->result_code = (mipc_result_enum)(*((uint32_t*)val_ptr));
         //acording to MBIM spec, non-succ result should have no information buffer(9.4.5)
         if (MIPC_RESULT_SUCCESS != result_ptr->result_code) {
-            result = MIPC_API_RESULT_SUCCESS;
+            result = MIPC_API_RESULT_FAIL;
             break;
         }
         val_ptr = mipc_msg_get_val_ptr(msg_cnf_ptr, MIPC_APN_SET_IA_CNF_T_IA_COUNT, NULL);
diff --git a/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.cpp b/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.cpp
index 53385cb..26213d1 100755
--- a/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.cpp
+++ b/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.cpp
@@ -92,7 +92,8 @@
     mApnInit(false),
     mcc(String8("")),
     mnc(String8("")),
-    emptyStr(String8("")) {
+    emptyStr(String8("")),
+    mIaRetryCount(0) {
 }
 
 RpApnController::~RpApnController() {
@@ -701,9 +702,15 @@
 
 	if (response->getError() != RIL_E_SUCCESS) {
         logD(RFX_LOG_TAG, "setdataprofile response fail!");
+        mIaRetryCount++;
+        if (mIaRetryCount < 20) {
+            usleep(50 * 1000);
+            setInitialAttachApn();
+        }
         return;
-    }else{
+    } else {
         logD(RFX_LOG_TAG, "setdataprofile response success!");
+        mIaRetryCount = 0;
     }
 }
 
diff --git a/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.h b/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.h
index baab352..520b777 100755
--- a/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.h
+++ b/IC_src/mtk/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/apn/RpApnController.h
@@ -176,6 +176,7 @@
     bool mApnInit;
     String8 emptyStr;
     int mDataprofileid;
+    int mIaRetryCount;
 };
 
 #endif /* __RP_APN_CONTROLLER_H__ */
diff --git a/common_src/framework/lynq-ril-service/src/common.cpp b/common_src/framework/lynq-ril-service/src/common.cpp
index 26cdce0..149c842 100755
--- a/common_src/framework/lynq-ril-service/src/common.cpp
+++ b/common_src/framework/lynq-ril-service/src/common.cpp
@@ -425,11 +425,16 @@
     }
     else
     {
+        //xy.he modified for bug-view-162/bug-view-156 @20240902 started
+        RLOGD("[%s][%d]Already in required sim%d",__FUNCTION__,__LINE__,slot);
+        //xy.he modified for bug-view-162/bug-view-156 @20240902 end
         android::Parcel allow_data_p;
         allow_data_p.writeInt32 (1);
         allow_data_p.writeInt32 (LYNQ_URC_ALLOW_DATA);
         allow_data_p.writeInt32 (slot);
-        allow_data_p.writeInt32 (RIL_E_GENERIC_FAILURE);
+        //xy.he modified for bug-view-162/bug-view-156 @20240902 started
+        allow_data_p.writeInt32 (0);
+        //xy.he modified for bug-view-162/bug-view-156 @20240902 end
         android::LYNQ_RIL_urcBroadcast(allow_data_p,LYNQ_URC_ALLOW_DATA);
     }
     pthread_mutex_unlock(&s_DataMutex);