Merge "[Bugfix][bug-view-1970,1971,1972,1975]Revert alsa related changes" into INTEST_PM_SDK6.1_BASE
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c
index f788e85..ef46a5a 100755
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c
@@ -380,8 +380,11 @@
 	.num_slots	= 1,
 	.quirks = DW_MCI_QUIRK_BROKEN_CARD_DETECTION  \
 		| DW_MCI_QUIRK_UNALIGN_DMA_SZ | DW_MCI_QUIRK_UNALIGN_DMA_START,
-	.caps	= (MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |MMC_CAP_UHS_SDR50 |MMC_CAP_NONREMOVABLE),
-	.bus_hz = 50*1000*1000,
+
+	/* l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated start */
+	.caps	= (MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |MMC_CAP_UHS_SDR50 |MMC_CAP_UHS_SDR104 |MMC_CAP_NONREMOVABLE),
+	.bus_hz = 100*1000*1000,
+	/* l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated end */
 	//.caps	= (MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | MMC_CAP_NONREMOVABLE),
 	.pm_caps = MMC_PM_KEEP_POWER | MMC_PM_IGNORE_PM_NOTIFY,
 	//.init = sdmmc_init,
diff --git a/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/bin/zte_volte_main b/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/bin/zte_volte_main
index d945ada..8919218 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/bin/zte_volte_main
+++ b/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/bin/zte_volte_main
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/first.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/first.sh
index b3dc7dd..285cdd5 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/first.sh
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/first.sh
@@ -64,4 +64,7 @@
 
 echo 2 > /proc/sys/kernel/randomize_va_space
 echo 2 > /proc/sys/kernel/kptr_restrict
+# l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated start 
+echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
+# l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated end
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-autosuspend/liblynq-autosuspend.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-autosuspend/liblynq-autosuspend.bb
old mode 100644
new mode 100755
index fc81884..94afd9f
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-autosuspend/liblynq-autosuspend.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/liblynq-autosuspend/liblynq-autosuspend.bb
@@ -3,7 +3,7 @@
 DESCRIPTION = "liblynq-autosuspend"
 LICENSE = "CLOSED"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1e07e8d88e26263e71d3a9e2aa9a2ff"
-DEPENDS += "libbsp liblynq-log"
+DEPENDS += "libbsp liblynq-log libsctel"
 #inherit workonsrc
 WORKONSRC = "${TOPDIR}/../src/lynq/lib/liblynq-autosuspend"
 FILESEXTRAPATHS_prepend :="${TOPDIR}/../src/lynq/lib/:"
diff --git a/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd/0001-passwd-shell-false.patch b/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd/0001-passwd-shell-false.patch
new file mode 100755
index 0000000..d00ec47
--- /dev/null
+++ b/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd/0001-passwd-shell-false.patch
@@ -0,0 +1,53 @@
+From 2fea77c487a83d9c123826af7f54ea2528e4affa Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?=E5=91=A8=E5=9B=BD=E5=9D=A10318000136?=
+ <zhou.guopo@sanechips.com.cn>
+Date: Tue, 1 Jul 2025 20:40:40 +0800
+Subject: [PATCH] passwd shell false
+
+---
+ passwd.master | 34 +++++++++++++++++-----------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/passwd.master b/passwd.master
+index e1c32ff..418317b 100644
+--- a/passwd.master
++++ b/passwd.master
+@@ -1,18 +1,18 @@
+ root::0:0:root:/root:/bin/sh
+-daemon:*:1:1:daemon:/usr/sbin:/bin/sh
+-bin:*:2:2:bin:/bin:/bin/sh
+-sys:*:3:3:sys:/dev:/bin/sh
+-sync:*:4:65534:sync:/bin:/bin/sync
+-games:*:5:60:games:/usr/games:/bin/sh
+-man:*:6:12:man:/var/cache/man:/bin/sh
+-lp:*:7:7:lp:/var/spool/lpd:/bin/sh
+-mail:*:8:8:mail:/var/mail:/bin/sh
+-news:*:9:9:news:/var/spool/news:/bin/sh
+-uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh
+-proxy:*:13:13:proxy:/bin:/bin/sh
+-www-data:*:33:33:www-data:/var/www:/bin/sh
+-backup:*:34:34:backup:/var/backups:/bin/sh
+-list:*:38:38:Mailing List Manager:/var/list:/bin/sh
+-irc:*:39:39:ircd:/var/run/ircd:/bin/sh
+-gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
+-nobody:*:65534:65534:nobody:/nonexistent:/bin/sh
++daemon:*:1:1:daemon:/usr/sbin:/bin/false
++bin:*:2:2:bin:/bin:/bin/false
++sys:*:3:3:sys:/dev:/bin/false
++sync:*:4:65534:sync:/bin:/bin/false
++games:*:5:60:games:/usr/games:/bin/false
++man:*:6:12:man:/var/cache/man:/bin/false
++lp:*:7:7:lp:/var/spool/lpd:/bin/false
++mail:*:8:8:mail:/var/mail:/bin/false
++news:*:9:9:news:/var/spool/news:/bin/false
++uucp:*:10:10:uucp:/var/spool/uucp:/bin/false
++proxy:*:13:13:proxy:/bin:/bin/false
++www-data:*:33:33:www-data:/var/www:/bin/false
++backup:*:34:34:backup:/var/backups:/bin/false
++list:*:38:38:Mailing List Manager:/var/list:/bin/false
++irc:*:39:39:ircd:/var/run/ircd:/bin/false
++gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/false
++nobody:*:65534:65534:nobody:/nonexistent:/bin/false
+-- 
+2.17.1
+
diff --git a/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb b/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb
index 65b3cd7..fa4bc0f 100644
--- a/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb
+++ b/cap/zx297520v3/sources/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb
@@ -14,6 +14,7 @@
            file://input.patch \
            file://disable-docs.patch \
            file://kvm.patch \
