Merge "    [Bugfix][T106BUG-276]fix set smsc error bug"
diff --git a/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/etc_ro/config/auto_apn/auto_apn.db b/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/etc_ro/config/auto_apn/auto_apn.db
index 6a6d698..b9f65db 100644
--- a/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/etc_ro/config/auto_apn/auto_apn.db
+++ b/ap/project/zx297520v3/prj_vehicle_dc_ref/fs/normal/rootfs/etc_ro/config/auto_apn/auto_apn.db
Binary files differ
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear.inc b/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear.inc
index e70e030..76d89cc 100755
--- a/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear.inc
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear.inc
@@ -14,8 +14,10 @@
 
 DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
+#l.yang modify for feature  id ZXW-174 2023/10/28 start 
 SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \
            file://0001-urandom-xauth-changes-to-options.h.patch \
+           file://0100-zxic-modify-DEFAULT_PATH.patch \
            file://init \
            file://dropbearkey.service \
            file://dropbear@.service \
@@ -23,6 +25,7 @@
            file://dropbear.default \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
            ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} "
+#l.yang modify for feature  id ZXW-174 2023/10/28 end
 
 PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \
                file://0006-dropbear-configuration-file.patch \
diff --git a/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear/0100-zxic-modify-DEFAULT_PATH.patch b/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear/0100-zxic-modify-DEFAULT_PATH.patch
new file mode 100755
index 0000000..a1f45a2
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic/recipes-core/dropbear/dropbear/0100-zxic-modify-DEFAULT_PATH.patch
@@ -0,0 +1,25 @@
+From 49bfddc165f9e7ec7fe0d8189e7ed430b5284315 Mon Sep 17 00:00:00 2001
+From: =?utf-8?q?=E5=91=A8=E5=9B=BD=E5=9D=A1=200318000136?=
+ <zhou.guopo@sanechips.com.cn>
+Date: Thu, 26 Oct 2023 16:04:55 +0800
+Subject: [PATCH] modify DEFAULT_PATH
+
+---
+ default_options.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/default_options.h b/default_options.h
+index 7ff1394..6831c6d 100644
+--- a/default_options.h
++++ b/default_options.h
+@@ -309,6 +309,6 @@ be overridden at runtime with -I. 0 disables idle timeouts */
+ #define DEFAULT_IDLE_TIMEOUT 0
+ 
+ /* The default path. This will often get replaced by the shell */
+-#define DEFAULT_PATH "/usr/bin:/bin"
++#define DEFAULT_PATH "/sbin:/usr/sbin:/usr/bin:/bin"
+ 
+ #endif /* DROPBEAR_DEFAULT_OPTIONS_H_ */
+-- 
+2.17.1
+
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
index 85767bc..dc996f4 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-data/lynq-qser-data.cpp
@@ -1028,7 +1028,7 @@
     {
         info->profile_idx = profile_idx;
         info->ip_family = ip_family;
-        if (strncmp(data_call_info.type,"IPV4", strlen("IPV4") + 1) == 0)
+        if ((strncmp(data_call_info.type,"IPV4", strlen("IPV4") + 1) == 0) || (strncmp(data_call_info.type,"IP", strlen("IP") + 1) == 0))
         {
             strcpy(info->v4.name,data_call_info.ifname);
             datacall_ipv4_status_judge(data_call_info.status,info);
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h
index 1fe5ab3..e02832b 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/include/lynq_qser_gnss.h
@@ -114,7 +114,7 @@
 int qser_Gnss_Stop(uint32_t h_gnss);
 int qser_Gnss_Delete_Aiding_Data(uint32_t h_gnss,DELETE_AIDING_DATA_TYPE_T flags);
 int qser_Gnss_InjectTime(uint32_t h_gnss,LYNQ_INJECT_TIME_INTO_T *time_info);
-int qser_firmware_update(uint32_t* ph_gnss);
+int qser_firmware_update(uint32_t h_gnss);
 int qser_Gnss_injectEphemeris(uint32_t h_gnss);
 int qser_Gnss_download_tle();
 #ifdef __cplusplus
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp
index 1c4f1bc..c66aafd 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-gnss/src/lynq_qser_gnss.cpp
@@ -242,10 +242,10 @@
     return 0;
 }
 
-int qser_firmware_update(uint32_t* ph_gnss)
+int qser_firmware_update(uint32_t h_gnss)
 {
     int ret;
-    mopen_gnss_firmware_update(*ph_gnss);
+    mopen_gnss_firmware_update(h_gnss);
     if(ret < 0)
     {
         return -1;
@@ -466,7 +466,6 @@
                 return -1;
             }
             lynq_open_gps(1);
-
             if(gpio21_value == 1)
             {
                 ret = set_baudrate(tty_fd, B115200);
@@ -539,7 +538,7 @@
         }
         else if(at_gpsnmea_status == 1)
         {
-            ALOGD("gpsnmea_status = %d\n",at_gpsnmea_status);
+            ALOGE("gpsnmea_status = %d\n",at_gpsnmea_status);
             pthread_create(&thread, NULL, read_gps_data, NULL);
         }
 
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 a9a0b67..6cc38c0 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
@@ -1543,21 +1543,14 @@
 */
 int exec_cmd(const char *cmd, char *result)
 {
-    FILE *pipe = popen(cmd, "r");
-    if(!pipe)
-        return -1;
-
-    char buffer[256] = {0};
-    while(!feof(pipe))
+    /*result is not used temporarily*/
+    int ret = -1;
+    ret = system(cmd);
+    if(ret == -1)
     {
-        if(fgets(buffer, 256, pipe))
-        {
-            result[0] = buffer[0];
-            memset(buffer, 0, sizeof(buffer));
-        }
+        ALOGE("cmd system error\n");
+        return ret;
     }
-    
-    pclose(pipe);
     return 0;
 }
 
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jl3xxx.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jl3xxx.c
index dedebc3..223c6d3 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jl3xxx.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jl3xxx.c
@@ -15,7 +15,7 @@
 #include <linux/phy.h>
 #include <linux/module.h>
 #include <linux/gmac/gmac.h>
-#include "jl.h"
+#include "jlsemi/jl.h"
 
 
 #define DBG(fmt, ...)   printk("xxx: "fmt, ##__VA_ARGS__)
@@ -285,13 +285,12 @@
 	phydev->asym_pause = 0;
 
 	if ((i % 5 == 0) && debug_on) {
-        printk("[%s] link:%d\n", __func__, phydev->link);
-		mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x3);
-	    mdiobus_write(phydev->mdio.bus, 7, 0x0e, 0x8000);
-	    mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x4000 | 0x3);	    
-		printk("[%s] rmii config:0x%x\n", __func__, mdiobus_read(phydev->mdio.bus, 7, 0x0e));
-		
-    }
+            printk("[%s] link:%d\n", __func__, phydev->link);
+            mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x3);
+            mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0e, 0x8000);
+            mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x4000 | 0x3);
+            printk("[%s] cy rmii config:0x%x\n", __func__, mdiobus_read(phydev->mdio.bus, phydev->mdio.addr, 0x0e));
+        }
 	i++;
 
 	return 0;
