Merge "[Bugfix][T106][task-view-108] lynq_get_urc_info get wcdma rscp/ecno value error"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
index 5c6648f..0d099dd 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
@@ -1,5 +1,31 @@
 #!/bin/sh
 
+#jb.qi add for uci check start
+check_copy_file() {
+	if [ $# -ne 2 ];then
+		return
+	fi
+	
+	diff $1 $2 > /dev/null
+	if [ $? -ne 0 ]; then
+		echo "cp $1 $2" > /dev/kmsg
+		cp $1 $2
+	fi
+}
+
+check_uci()
+{
+    uci get lynq_uci.lynq_ril > /dev/null
+    if [ $? -ne 0 ]; then
+        echo "$TAG: lynq_uci config cant get" > /dev/kmsg
+        cp /etc/config/lynq_uci /mnt/userdata/config/lynq_uci
+    fi
+}
+mkdir /mnt/userdata/config
+check_uci
+check_copy_file /etc/config/lynq_uci_ro /mnt/userdata/config/lynq_uci_ro
+
+#jb.qi add for uci check end
 ramdump_mode=`nv get ramdump_mode`
 
 if [ -e /proc/sys/ramdump_ap/ramdump_start_addr ]; then
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_user b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_user
index 9439af1..6cbb1ea 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_user
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_user
@@ -465,6 +465,9 @@
 wifi_11n_cap_5g=1
 WirelessMode_5g=6
 Channel_5g=0
+# zw.wang [wifi] If the 5G hotspot is enabled, the country code cannot be obtained by calling qser_wifi_ap_channel_get on 20240829 start
+CountryCode_5g=CN
+# zw.wang [wifi] If the 5G hotspot is enabled, the country code cannot be obtained by calling qser_wifi_ap_channel_get on 20240829 end
 MAX_Access_num_5g=32
 m_MAX_Access_num_5g=0
 ACL_mode_5g=0
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb
index a3df67f..f4e38fc 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb
@@ -1,68 +1,48 @@
 inherit externalsrc package systemd
 
 DESCRIPTION = "autosuspend.service"
+LICENSE = "CLOSED"
 
-LICENSE = "MobileTekProprietary"
 LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=44d8d2b6296ca24bcd4894bb7155bf27"
+DEPENDS += "${@bb.utils.contains('TARGET_PLATFORM', 'mt2735', 'audio-mixer-ctrl streamer1.0', '', d)} liblynq-log liblynq-uci libbsp libsctel libatutils libatreg liblynq-sim"
 
-SRC_URI = "file://autosuspend.c file://LICENSE \
-           file://autosuspend.h \
-           file://autosuspend_ops.h \
-           file://autosuspend_wakeup_count.c \
-           file://main.c \
-           file://autosuspend.service \
-           file://lynq-autosuspend.sh \
-           file://makefile \
-"
-
+WORKONSRC = "${TOPDIR}/../src/lynq/framework/lynq-autosuspend"
+FILESEXTRAPATHS_prepend :="${TOPDIR}/../src/lynq/framework/:"
+SRC_URI = " \
+          file://lynq-autosuspend \
+          "
+SRC-DIR = "${S}/../lynq-autosuspend"
 EXTRA_OEMAKE = "'TARGET_PLATFORM = ${TARGET_PLATFORM}'"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
-
-LOCAL_C_INCLUDES = "-I. "
-
-DEPENDS = "liblynq-log liblynq-uci"
-DEPENDS += "${@bb.utils.contains('TARGET_PLATFORM', 'mt2735', 'audio-mixer-ctrl streamer1.0', '', d)} liblynq-log liblynq-uci libbsp libsctel libatutils libatreg liblynq-sim"
-LOCAL_LIBS = "-L. -ldl -lstdc++ -lpthread -llog"
-SOURCES = "$(wildcard *.c )"
-
-OBJECTS = "$(SOURCES:.c=.o)"
-
-EXECUTABLE = "autosuspend"
-S = "${WORKDIR}"
-TARGET_CC_ARCH += "${LDFLAGS}"
 SYSTEMD_PACKAGES = "${PN}"
 SYSTEMD_SERVICE_${PN} = "autosuspend.service"
 FILES_${PN} += "${systemd_unitdir}/system/autosuspend.service"
+
 #INHIBIT_PACKAGE_STRIP = "1"
 do_compile () {
 
 	#${CXX} -Wall ${LOCAL_C_INCLUDES} autosuspend.c autosuspend_wakeup_count.c main.c ${LOCAL_LIBS} -o ${EXECUTABLE}
 	if test "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" || test "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4"; then
-		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
+		oe_runmake all -C ${SRC-DIR} ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
 	else
-		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
+		oe_runmake all -C ${SRC-DIR} ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
 	fi
 }
 
 do_install() {
 	install -d ${D}${bindir}/
-	echo "Installing image PN ${PN}"
-	echo "Installing image systemd_unitdir ${systemd_unitdir}"
-	echo "Installing image D ${D}"
-	echo "Installing image B ${B}"
+	install -m 0755 ${SRC-DIR}/autosuspend ${D}${bindir}/
 	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
 		install -d ${D}${systemd_unitdir}/system/
 		install -m 0644 ${B}/autosuspend.service ${D}${systemd_unitdir}/system
-    else
+        else
 		install -d ${D}${sysconfdir}/init.d
-        install -m 0755  ${S}/lynq-autosuspend.sh ${D}${sysconfdir}/init.d/
-        install -d ${D}${sysconfdir}/rcS.d
-        ln -s ../init.d/lynq-autosuspend.sh ${D}${sysconfdir}/rcS.d/S82lynq-autosuspend-service
+        	install -m 0755  ${SRC-DIR}/lynq-autosuspend.sh ${D}${sysconfdir}/init.d/
+        	install -d ${D}${sysconfdir}/rcS.d
+        	ln -s ../init.d/lynq-autosuspend.sh ${D}${sysconfdir}/rcS.d/S82lynq-autosuspend-service
 	fi
 
-	install -m 0755 ${S}/autosuspend ${D}${bindir}/
-	install -d ${D}${includedir}
 }
 
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb
index b89f7ab..89ed7f6 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb
@@ -2,31 +2,28 @@
 
 DESCRIPTION = "lynq-fota-backup.service"
 
-LICENSE = "MIT"
+LICENSE = "CLOSED"
 ##License checksum file is always required
 LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=c794e8ff1acd3b7f156a6497e780dd54"
 
-SRC_URI = "file://lynq-fota-backup.cpp \
-	   file://lynq-fota-backup.sh \
-	   file://makefile \
-	   file://lynq-fota-backup.service \
-	   file://LICENSE \
-"
+WORKONSRC = "${TOPDIR}/../src/lynq/framework/lynq-fota-backup"
 
-
+FILESEXTRAPATHS_prepend :="${TOPDIR}/../src/lynq/framework/:"
+SRC_URI = " \
+          file://lynq-fota-backup \
+          "
+SRC-DIR = "${S}/../lynq-fota-backup"
 TARGET_CC_ARCH += "${LDFLAGS}"
-
-
 DEPENDS += "liblynq-log liblynq-uci liblynq-qser-fota"
-S = "${WORKDIR}"
+
 #INHIBIT_PACKAGE_STRIP = "1"
 do_compile () {
 
 	
 	if test "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" || test "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4"; then
-		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
+		oe_runmake all -C ${SRC-DIR} ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
 	else
-		oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
+		oe_runmake all -C ${SRC-DIR} ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
 	fi
 }
 #INHIBIT_PACKAGE_STRIP = "1"
@@ -34,21 +31,16 @@
 
 do_install() {
 	install -d ${D}${bindir}/
-	echo "Installing image PN ${PN}"
-	echo "Installing image systemd_unitdir ${systemd_unitdir}"
-	echo "Installing image D ${D}"
-	echo "Installing image B ${B}"
+	install -m 0755 ${SRC-DIR}/lynq-fota-backup ${D}${bindir}/
 
 	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
 		install -d ${D}${systemd_unitdir}/system/
 		install -m 0644 ${B}/lynq-fota-backup.service ${D}${systemd_unitdir}/system
     else
 		install -d ${D}${sysconfdir}/init.d
-        	install -m 0755  ${S}/lynq-fota-backup.sh ${D}${sysconfdir}/init.d/
+        	install -m 0755  ${SRC-DIR}/lynq-fota-backup.sh ${D}${sysconfdir}/init.d/
         	install -d ${D}${sysconfdir}/rcS.d
         	ln -s ../init.d/lynq-fota-backup.sh ${D}${sysconfdir}/rcS.d/S82lynq-fota-backup-service
 	fi
 
-	install -m 0755 ${S}/lynq-fota-backup ${D}${bindir}/
-	install -d ${D}${includedir}
 }
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/Makefile b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/Makefile
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/Makefile
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/Makefile
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/alsatest.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/alsatest.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/alsatest.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/alsatest.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/audio_mixer_ctrl.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/audio_mixer_ctrl.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/audio_mixer_ctrl.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/audio_mixer_ctrl.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/include/tinyalsa/asoundlib.h b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/include/tinyalsa/asoundlib.h
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/include/tinyalsa/asoundlib.h
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/include/tinyalsa/asoundlib.h
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/include/tinyalsa/audio_mixer_ctrl.h b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/include/tinyalsa/audio_mixer_ctrl.h
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/include/tinyalsa/audio_mixer_ctrl.h
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/include/tinyalsa/audio_mixer_ctrl.h
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/mixer.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/mixer.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/mixer.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/mixer.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/pcm.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/pcm.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/pcm.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/pcm.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinyalsa_voice_ref.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinyalsa_voice_ref.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinyalsa_voice_ref.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinyalsa_voice_ref.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinycap.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinycap.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinycap.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinycap.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinymix.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinymix.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinymix.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinymix.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinypcminfo.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinypcminfo.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinypcminfo.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinypcminfo.c
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinyplay.c b/cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinyplay.c
similarity index 100%
rename from cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/tinyplay.c
rename to cap/zx297520v3/sources/meta-zxic/recipes-app/libtinyalsa/files/libtinyalsa/tinyplay.c
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
index ef22244..49e7188 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-kernel/linux/files/zx297520v3/linux-5_10-vehicle_dc_ref-normal-defconfig
@@ -156,7 +156,7 @@
 CONFIG_SIGNALFD=y
 CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
-# CONFIG_SHMEM is not set
+CONFIG_SHMEM=y
 CONFIG_AIO=y
 CONFIG_IO_URING=y
 CONFIG_ADVISE_SYSCALLS=y
@@ -2491,6 +2491,10 @@
 # CONFIG_PROC_CHILDREN is not set
 CONFIG_KERNFS=y
 CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_MEMFD_CREATE=y
 # CONFIG_CONFIGFS_FS is not set
 # end of Pseudo filesystems
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/LICENSE b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/LICENSE
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/LICENSE
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/LICENSE
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.c b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend.c
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.c
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend.c
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.h b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend.h
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.h
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend.h
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.service b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend.service
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.service
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend.service
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_ops.h b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend_ops.h
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_ops.h
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend_ops.h
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_wakeup_count.c b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend_wakeup_count.c
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_wakeup_count.c
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/autosuspend_wakeup_count.c
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/lynq-autosuspend.sh b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/lynq-autosuspend.sh
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/lynq-autosuspend.sh
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/lynq-autosuspend.sh
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/main.c b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/main.c
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/main.c
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/main.c
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/makefile b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/makefile
similarity index 94%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/makefile
rename to cap/zx297520v3/src/lynq/framework/lynq-autosuspend/makefile
index ca263bf..7878aff 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/makefile
+++ b/cap/zx297520v3/src/lynq/framework/lynq-autosuspend/makefile
@@ -34,7 +34,9 @@
 LOCAL_PATH   = .
 
 LOCAL_C_INCLUDES = \
-  -I.   -I$(ROOT)$(includedir)/liblog -I$(ROOT)$(includedir) \
+  -I.   \
+  -I$(ROOT)$(includedir)/liblog \
+  -I$(ROOT)$(includedir) \
 
 
 
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/LICENSE b/cap/zx297520v3/src/lynq/framework/lynq-fota-backup/LICENSE
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/LICENSE
rename to cap/zx297520v3/src/lynq/framework/lynq-fota-backup/LICENSE
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.cpp b/cap/zx297520v3/src/lynq/framework/lynq-fota-backup/lynq-fota-backup.cpp
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.cpp
rename to cap/zx297520v3/src/lynq/framework/lynq-fota-backup/lynq-fota-backup.cpp
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.service b/cap/zx297520v3/src/lynq/framework/lynq-fota-backup/lynq-fota-backup.service
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.service
rename to cap/zx297520v3/src/lynq/framework/lynq-fota-backup/lynq-fota-backup.service
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.sh b/cap/zx297520v3/src/lynq/framework/lynq-fota-backup/lynq-fota-backup.sh
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.sh
rename to cap/zx297520v3/src/lynq/framework/lynq-fota-backup/lynq-fota-backup.sh
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/makefile b/cap/zx297520v3/src/lynq/framework/lynq-fota-backup/makefile
similarity index 100%
rename from cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/makefile
rename to cap/zx297520v3/src/lynq/framework/lynq-fota-backup/makefile
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ecall/eCall.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ecall/eCall.cpp
index dd0b7ff..fa901f9 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ecall/eCall.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ecall/eCall.cpp
@@ -424,8 +424,7 @@
     }
     else if(sig.sival_int == redial_sig_value) {
         redial_tag = REDIAL_EXPIRES;
-        RequestInfo* pRI = creatRILInfoAndInit(RIL_REQUEST_ECALL_RESET_IVS, UDP,RIL_SOCKET_ID(fast_ecall_socket_id));
-        resetIVS(0, NULL, RIL_SOCKET_ID(fast_ecall_socket_id), pRI);
+        resetEcallIVSandAudio(UDP, RIL_SOCKET_ID(fast_ecall_socket_id));      
         fast_argc = 0;
         fast_argv.clear();
      
@@ -632,7 +631,7 @@
         stop_ecall_timer(sRedialTimer, redial_sig_value);
 		
         redial_tag = REDIAL_SUCCESS;
-        resetEcallIVSandAudio(RSPD, soc_id);
+        resetEcallIVSandAudio(RSPD, RIL_SOCKET_ID(fast_ecall_socket_id));
         saveEcallRecord(p_cur->ind);
 
         act_fecall_socid = soc_id;
@@ -724,8 +723,7 @@
             stop_ecall_timer(sT6,sT6_sig_value);
             stop_ecall_timer(sT7,sT7_sig_value);
             ecall_test_sub_recover();
-            RequestInfo* pRI = creatRILInfoAndInit(RIL_REQUEST_ECALL_RESET_IVS, UDP, soc_id);
-            resetIVS(0, NULL, soc_id, pRI);
+            resetEcallIVSandAudio(UDP, soc_id);                 
             redialFastEcall(soc_id);
         }
         else {   /* redial_tag == REDIAL_SUCCESS || redial_tag == REDIAL_EXPIRES */
@@ -1012,7 +1010,7 @@
 //RIL_REQUEST_ECALL_RESET_IVS
 int resetIVS(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI) {
   android::Parcel p;
-
+/*
   if (getSpeechStatus() == SPEECH_OFF) {
     if (get_audio_path() == 0) {
       setSpeechAndStatus(1);
@@ -1020,7 +1018,7 @@
       setSpeechAndStatus(2);
     }
   }
-
+*/
   //paramter none
   pRI->pCI->dispatchFunction(p, pRI);
   return 0;
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-sdk-ready/lynq_timer.cpp b/cap/zx297520v3/src/lynq/framework/lynq-sdk-ready/lynq_timer.cpp
index 2b6874b..2c7d1e7 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-sdk-ready/lynq_timer.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-sdk-ready/lynq_timer.cpp
@@ -635,6 +635,7 @@
     int ret;

 

     ALOGD("start lynq-sdk-ready\n");

+/*

 #ifdef MOBILETEK_TARGET_PLATFORM_T106

     ret = pthread_create(&thid_2,NULL,t106_check_uci,NULL);

 #endif

@@ -647,7 +648,7 @@
         return;

     }

     pthread_detach(thid_2);

-

+*/

     ret = pthread_create(&thid, &a, timer_request_imei, NULL);

     if(ret != 0){

         ALOGD("pthread_create error!!!");

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp
index d25675a..23a3b45 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-call/lynq_call_ecall.cpp
@@ -52,7 +52,7 @@
 static LYNQ_ECall_Indication s_IncomingEcallIndication;

 int s_IncomingEcallId=INVALID_ID;

 LYNQ_ECall_Variant s_EcallVariant=LYNQ_ECALL_VAR_NONE;

-int s_ecall_whether_preempt=0;

+int s_ecall_whether_preempt=0x02;

 

 void sendSignalIncomingECallEvent()

 {

@@ -180,7 +180,7 @@
     {

         return true;

     }

-    else if(old_variant==LYNQ_ECALL_DAILING_STATE_NONE)

+    else if(old_variant==LYNQ_ECALL_TYPE_TEST)

     {

         return true;

     }        

@@ -235,6 +235,10 @@
             ret=lynq_clear_current_call();

             LYERRLOG("ecall clear conflict call, relase current normal call ret is %d",ret);                         

         }

+    else 

+    {

+            LYINFLOG("ecall clear conflict call, exits conflict normal call, let lower platform release them");

+    }

         return RESULT_OK;          

     }

 

@@ -449,7 +453,7 @@
 

     if(handle==NULL || ((*handle) >= LYNQ_CALL_MAX) || msd_length > MSD_MAX_LENGTH || msd_length <= 0 || msd_data ==NULL)

     {

-        LYERRLOG("lynq_set_msd handle is NULL or *handle %d is greater or equeal to %d or msd_length %d is greater than %d or msd_data %s is NULL, parameter error",*handle,LYNQ_CALL_MAX,msd_length,MSD_MAX_LENGTH, msd_data);

+        LYERRLOG("lynq_set_msd handle is NULL or handle %d is null or msd_length %d is greater than %d or msd_data %s is NULL, parameter error", handle, msd_length,MSD_MAX_LENGTH, msd_data);

         return LYNQ_E_PARAMETER_ANONALY;

     }    

 

@@ -479,7 +483,7 @@
     }

     if(enable<0)

     {

-       if(enable >-200)

+       if(enable >-300)

        {

            goto set_ivs_end;

 //         lynq_set_common_request(RIL_REQUEST_ECALL_SET_IVS,1,"%d",enable);

@@ -490,7 +494,7 @@
        } 

        else

        {

-           s_ecall_whether_preempt= ((-200-enable) & 0x11);           

+           s_ecall_whether_preempt= ((-300-enable) & 0x11);           

        }

        return RESULT_OK;   

     }

@@ -602,12 +606,15 @@
            {

                LYINFLOG("ecall is dialing, recv suc indication");

                s_module_is_ecall_dial = LYNQ_ECALL_DAILING_STATE_NONE;

-               if(ecallId >0 && find_call_id_with_call_id(ecallId)==INVALID_ID)

+               if(ecallId >0)

                {

-                     LYINFLOG("add ecall in loacl list");

-                     s_ecallId = ecallId;

-                     addAddr("ecall",s_ecallId);               

-               } 

+                   if(find_call_id_with_call_id(ecallId)==INVALID_ID)

+                   {

+                        LYINFLOG("add ecall in loacl list");                             	 

+                        addAddr("ecall",ecallId);               

+                   }	

+                   s_ecallId = ecallId; //API-871 ecall id maybe exists in local list as noraml call to be replaced

+               }     	       	   

                send_signal_to_wait_call_state=true;                             

            }        

            else if(ecallId >0 && (find_call_id_with_call_id(ecallId)==INVALID_ID) &&  (s_EcallVariant != LYNQ_ECALL_CALLBACK))

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 bb659ef..6fbedd5 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
@@ -362,7 +362,7 @@
 int qser_wakelock_create(const char *name, size_t len)
 {
     int ret;
-    if(name == NULL)
+    if((name == NULL) || (strlen(name) > 64))
     {
         return E_INPUT_ERROR;
     }
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp
index 657d8c0..5209dd7 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp
@@ -290,7 +290,7 @@
 
 int qser_voice_set_msd(int callid, const unsigned char *msd_data, int msd_length)
 {           
-    return lynq_set_msd(callid, msd_data, msd_length);
+    return lynq_set_msd(&callid, msd_data, msd_length);
 }
 
 void *ecall_thread_recv(void *context)
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-wifi/lynq-qser-wifi.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-wifi/lynq-qser-wifi.cpp
index 8c7d6c2..f3cb0bf 100644
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-wifi/lynq-qser-wifi.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-wifi/lynq-qser-wifi.cpp
@@ -18,6 +18,14 @@
 static lynq_wifi_event_handle_sta wifi_event_handle_sta = NULL;
 static void *global_arg = NULL;
 static int wifi_enable_flag = WIFI_ENABLE_FLAG_DEFAULT;
+static bool lynq_wifi_enable = false;
+#define WIFI_ENABLE_JUDGE() do{ \
+    if(lynq_wifi_enable == false) \
+    { \
+        LYINFLOG("[%s ] wifi not enable\n", __func__); \
+        return -1;  \
+    } \
+}while (0);
 
 /********************************************************************
 * @brief: lynq_to_sc_auth_mode, The encryption mode of wifi is changed from api to platform
@@ -235,7 +243,7 @@
         }
         LYINFLOG("%s:%d,%d,%s,%d\n", __func__, index, pre_status, p_msg->ifname, p_msg->status);
         event.id = LYNQ_WIFI_EVENT_AP_STATION;
-        event.status = (lynq_wifi_status_e)pre_status;
+        event.status = (lynq_wifi_status_e)p_msg->status;
         wifi_event_handle(&event, global_arg);
     }
     else
@@ -396,6 +404,7 @@
 *********************************************************************/
 int qser_wifi_work_mode_set(lynq_wifi_work_mode_e type)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_work_mode_e mode;
     ret = sc_wifi_work_mode_get(&mode);