+           file://0001-passwd-shell-false.patch \
            "
 
 SRC_URI[md5sum] = "6beccac48083fe8ae5048acd062e5421"
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
index 599c9fc..050b1c5 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
@@ -64,9 +64,11 @@
     {

         if(index == sms_indexs[cnt])

         {

+            sqlite3_close(smsDb);

             return 1;

         }

     }

+    sqlite3_close(smsDb);

     return 0;

 }

 

@@ -81,19 +83,24 @@
     LYVERBLOG("next_index=%d",next_index);

     lynq_sms_t* temp = (lynq_sms_t *)data;

     for(int i=0; i<argc; i++){

-       LYVERBLOG("[%s]%s = %s", __FUNCTION__,azColName[i], argv[i] ? argv[i] : "NULL");

+       LYVERBLOG("[%s]%s = %s\n", __FUNCTION__,azColName[i], argv[i] ? argv[i] : "NULL");

     }

+    LYVERBLOG("lcz1111 smsInfo address %p\n",temp);

     temp->index = atoi(argv[0]);

     temp->slot_id = atoi(argv[1]);

     temp->lynq_sms_status=(lynq_sms_status_t)atoi(argv[2]);

-    memcpy(temp->address,argv[3],LYNQ_TELEPHONE_NUM_LEN);

+    LYVERBLOG("lcz2222 smsInfo.adress address %p\n",temp->address);

+    strncpy(temp->address,argv[3],LYNQ_TELEPHONE_NUM_LEN);

     temp->addrLen = strlen(argv[3]);

-    memcpy(temp->smsc,argv[4],LYNQ_SMS_MAX_SCA_NUMBER_LEN);

+    LYVERBLOG("lcz3333 smsInfo.sms %p\n",temp->smsc);

+    strncpy(temp->smsc,argv[4],LYNQ_SMS_MAX_SCA_NUMBER_LEN);

     temp->smscLen = strlen(argv[4]);

     temp->charset = atoi(argv[5]);

-    memcpy(temp->pdu,argv[6],LYNQ_SMS_MAX_PDU_NUMBER_LEN);

+    LYVERBLOG("lcz_pdu smsInfo.pdu %p\n",temp->pdu);

+    strncpy(temp->pdu,argv[6],LYNQ_SMS_MAX_PDU_NUMBER_LEN);

     temp->pduLen = strlen(argv[6]);

-    memcpy(temp->sms_text,argv[7],LYNQ_SMS_MAX_TEXT_NUMBER_LEN);

+    LYVERBLOG("lcz5555 smsInfo.text %p\n",temp->sms_text);

+    strncpy(temp->sms_text,argv[7],LYNQ_SMS_MAX_TEXT_NUMBER_LEN);

     temp->sms_text_len = strlen(argv[7]);

     /*lei add for gsw 2022/5/12*/

     temp->current = atoi(argv[8]);

@@ -158,6 +165,7 @@
     {

         LYERRLOG("SQL error: %s\n", zErrMsg);

         sqlite3_free(zErrMsg);

+        sqlite3_close(smsDb);

         return -1;

     }

     else

@@ -211,6 +219,15 @@
     char *zErrMsg = 0;

     int rc;

     char sql[128]={0};

+    if(index != -1)

+    {

+        if(!lynq_check_index(index))

+        {

+            return LYNQ_E_SMS_SQL_FAIL;

+        }

+    }