@@ -300,17 +299,17 @@
 static int jl3_config_init(struct phy_device *phydev)
 {
 	DBG("%s(), an:= %d, if:= %d\n", __func__, phydev->autoneg, phydev->interface);
-	printk("[%s] addr:%d\n", __func__, phydev->mdio.addr);
+	printk("[%s] cy-addr:%d\n", __func__, phydev->mdio.addr);
 //	jl3113_config_init(phydev, ROLE, SPEED_1000);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x3);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0e, 0x8000);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x4000 | 0x3);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0e, 0x46);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x3);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0e, 0x8000);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x4000 | 0x3);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0e, 0x46);
 
-	mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x1);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0e, 0x0000);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x4000 | 0x1);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0e, 0xA000);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x1);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0e, 0x0000);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x4000 | 0x1);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0e, 0xA000);
 
 	return 0;
 }
@@ -334,15 +333,11 @@
 	if(islink == 1)
 		new_phy_status = 1;
 
-	if((org_phy_status == 0)&&(new_phy_status == 1)) {
-	    wt(phydev, 0x3, 0x8000, 0x46);
-        wt(phydev, 0x1, 0x0000, 0xA000);
-        gmac_event_notify(GMAC_ETH_PHY_PLUGIN, NULL);
-    }
-
+	if((org_phy_status == 0)&&(new_phy_status == 1))
+		gmac_event_notify(GMAC_ETH_PHY_PLUGIN, NULL);
 
 	if((org_phy_status == 1)&&(new_phy_status == 0))
-		gmac_event_notify(GMAC_ETH_PHY_PLUGOUT, NULL);
+                gmac_event_notify(GMAC_ETH_PHY_PLUGOUT, NULL);
 
 	return err;
 }
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jlsemi/jlapi.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jlsemi/jlapi.c
index 9fcd250..1da6846 100644
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jlsemi/jlapi.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/drivers/net/phy/jlsemi/jlsemi/jlapi.c
@@ -152,12 +152,11 @@
 {
     int tmp = 0;
 
-	mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x1);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0e, 1);
-	mdiobus_write(phydev->mdio.bus, 7, 0x0d, 0x4000 | 0x1);
-	tmp = mdiobus_read(phydev->mdio.bus, 7, 0x0e);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x1);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0e, 1);
+	mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, 0x0d, 0x4000 | 0x1);
+	tmp = mdiobus_read(phydev->mdio.bus, phydev->mdio.addr, 0x0e);
 	return !!(tmp & BIT2 );
-
 }
 
 void jl3113_config_init(struct phy_device *phydev, jl_role role, int speed/*SPEED_100*/)
diff --git a/update_version.sh b/update_version.sh
index 6f5cc49..07cd2b6 100644
--- 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="T106CN-ZS03.V2.01.01.02P50U04.AP.08.09"
-LYNQ_CAP_INSIDE_VERSION="CAP.08.09"
-LYNQ_CAP_VERSION="CAP.08.09"
+LYNQ_AP_VERSION="T106CN-ZS03.V2.01.01.02P50U04.AP.08.10"
+LYNQ_CAP_INSIDE_VERSION="CAP.08.10"
+LYNQ_CAP_VERSION="CAP.08.10"
 COMMIT_ID="$(git rev-parse HEAD)"
 
 LYNQ_SW_INSIDE_VERSION="LYNQ_CONFIG_VERSION = \"${LYNQ_AP_VERSION}_${LYNQ_CAP_INSIDE_VERSION}\""