@@ -428,6 +437,7 @@
 *********************************************************************/
 int qser_wifi_work_mode_get(lynq_wifi_work_mode_e *type)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_work_mode_e mode;
     ret = sc_wifi_work_mode_get(&mode);
@@ -478,6 +488,11 @@
 *********************************************************************/
 int qser_wifi_enable(void)
 {
+    if(lynq_wifi_enable)
+    {
+        LYERRLOG("[%s ] The wifi is enabled\n", __func__);
+        return -1;
+    }
     wifi_enable_flag = WIFI_ENABLE_FLAG_DEFAULT;
     char wifiAvailable[8] = {0};
     sc_cfg_get("wifiAvailable", wifiAvailable, sizeof(wifiAvailable));
@@ -571,7 +586,17 @@
         ret = -1;
         break;
     }
-    LYINFLOG("[%s ]\n", __func__);
+    LYINFLOG("[%s ] ret = %d\n", __func__,ret);
+    if(ret != 0)
+    {
+        int ret_uninit = sc_wifi_uninit();
+        if (0 != ret_uninit)
+        {
+            LYERRLOG("[%s ] uninit ret = %d\n", __func__,ret_uninit);
+        }
+    }
+    else
+        lynq_wifi_enable = true;
     return ret;
 }
 
@@ -586,6 +611,11 @@
 {
     int ret = -1;
     wifi_enable_flag = WIFI_ENABLE_FLAG_DEFAULT;
+    if(lynq_wifi_enable == false)
+    {
+        LYERRLOG("[%s ] WiFi not turned on\n", __func__);
+        return -1;
+    }
     ret = sc_wifi_disable();
     if (0 != ret)
     {
@@ -622,6 +652,7 @@
         LYERRLOG("[%s ] disable ret = %d\n", __func__,ret);
         return ret;
     }
+    lynq_wifi_enable = false;
     ret = sc_wifi_uninit();
     if (0 != ret)
     {
@@ -642,6 +673,7 @@
 *********************************************************************/
 int qser_wifi_ap_get_status(lynq_wifi_ap_index_e idx, lynq_wifi_ap_status_t *ap_stat)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_status_t stat;
     ret = sc_wifi_ap_get_status((sc_wifi_ap_index_e)idx, &stat);
@@ -669,6 +701,7 @@
 *********************************************************************/
 int  qser_wifi_ap_acl_set(lynq_wifi_ap_index_e idx, lynq_wifi_mac_acl_rule_e acl_rule, char *mac_list)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     if (mac_list == NULL)
     {
@@ -699,6 +732,7 @@
 *********************************************************************/
 int  qser_wifi_ap_acl_get(lynq_wifi_ap_index_e idx, lynq_wifi_mac_acl_rule_e *acl_rule, char *mac_list)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (mac_list == NULL || acl_rule == NULL)
@@ -729,6 +763,7 @@
 *********************************************************************/
 int  qser_wifi_ap_ssid_set(lynq_wifi_ap_index_e idx, const char *ssid)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     if (ssid == NULL)
     {
@@ -756,6 +791,7 @@
 *********************************************************************/
 int  qser_wifi_ap_ssid_get(lynq_wifi_ap_index_e idx, char *ssid)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     ret = sc_wifi_ap_param_get((sc_wifi_ap_index_e)idx, &param);
@@ -780,6 +816,7 @@
 *********************************************************************/
 int  qser_wifi_ap_ssid_hide_set(lynq_wifi_ap_index_e idx, bool hide)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_ssid_hidden_set((sc_wifi_ap_index_e)idx, (int)hide);
     if (0 != ret)
@@ -802,6 +839,7 @@
 *********************************************************************/
 int  qser_wifi_ap_ssid_hide_get(lynq_wifi_ap_index_e idx, bool *hide)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (hide == NULL)
@@ -831,6 +869,7 @@
 *********************************************************************/
 int  qser_wifi_ap_mode_set(lynq_wifi_ap_index_e idx, lynq_wifi_mode_type_e mode)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_mode_set((sc_wifi_ap_index_e)idx, lynq_to_sc_mode(mode));
     if (0 != ret)
@@ -853,6 +892,7 @@
 *********************************************************************/
 int  qser_wifi_ap_mode_get(lynq_wifi_ap_index_e idx, lynq_wifi_mode_type_e *mode)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (mode == NULL)
@@ -882,6 +922,7 @@
 *********************************************************************/
 int  qser_wifi_ap_bandwidth_set(lynq_wifi_ap_index_e idx, lynq_wifi_bandwidth_type_e bandwidth)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_bandwidth_set((sc_wifi_ap_index_e)idx, (sc_wifi_bandwidth_e)bandwidth);
     if (0 != ret)
@@ -904,6 +945,7 @@
 *********************************************************************/
 int  qser_wifi_ap_bandwidth_get(lynq_wifi_ap_index_e idx, lynq_wifi_bandwidth_type_e *bandwidth)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (bandwidth == NULL)
@@ -934,6 +976,7 @@
 *********************************************************************/
 int  qser_wifi_ap_channel_set(lynq_wifi_ap_index_e idx, const char *country_code, int channel)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     if (country_code == NULL)
     {
@@ -962,6 +1005,7 @@
 *********************************************************************/
 int  qser_wifi_ap_channel_get(lynq_wifi_ap_index_e idx, char *country_code, int *channel)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (country_code == NULL || channel == NULL)
@@ -993,6 +1037,7 @@
 *********************************************************************/
 int qser_wifi_ap_auth_set(lynq_wifi_ap_index_e idx, lynq_wifi_auth_e auth_mode, const char *auth_passwd)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     if (auth_passwd == NULL)
     {
@@ -1025,6 +1070,7 @@
 *********************************************************************/
 int qser_wifi_ap_auth_get(lynq_wifi_ap_index_e idx, lynq_wifi_auth_e *auth_mode, char *auth_passwd)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (auth_mode == NULL || auth_passwd == NULL)
@@ -1056,6 +1102,7 @@
 *********************************************************************/
 int qser_wifi_ap_auth_get_s(lynq_wifi_ap_index_e idx, lynq_wifi_ap_auth_t *auth_mode)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (auth_mode == NULL)
@@ -1088,6 +1135,7 @@
 *********************************************************************/
 int  qser_wifi_ap_max_sta_set(lynq_wifi_ap_index_e idx, int max_sta_num)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_max_sta_num_set((sc_wifi_ap_index_e)idx, max_sta_num);
     if (0 != ret)
@@ -1110,6 +1158,7 @@
 *********************************************************************/
 int  qser_wifi_ap_max_sta_get(lynq_wifi_ap_index_e idx, int *max_sta_num)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_ap_param_t param = {0};
     if (max_sta_num == NULL)
@@ -1138,6 +1187,7 @@
 *********************************************************************/
 int qser_wifi_lanhost_get_list(lynq_lanhost_ts *lynq_arrays)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     int i = 0;
     sc_lanhost_t array[32] = {0};
@@ -1178,6 +1228,7 @@
 *********************************************************************/
 int qser_wifi_get_ap_pkt_stats(lynq_wifi_ap_index_e idx, lynq_wifi_pkt_stats_t *pkt_stat)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_pkt_stats_t stat = {0};
     if (pkt_stat == NULL)
@@ -1216,6 +1267,7 @@
 *********************************************************************/
 int  qser_wifi_ap_start(lynq_wifi_ap_index_e idx)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_start((sc_wifi_ap_index_e)idx);
     if (0 != ret)
@@ -1237,6 +1289,7 @@
 *********************************************************************/
 int  qser_wifi_ap_stop(lynq_wifi_ap_index_e idx)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_stop((sc_wifi_ap_index_e)idx);
     if (0 != ret)
@@ -1258,6 +1311,7 @@
 *********************************************************************/
 int  qser_wifi_ap_restart(lynq_wifi_ap_index_e idx)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_ap_stop((sc_wifi_ap_index_e)idx);
     if (0 != ret)
@@ -1285,6 +1339,7 @@
 *********************************************************************/
 int  qser_wifi_sta_param_set(lynq_wifi_sta_param_t *param_stat)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_sta_param_t stat = {0};
     stat.auth = lynq_to_sc_auth_mode(param_stat->auth);
@@ -1311,6 +1366,7 @@
 *********************************************************************/
 int  qser_wifi_sta_param_get(lynq_wifi_sta_param_t *param_stat)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_sta_param_t stat = {0};
     ret = sc_wifi_sta_param_get(&stat);
@@ -1337,6 +1393,7 @@
 *********************************************************************/
 int qser_wifi_sta_get_status(lynq_wifi_sta_status_t *status_stat)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_sta_status_t stat;
     ret = sc_wifi_sta_get_status(&stat);
@@ -1361,6 +1418,7 @@
 *********************************************************************/
 int qser_wifi_get_sta_pkt_stats(lynq_wifi_pkt_stats_t *pkt_stat)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     sc_wifi_pkt_stats_t stat = {0};
     if (pkt_stat == NULL)
@@ -1397,6 +1455,7 @@
 *********************************************************************/
 int  qser_wifi_sta_start_scan(void)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_sta_start_scan();
     if (0 != ret)
@@ -1417,6 +1476,7 @@
 *********************************************************************/
 int  qser_wifi_sta_start(void)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_sta_start();
     if (0 != ret)
@@ -1437,6 +1497,7 @@
 *********************************************************************/
 int  qser_wifi_sta_stop(void)
 {
+    WIFI_ENABLE_JUDGE();
     int ret = -1;
     ret = sc_wifi_sta_stop();
     if (0 != ret)
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/tty/tty_io.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/tty/tty_io.c
old mode 100644
new mode 100755
index 669aef7..8591d06
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/tty/tty_io.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/tty/tty_io.c
@@ -771,6 +771,12 @@
 	if (tty->stopped)
 		return;
 	tty->stopped = 1;
+	
+	//l.yang add log for bug T106-134 start
+	if(tty->index == 1){
+		printk("__stop_tty got stop cmd\n");
+	}
+	//l.yang add log for bug T106-134 end
 	if (tty->ops->stop)
 		tty->ops->stop(tty);
 }
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
index fef445f..34410ce 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
@@ -766,35 +766,38 @@
 		/* set iface */

 		snd_soc_component_write(component, ES8311_SDPOUT_REG0A, iface);

 	}

-/* yu.dong@20240508[ZXW-277]Modified Platform CODEC ES8311 Compatible with I2S and TDM Modes start */
-#ifdef CONFIG_USE_TOP_TDM
+/* yu.dong@20240816[ZXW-277]Disable soft ramp, optimize playback 44.1k noise issue start */
+#if defined(CONFIG_USE_TOP_TDM)
+    snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x1a);
 #else
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x98);
+    snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x98);
+#endif
 	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG03, 0x1b);
 	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG04, 0x1b);