+    /*lei add*/

+    

     /* Open database */

     rc = sqlite3_open(SMS_DB_PATH, &smsDb);

     if(index == -1)

@@ -239,12 +256,6 @@
     }

     else

     {

-        /*lei add*/

-        if(!lynq_check_index(index))

-        {

-            return LYNQ_E_SMS_SQL_FAIL;

-        }

-        /*lei add*/

         if( rc )

         {

             LYVERBLOG("[%s] Can't open database: %s\n", __FUNCTION__,sqlite3_errmsg(smsDb));

@@ -504,6 +515,7 @@
         return 1;

     }

     LYDBGLOG("write sms to sms db successfully");

+    sqlite3_close(smsDb);

     //printf("write sms to sms db successfully\n");

     return 0;

 }

diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp
index a3e19ae..798baad 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp
@@ -60,6 +60,7 @@
 #define PROP_ECALL_NUM "vendor.gost.ecall.ecall_sms_fallback_number"
 
 extern sms_manager * g_smsManagement;
+static pthread_mutex_t read_sms_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 static void constructGsmSendSmsRilRequest (android::Parcel &p, char *smscPDU, char *pdu) {
     p.writeInt32(2);
@@ -70,7 +71,10 @@
 int getsmsDatabasestatus(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
     android::Parcel p;
+    pthread_mutex_lock(&read_sms_mutex);
+    LYVERBLOG("lcz_lock smsInfo getdatabase\n");
     int id = g_smsManagement->lynq_check_sms_full();
+    pthread_mutex_unlock(&read_sms_mutex);
     RLOGD("[%s] id = %d\n",__FUNCTION__,id);
     android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_READ_SMS_FROM_MEMORY,0,0);
 
@@ -537,6 +541,19 @@
     return;
 }
 
+static void acquire_wake_lock()
+{
+    int ret = 0;
+
+    ret = system("echo sms_read 5000000000 > /sys/power/wake_lock");//timeout 5s
+    if(ret != 0)
+    {
+        LYERRLOG("sms_read error !!!");
+    }
+    return;
+}
+
+
 int responseNewSMS(const char *data, size_t datalen, int soc_id,int32_t unsol,android::Parcel &p){
     char smsc[512] = {0};
     char msg[512] = {0};
@@ -558,12 +575,16 @@
     {
         gostParseSmsHandle(soc_id, num, msg);
     }
+    acquire_wake_lock();
     /*Warren change for t800 ril service 2022/1/18 start
     **By default, the SMS is stored in the memory after receiving it
     */
     /*lei modify for gsw 2022/5/11*/
+    pthread_mutex_lock(&read_sms_mutex);
+    LYVERBLOG("lcz_lock smsInfo write\n");
     index = g_smsManagement->lynq_write_sms_to_memory(data,(const char*)num,(const char*)smsc,(const char*)msg,charset,soc_id,curr_pack,total_pack);
     /*lei modify for gsw 2022/5/11*/
+    pthread_mutex_unlock(&read_sms_mutex);
     p.writeInt32(index);//if index == -1 ,it means sms storage space is full.
     /*Warren change for t800 ril service 2022/1/18 end*/
     return 0;
@@ -969,25 +990,39 @@
         free(pRI);
         return -1;
     }
-    lynq_sms_t smsInfo;
-    error = g_smsManagement->lynq_read_sms_from_memory(atoi(argv[1]),&smsInfo);
+    lynq_sms_t *smsInfo = (lynq_sms_t*) malloc(sizeof(lynq_sms_t));
+    if (smsInfo == NULL)
+    {
+        RLOGE("malloc fail\n");
+        android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_READ_SMS_FROM_MEMORY,0,2);//RIL_E_GENERIC_FAILURE
+        android::LYNQ_RIL_respSocket(p,(void *)pRI);
+        free(pRI);
+        return -1;
+    }
+
+    pthread_mutex_lock(&read_sms_mutex);
+    LYVERBLOG("lcz_lock smsInfo address %p\n",smsInfo);
+    error = g_smsManagement->lynq_read_sms_from_memory(atoi(argv[1]),smsInfo);
+    pthread_mutex_unlock(&read_sms_mutex);
+
     android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_READ_SMS_FROM_MEMORY,0,error);
