Merge "[Bugfix][T108][bug-view-1825]Fix the issue of probability crash when reading data fails" into GSW_V1453
diff --git a/build.sh b/build.sh
index 463ffbf..950ef41 100755
--- a/build.sh
+++ b/build.sh
@@ -187,9 +187,6 @@
if [ ! -f S12gsw_start -a -f ../init.d/gsw_start ];then
ln -s ../init.d/gsw_start S12gsw_start
fi
- mv S10adbd S13adbd
- mv S10dnsmasq S13dnsmasq
- mv S10sdcard_mount S20sdcard_mount
cd $CUR_PWD
diff --git a/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf b/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf
index 1c91b7d..e2e0cbe 100755
--- a/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf
+++ b/marvell/swd/FACT/asr1806_p301_QSPINAND_Trusted_TOS_SDTIM_LPDDR2_AB_MBTK.blf
@@ -1,7 +1,7 @@
[BLF_Version]
Blf_Version_Number = V3.0.0
[UE_Options]
-UE_Boot_Option = 1
+UE_Boot_Option = 0
[Flash_Properties]
Flash_Block_Size = 0x40000
Flash_NandID = 0xffff
diff --git a/mbtk/libgsw_lib/gsw_gnss_interface.c b/mbtk/libgsw_lib/gsw_gnss_interface.c
index d6d7b01..00afd57 100755
--- a/mbtk/libgsw_lib/gsw_gnss_interface.c
+++ b/mbtk/libgsw_lib/gsw_gnss_interface.c
@@ -237,13 +237,10 @@
int mbtk_gnss_set_VTG()
{
int ret;
- char param_buf[32] = {0};
- snprintf(param_buf, 32, "$MSGCFG,2,1000");
- mbtk_gnss_setting=(int(*)(const char *setting_cmd, int))dlsym(dlHandle_gnss, "mbtk_gnss_setting");
- ret = mbtk_gnss_setting(param_buf, QSER_GNSS_TIMEOUT);
+ ret = system("/usr/sbin/gnss_gpio.sh VTG > /dev/null 2>&1");
if(ret != 0)
{
- LOGE("[qser_gnss] mbtk_gnss_setting fail.ret = [%d]", ret);
+ LOGE("[GSW_gnss] mbtk_gnss_set_VTG on fail.ret = [%d]", ret);
return GSW_HAL_NORMAL_FAIL;
}
return GSW_HAL_SUCCESS;
@@ -482,6 +479,13 @@
LOGE("[GSW_gnss] gnss_gpio.sh on fail.ret = [%d]", ret);
return GSW_HAL_NORMAL_FAIL;
}
+ // 记录mbtk_gnss_open前的时间戳
+ struct timespec start_time;
+ if (clock_gettime(CLOCK_MONOTONIC, &start_time) != 0) {
+ LOGE("[GSW_gnss] Failed to get start time");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
mbtk_gnss_open=(int(*)(int,int))dlsym(dlHandle_gnss, "mbtk_gnss_open");
ret = mbtk_gnss_open(255, QSER_GNSS_TIMEOUT);
if(ret != 0)
@@ -499,11 +503,27 @@
if (gnss_switch_op > 0)
gsw_gnss_epo_switch(gnss_switch_op);
*/
+
+ // 记录mbtk_gnss_set_VTG前的时间戳并计算等待时间
+ struct timespec end_time;
+ if (clock_gettime(CLOCK_MONOTONIC, &end_time) != 0) {
+ LOGE("[GSW_gnss] Failed to get end time");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+ long start_ms = start_time.tv_sec * 1000 + start_time.tv_nsec / 1000000;
+ long end_ms = end_time.tv_sec * 1000 + end_time.tv_nsec / 1000000;
+ long diff_ms = end_ms - start_ms;
+ if (diff_ms < 700) {
+ long wait_ms = 700 - diff_ms;
+ usleep(wait_ms * 1000); // 转换为微秒等待
+ }
+
mbtk_gnss_set_VTG();
return GSW_HAL_SUCCESS;
}
+
/**
* @brief SDK interface to stop gnss
* @param
diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
index 0e041ee..0fdf6de 100755
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -1,7 +1,7 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2007-2012 OpenWrt.org
-START=10
+START=13
USE_PROCD=1
PROG=/usr/sbin/dnsmasq
diff --git a/package/services/optee_client/files/etc/init.d/tee-supplicant.init b/package/services/optee_client/files/etc/init.d/tee-supplicant.init
index 810f25b..e911f23 100755
--- a/package/services/optee_client/files/etc/init.d/tee-supplicant.init
+++ b/package/services/optee_client/files/etc/init.d/tee-supplicant.init
@@ -1,6 +1,6 @@
#!/bin/sh /etc/rc.common
-START=25
+START=12
start() {
if [ -e /dev/tee0 ] && [ ! -e /data/tee ]; then
diff --git a/package/utils/adbd/adbd.init b/package/utils/adbd/adbd.init
index 64211a1..1aa2d9c 100755
--- a/package/utils/adbd/adbd.init
+++ b/package/utils/adbd/adbd.init
@@ -2,7 +2,7 @@
# Copyright (C) 2006-2011 OpenWrt.org
# Change by liubin
-START=10
+START=13
STOP=99
USE_PROCD=1
diff --git a/target/linux/mmp/base-files/etc/init.d/sdcard_mount b/target/linux/mmp/base-files/etc/init.d/sdcard_mount
index 45490e5..e85bdc3 100755
--- a/target/linux/mmp/base-files/etc/init.d/sdcard_mount
+++ b/target/linux/mmp/base-files/etc/init.d/sdcard_mount
@@ -2,7 +2,7 @@
# Marvell sd card detect & mount script
# Change by mbtk
-START=10
+START=20
STOP=91
WEBDAV_SD=/www/webdav/sdcard