-	/*
+
 	if(rate == 8000){
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0xbb);
-		  pr_info("%s rate:%d\n",__FUNCTION__,rate);
-
-		}
-	if(rate == 16000){
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x55);
-			  pr_info("%s rate:%d\n",__FUNCTION__,rate);
-
-		}
-	*/
-	if(rate == 44100){
-
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x90);
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG03, 0x1d);
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG04, 0x1d);
-	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x00);
-			  pr_info("%s rate:%d\n",__FUNCTION__,rate);
-
-		}
+#if defined(CONFIG_USE_TOP_TDM)
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x00);
+#else
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0xbb);
 #endif
-/* yu.dong@20240508[ZXW-277]Modified Platform CODEC ES8311 Compatible with I2S and TDM Modes end */
+		pr_info("%s rate:%d\n",__FUNCTION__,rate);
+
+	}
+
+	if(rate == 16000){
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x55);
+        pr_info("%s rate:%d\n",__FUNCTION__,rate);
+	}
+
+	if(rate == 44100){
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x00);
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG03, 0x10);
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG04, 0x20);
+        snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x00);
+        pr_info("%s rate:%d\n",__FUNCTION__,rate);
+	}
+/* yu.dong@20240816[ZXW-277]Disable soft ramp, optimize playback 44.1k noise issue end */
 	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG06, 0x18);
 	snd_soc_component_write(component, ES8311_CLK_MANAGER_REG07, 0x06);
 