-    RLOGD("addr=%s,smsc=%s,msg=%s\n",smsInfo.address,smsInfo.smsc,smsInfo.sms_text);
+    RLOGD("addr=%s,smsc=%s,msg=%s\n",smsInfo->address,smsInfo->smsc,smsInfo->sms_text);
     if(error==0)
     {
-        p.writeInt32(smsInfo.index);
-        p.writeInt32(smsInfo.lynq_sms_status);
-        p.writeInt32(smsInfo.charset);
+        p.writeInt32(smsInfo->index);
+        p.writeInt32(smsInfo->lynq_sms_status);
+        p.writeInt32(smsInfo->charset);
         /*lei add for gsw 2022/5/12*/
-        p.writeInt32(smsInfo.current);
-        p.writeInt32(smsInfo.total);
+        p.writeInt32(smsInfo->current);
+        p.writeInt32(smsInfo->total);
         /*lei add for gsw 2022/5/12*/
-        writeStringToParcel(p,smsInfo.address);
-        writeStringToParcel(p,smsInfo.smsc);
-        writeStringToParcel(p,smsInfo.sms_text);
+        writeStringToParcel(p,smsInfo->address);
+        writeStringToParcel(p,smsInfo->smsc);
+        writeStringToParcel(p,smsInfo->sms_text);
     }
     android::LYNQ_RIL_respSocket(p,(void *)pRI);
     free(pRI);
+    free(smsInfo);
     return 0;
 }
 int deleteSmsToMemory(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
@@ -1002,7 +1037,10 @@
         free(pRI);
         return -1;
     }
+    pthread_mutex_lock(&read_sms_mutex);
+    LYVERBLOG("lcz_lock sms delete\n");
     error = g_smsManagement->lynq_delete_sms_from_memory(atoi(argv[1]));
+    pthread_mutex_unlock(&read_sms_mutex);
     android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY,0,error);
     android::LYNQ_RIL_respSocket(p,(void *)pRI);
     free(pRI);
@@ -1032,7 +1070,10 @@
         free(pRI);
         return -1;
     }
+    pthread_mutex_lock(&read_sms_mutex);
+    LYVERBLOG("lcz_lock sms list get\n");
     error = g_smsManagement->lynq_list_sms_from_memory(0,&sms_list);//list all
+    pthread_mutex_unlock(&read_sms_mutex);
     bzero(indexBuf,256);
     for(int n=0;n<255;n++)
     {
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/include/libauto/lynq_autosuspend.h b/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/include/libauto/lynq_autosuspend.h
old mode 100644
new mode 100755
index efd1219..63f1918
--- a/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/include/libauto/lynq_autosuspend.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/include/libauto/lynq_autosuspend.h
@@ -25,7 +25,7 @@
 int lynq_autosleep_enable(void);
 int lynq_autosleep_disable(void);
 int lynq_wait_wakeup_event(long *sleep_start_time, long * wakeup_time);
-
+int lynq_whitelist_clear(void);
 #ifdef MOBILETEK_TARGET_PLATFORM_T106
 int lynq_set_lpmode(int lp_mode);
 int release_wake_lock(char *name);
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/lynq-autosuspend.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/lynq-autosuspend.cpp
index 5dc3fe5..65f6517 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/lynq-autosuspend.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/lynq-autosuspend.cpp
@@ -11,7 +11,7 @@
 #include <stdbool.h>
 #include <time.h>
 #include <liblog/lynq_deflog.h>
-
+#include <sc_mnet_whitelist.h>
 #include "include/libauto/lynq_autosuspend.h"
 #ifdef MOBILETEK_TARGET_PLATFORM_T106
 #include <sc_bsp.h>
@@ -465,6 +465,17 @@
 }
 #endif
 
+int lynq_whitelist_clear(void)
+{
+    int ret;
+    ret = sc_mnet_whitelist_clear();
+    if(ret)
+    {
+        LYINFLOG("sc_mnet_whitelist_clear ret=%d\n", ret);
+    }
+    return ret;
+}
+
 DEFINE_LYNQ_LIB_LOG(LIBLYNQ_AUTOSUSPEND)
 
 #ifdef __cplusplus
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/makefile b/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/makefile
old mode 100644
new mode 100755
index b97b48c..021cb61
--- a/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/makefile
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-autosuspend/makefile
@@ -39,6 +39,7 @@
     -lpthread \
     -llynq-log \
     -lbsp \
+    -lsctel \
 
 SOURCES = $(wildcard *.cpp)
 
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/include/lynq-qser-autosuspend.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/include/lynq-qser-autosuspend.h
index 5d4b91d..692056f 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/include/lynq-qser-autosuspend.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/include/lynq-qser-autosuspend.h
@@ -67,7 +67,7 @@
 
 int qser_whitelist_set(char *whitelist);
 int qser_whitelist_get(char *whitelist);
-
+int qser_whitelist_clear(void);
 
 #ifdef __cplusplus
 }
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/lynq-qser-autosuspend.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/lynq-qser-autosuspend.cpp
index 6fbedd5..ce1b692 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/lynq-qser-autosuspend.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-autosuspend/lynq-qser-autosuspend.cpp
@@ -8,7 +8,7 @@
 #include <pthread.h>
 #include <unistd.h>
 
-#include <lynq_autosuspend.h>
+
 #include "lynq-qser-autosuspend.h"
 #include "liblog/lynq_deflog.h"
 #include <include/lynq_uci.h>
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-
+#include "lynq_autosuspend.h"
 extern int lynq_autosleep_enable(void);
 extern int lynq_autosleep_disable(void);
 extern int release_wake_lock(char *name);
@@ -464,6 +464,15 @@
 
 }
 
+int qser_whitelist_clear(void)
+{
+    int ret;
+    ret = lynq_whitelist_clear();
+    LYERRLOG("clear ret =%d\n", ret);
+    return ret;
+
+}
+
 DEFINE_LYNQ_LIB_LOG(LYNQ_QSER_AUTOSUSPEND)
 
 #ifdef __cplusplus
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
index 8979e97..f16a2eb 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/mbtk_gnss.cpp
@@ -1129,7 +1129,6 @@
         return -1;
     }
     gnss_log("curent dev: %s, fd: %d \n", dev, fd);
-    printf("curent dev: %s, fd: %d \n", dev, fd);
     if(baudrate) {
         gnss_log("set baudrate: %d \n", baudrate);
         ret = set_baudrate(fd, baudrate);
@@ -1188,9 +1187,26 @@
     return -1; 
 }
 
-static int mopen_gnss_read(int fd, char* buf, unsigned int buf_len)
+static int mopen_gnss_read(int fd, char* buf, unsigned int buf_len, int timeout_ms)
 {
     buf_len=(buf_len > MBTK_UART_RECV_BUFFER_SIZE ? MBTK_UART_RECV_BUFFER_SIZE : buf_len);
+    fd_set read_fds;
+    struct timeval tv;
+    int retval;
+
+    tv.tv_sec = timeout_ms / 1000;
+    FD_ZERO(&read_fds);
+    FD_SET(fd, &read_fds);
+    retval = select(fd + 1, &read_fds, NULL, NULL, &tv);
+    
+    if (retval == -1)
+        return -1;
+    else if (retval == 0)
+    {
+        ALOGE("read timeout\n");
+        return -2;
+    }
+
     return read(fd, buf, buf_len);
 }
 