@@ -893,7 +896,7 @@
 		snd_soc_component_write(component, ES8311_ADC_REG15, 0x40);

 		snd_soc_component_write(component, ES8311_ADC_REG1B, 0x0A);

 		snd_soc_component_write(component, ES8311_ADC_REG1C, 0x6A);

-		snd_soc_component_write(component, ES8311_DAC_REG37, 0x48);

+		snd_soc_component_write(component, ES8311_DAC_REG37, 0x08); //0 – disable soft ramp
 /* yu.dong@20240718[ZXW-277]Optimizing Recording in CODEC 8311 TDM Mode start*/
 #if defined(CONFIG_USE_TOP_TDM)
         snd_soc_component_write(component, ES8311_CLK_MANAGER_REG01, 0x9f);
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/wlan_proxy/wlan_proxy.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/wlan_proxy/wlan_proxy.c
index 7d16fde..498e319 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/wlan_proxy/wlan_proxy.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/wlan_proxy/wlan_proxy.c
@@ -964,8 +964,10 @@
 	sc_cfg_get("MAX_Access_num_5g", s_max_sta_num, sizeof(s_max_sta_num));
 	p_param->max_sta_num = atoi(s_max_sta_num);
 
-	sc_cfg_get("CountryCode_5g", p_param->countrycode, sizeof(p_param->countrycode));
-	
+	// zw.wang [wifi] If the 5G hotspot is enabled, the country code cannot be obtained by calling qser_wifi_ap_channel_get on 20240830 start
+	sc_cfg_get("CountryCode", p_param->countrycode, sizeof(p_param->countrycode));
+	// zw.wang [wifi] If the 5G hotspot is enabled, the country code cannot be obtained by calling qser_wifi_ap_channel_get on 20240830 start
+
 	sc_cfg_get("ACL_mode_5g", s_acl_rule, sizeof(s_acl_rule));
 	p_param->acl_rule = atoi(s_acl_rule);
 	if (p_param->acl_rule == 1) {
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libsctel/wifi/sc_wifi.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libsctel/wifi/sc_wifi.c
index df1cb6d..5de753a 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libsctel/wifi/sc_wifi.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/sdk/libsctel/wifi/sc_wifi.c
@@ -835,13 +835,14 @@
 		SCLOGE("sc_wifi_ap_ssid_set ssid too long:%s\n", ssid);

 		return SC_ERR_BADPARAM;

 	}

-	

+#if 0 //[wifi] The hotspot whose ssid is Chinese or special characters cannot be connected on 20240830

 	for (i = 0; i < strlen(ssid); i++) {

 		if (strchr("`$&*\\[];:\'\"<>,",ssid[i]) || !isprint(ssid[i])) {

 			SCLOGE("sc_wifi_ap_ssid_set invalid ssid:%s\n", ssid);

 			return SC_ERR_BADPARAM;

 		}

 	}

+#endif

 	req_data.idx = idx;

 	snprintf(req_data.ssid, sizeof(req_data.ssid), "%s", ssid);