@@ -1287,7 +1303,9 @@
         if(nmea_state == 1)
         {
             nmea_reading = 1;
-            ret = mopen_gnss_read(gnss_handle->dev_fd, buf, MBTK_UART_RECV_BUFFER_SIZE);
+            ret = mopen_gnss_read(gnss_handle->dev_fd, buf, MBTK_UART_RECV_BUFFER_SIZE,5000);
+            if (ret == -2)
+                continue;
             if(gnsslog_state)
             {
                 //write_gnss_log(buf, ret);
@@ -1501,6 +1519,7 @@
     memset(mbtk_gnss_handle, 0, sizeof(struct mbtk_gnss_handle_t));
     memset(&mopen_gnss_device_info, 0, sizeof(mopen_gnss_device_info));
     mbtk_gnss_handle->dev_fd = mopen_gnss_open(MBTK_GNSS_DEV, B115200);
+
     mbtk_gnss_handle->rb = (char*)malloc(MBTK_UART_RECV_BUFFER_SIZE);
     if(NULL == mbtk_gnss_handle->rb)
     {
@@ -1543,11 +1562,12 @@
 {
     int ret;
 
-    if (kill) {
-        ALOGE("GNSS hardware issues\n");
-        ret = pthread_cancel(pid);
-        pthread_join(pid, NULL);
-    }
+    // if (kill) {
+    //     ALOGE("GNSS hardware issues\n");
+    //     ret = pthread_cancel(pid);
+    //     pthread_join(pid, NULL);
+    //     return 0;
+    // }
     do{
         ret = pthread_kill(pid, 0);
         if(ret == ESRCH)
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
index 1990166..7b35e6e 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
@@ -21,6 +21,18 @@
     SMS_PARAM_ERR
 };
 
+static void release_wake_lock()
+{
+    int ret = 0;
+    
+    ret = system("echo sms_read > /sys/power/wake_unlock");
+    if(ret != 0)
+    {
+        LYERRLOG("sms_read error !!!");
+    }
+    return;
+}
+
 void *new_sms_thread_recv(void *p)
 {
     int handle = -1;
@@ -65,6 +77,7 @@
             {
                 LYDBGLOG("lynq_read_sms error\n");
             }
+            release_wake_lock();
         }
         else
         {
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp
index d45ff0a..27431c9 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp
@@ -178,11 +178,19 @@
         return LYNQ_E_CONFLICT;

     }

     Parcel* p=NULL;

-    int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_READ_SMS_FROM_MEMORY,1,"%d",index);

-    if(ret!=0)

+    int ret = 0;

+    for(int count = 0;count < 3;count++)

     {

-        return ret;

+        ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_READ_SMS_FROM_MEMORY,1,"%d",index);

+        if(ret!=0)

+        {

+            usleep(10000);

+            continue;

+        }

+            

     }

+    if(ret)

+        return ret;

     LYDBGLOG("LYNQ_REQUEST_READ_SMS_FROM_MEMORY SUCCESS!");

     p->readInt32(&index);

     p->readInt32(status);

diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi
index d97424e..1b9d53b 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/arch/arm/boot/dts/zx297520v3.dtsi
@@ -630,8 +630,8 @@
 			//pinctrl-1 = <&sd1_cd_int>;
 			//pinctrl-2 = <&sd1_cd_gpio>;
 			pinctrl-1 = <&sd1_vcc_en>;
-
-			clock-frequency = <50000000>;
+			// l.yang add for task-208 start 
+			clock-frequency = <100000000>;
 			data-addr = <0x200>;
 			bus-width=<4>;
 			//non-removable;
@@ -639,6 +639,8 @@
 			//cap-mmc-hw-reset;
 			keep-power-in-suspend;
 			fifo-watermark-aligned;
+			mmc-hs200-1_8v;
+			// l.yang add for task-208 end
 			status = "okay";			
 		};
 		soc_ssp0: ssp@140A000 {
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/dma/sc/zx297520v3_dma.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/dma/sc/zx297520v3_dma.c
index 6eb68fa..7eefa87 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/dma/sc/zx297520v3_dma.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/dma/sc/zx297520v3_dma.c
@@ -1090,12 +1090,15 @@
 					/* schedule tasklet on this channel */
 			/* yu.dong@20240617 [T106BUG-641] SPI packet loss issue, increase kernel buffer and read all cached data away, no data loss start */
 			#ifdef _USE_VEHICLE_DC || _USE_VEHICLE_DC_REF
-					if((channel_id == DMA_CH_UART0_RX) || (channel_id == DMA_CH_UART2_RX)||(channel_id == DMA_CH_SSP0_RX)||(channel_id == DMA_CH_SSP1_RX)){
+			/* l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated start */
+					if((channel_id == DMA_CH_UART0_RX) || (channel_id == DMA_CH_UART2_RX)||(channel_id == DMA_CH_SSP0_RX)|| \
+ 					(channel_id == DMA_CH_SSP1_RX) || (channel_id == DMA_CH_SPIFC_TX) ||(channel_id == DMA_CH_SPIFC_RX)){
 						if (dmac_ptr->dma_chan[channel_id].desc.callback)
 							dmac_ptr->dma_chan[channel_id].desc.callback(dmac_ptr->dma_chan[channel_id].desc.callback_param);
 					}else
 						tasklet_schedule(&dmac_ptr->dma_chan[channel_id].tasklet);
 			#else
+		       /* l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated end */
 			/* yu.dong@20240617 [T106BUG-641] SPI packet loss issue, increase kernel buffer and read all cached data away, no data loss end */
 					tasklet_schedule(&dmac_ptr->dma_chan[channel_id].tasklet);
 			#endif
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/mmc/core/core.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/mmc/core/core.c
index dfe468d..c15cd36 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/mmc/core/core.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/mmc/core/core.c
@@ -947,6 +947,9 @@
 	u32 opcode;
 	int err;
 
+	/* l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated start */
+	return 0;
+	/* l.yang task-208 The patches for T106 eMMC and flash optimization have been integrated end */
 	if (!host->ops->execute_tuning)
 		return 0;
 
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/net/core/fastproc/fast_common.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/net/core/fastproc/fast_common.c
index 80ad864..8db5811 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/net/core/fastproc/fast_common.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/net/core/fastproc/fast_common.c
@@ -729,7 +729,14 @@
 	spin_lock_bh(&fast_fw_spinlock);
 	entry->ct->fast_entry = NULL;
 	spin_unlock_bh(&fast_fw_spinlock);
-    atomic_dec(&(entry->ct->ct_general.use));
+    //LYNQ_MODIFY_ZXW_BUG1351_CR2025052624A85E21_20250715_START
+    //atomic_dec(&(entry->ct->ct_general.use));
+    if (atomic_dec_and_test(&entry->ct->ct_general.use)){
+
+        nf_conntrack_destroy(&entry->ct->ct_general);
+
+    }
+    //LYNQ_MODIFY_ZXW_BUG1351_CR2025052624A85E21_20250715_END
     fn_list_del(list_head, entry);
 }
 
@@ -971,7 +978,14 @@
 	spin_lock_bh(&fast_fw_spinlock);
 	entry->ct->fast_entry = NULL;
 	spin_unlock_bh(&fast_fw_spinlock);
-    atomic_dec(&(ct->ct_general.use));
+    //LYNQ_MODIFY_ZXW_BUG1351_CR2025052624A85E21_20250715_START
+    //atomic_dec(&(ct->ct_general.use));
+    if (atomic_dec_and_test(&ct->ct_general.use)){
+
+        nf_conntrack_destroy(&ct->ct_general);
+
+    }
+    //LYNQ_MODIFY_ZXW_BUG1351_CR2025052624A85E21_20250715_END
     del_timer(&entry->timeout);
     fn_list_del(entry->list_head, entry);
     return 0;
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8389.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8389.c
index 314e0ac..37e62cc 100644
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8389.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8389.c
@@ -59,6 +59,10 @@
 static const DECLARE_TLV_DB_SCALE(alc_target_tlv, -3200, 200, 0);
 static const DECLARE_TLV_DB_SCALE(alc_max_level, -3200, 200, 0);
 
+static int es8389_set_bias_level(struct snd_soc_component *codec, enum snd_soc_bias_level level);
+extern int zx29_i2s_config_sleep_pin(void);
+extern int zx29_i2s_config_default_pin(void);
+
 static const char *const alc[] = {
 	"ALC OFF",
 	"ADCR ALC ON",
@@ -599,6 +603,8 @@
 		dev_warn(codec->dev, "Clock coefficients do not match");
 	}
 
+	es8389_set_bias_level(codec, SND_SOC_BIAS_ON);
+
 	return 0;
 }
 
@@ -612,6 +618,7 @@
 	switch (level) {
 	case SND_SOC_BIAS_ON:
 	    printk("chenli_es8389 %s %d\n", __FUNCTION__,__LINE__);
+		regmap_write(es8389->regmap, ES8389_MASTER_CLK_REG02, 0x01);
 		regmap_update_bits(es8389->regmap, ES8389_HPSW_REG69, 0x20, 0x20);
 		regmap_write(es8389->regmap, ES8389_ANA_CTL1_REG61, 0xD9);
 		regmap_write(es8389->regmap, ES8389_ADC_EN_REG64, 0x8F);
@@ -635,7 +642,7 @@
 		regmap_write(es8389->regmap, ES8389_ANA_CTL1_REG61, 0x59);
 		regmap_write(es8389->regmap, ES8389_ADC_EN_REG64, 0x00);
 		regmap_write(es8389->regmap, ES8389_CLK_OFF1_REG03, 0x00);
-		regmap_write(es8389->regmap, ES8389_RESET_REG00, 0x7E);
+		regmap_write(es8389->regmap, ES8389_RESET_REG00, 0x3E);
 		regmap_update_bits(es8389->regmap, ES8389_DAC_INV_REG45, 0x80, 0x80);
 		usleep_range(8000, 8500);
 		regmap_update_bits(es8389->regmap, ES8389_DAC_INV_REG45, 0x80, 0x00);
@@ -680,6 +687,7 @@
 						0x03, 0x00);
 		} else {
 		    printk("chenli_es8389 %s %d\n", __FUNCTION__,__LINE__);
+			regmap_write(es8389->regmap, ES8389_ADC_MUTE_REG2F, 0xC0);
 			regmap_update_bits(es8389->regmap, ES8389_ADC_HPF1_REG24, 0x0f, 0x0a);
 			regmap_update_bits(es8389->regmap, ES8389_ADC_HPF2_REG25, 0x0f, 0x0a);
 			regmap_update_bits(es8389->regmap, ES8389_ADC_REG20,
@@ -770,8 +778,8 @@
 	regmap_write(es8389->regmap, ES8389_SYSTEM_REG1B, 0x01);
 	regmap_write(es8389->regmap, ES8389_SYSTEM_REG1C, 0x11);
 
-	regmap_write(es8389->regmap, ES8389_CHIP_MISC_REGF0, 0x12);
-	regmap_write(es8389->regmap, ES8389_MASTER_CLK_REG02, 0x01);
+	regmap_write(es8389->regmap, ES8389_CHIP_MISC_REGF0, 0x13);
+	regmap_write(es8389->regmap, ES8389_MASTER_CLK_REG02, 0x00);
 	regmap_write(es8389->regmap, ES8389_CLK_DIV1_REG04, 0x00);
 	regmap_write(es8389->regmap, ES8389_CLK_MUL_REG05, 0x10);
 	regmap_write(es8389->regmap, ES8389_CLK_MUX1_REG06, 0x00);
@@ -785,7 +793,7 @@
 	regmap_write(es8389->regmap, ES8389_OSC_CLK_REG0F, 0x00);
 	regmap_write(es8389->regmap, ES8389_ADC_REG21, 0x1F);
 	regmap_write(es8389->regmap, ES8389_ADC_REG22, 0x7F);
-	regmap_write(es8389->regmap, ES8389_ADC_MUTE_REG2F, 0xC0);
+	regmap_write(es8389->regmap, ES8389_ADC_MUTE_REG2F, 0xF0);
 	regmap_write(es8389->regmap, ES8389_SYSTEM_REG30, 0xF4);
 	regmap_write(es8389->regmap, ES8389_DAC_REG41, 0x7F);
 	regmap_write(es8389->regmap, ES8389_DAC_REG42, 0x7F);
@@ -922,7 +930,7 @@
 		es8389->mclk_src = ES8389_MCLK_SOURCE;
 	}
 
-	es8389->mclk_src = ES8389_MCLK_PIN;
+	es8389->mclk_src = ES8389_SCLK_PIN;
 
 	ret = device_property_read_u8(codec->dev, "everest,adc-slot", &es8389->adc_slot);
 	if (ret != 0) {
@@ -962,8 +970,6 @@
 
 }
 
-extern int zx29_i2s_config_sleep_pin(void);
-extern int zx29_i2s_config_default_pin(void);
 
 static int component_open(struct snd_soc_component *component, 
     struct snd_pcm_substream *substream) 
@@ -977,8 +983,7 @@
         if (ret) { 
             pr_err("failed to enable mclk"); 
         } 
-    } 
-    es8389_init(component);
+    }
     ret = zx29_i2s_config_default_pin(); 
     if(ret < 0) { 
         pr_err("%s select state failure %d !! \n", __func__, ret); 
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nv-rpc-daemon/main.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nv-rpc-daemon/main.c
index 26aafe1..f9b449a 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nv-rpc-daemon/main.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nv-rpc-daemon/main.c
@@ -289,8 +289,9 @@
     unsigned int timeout = 604800;
     int  ret;
     T_sc_rpc_msg data = {0};
-
-    nvrpc_set_priority();
+    //LYNQ_MODIFY_ZXW_BUG1885_CR2025070242BDD3CC_20250715_START
+    //nvrpc_set_priority();
+    //LYNQ_MODIFY_ZXW_BUG1885_CR2025070242BDD3CC_20250715_END
     wake_nvrpc_lock();
     fd = sc_rpc_open(RPC_RPMSG_DEV);
     g_pid = syscall(SYS_gettid);
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c
index 0f79713..5c05c81 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/nvserver/nvserver.c
@@ -326,7 +326,9 @@
     nvInit();
     sd_notify(0, "READY=1");
     record_ap_reboot();
-    nvserver_set_priority();
+    //LYNQ_MODIFY_ZXW_BUG1885_CR2025070242BDD3CC_20250715_START
+    //nvserver_set_priority();
+    //LYNQ_MODIFY_ZXW_BUG1885_CR2025070242BDD3CC_20250715_END
     // ÏûÏ¢½»»¥
     while(1)
     {
diff --git a/update_version.sh b/update_version.sh
index 43ec9f8..6b1dca0 100755
--- a/update_version.sh
+++ b/update_version.sh
@@ -1,8 +1,8 @@
 #!/bin/bash
 #export LYNQ_VERSION="T106_lynq_version_ap_build_sh"
-LYNQ_AP_VERSION="T106-MXX-PLXXXX-P56U11.AP.19.05"
-LYNQ_CAP_INSIDE_VERSION="CAP.19.05"
-LYNQ_CAP_VERSION="CAP.19.05"
+LYNQ_AP_VERSION="T106-MXX-INTEST-P56U11.AP.19.08"
+LYNQ_CAP_INSIDE_VERSION="CAP.19.08"
+LYNQ_CAP_VERSION="CAP.19.08"
 COMMIT_ID="$(git rev-parse HEAD)"
 
 LYNQ_SW_INSIDE_VERSION="LYNQ_CONFIG_VERSION = \"${LYNQ_AP_VERSION}_${LYNQ_CAP_INSIDE_VERSION}\""