Merge "[Bugfix][API-619][SMS]Fixing memory leaks" into MR3.0
diff --git a/meta-sdk/meta-sdk.tar.gz b/meta-sdk/meta-sdk.tar.gz
index 7274568..dee47fc 100644
--- a/meta-sdk/meta-sdk.tar.gz
+++ b/meta-sdk/meta-sdk.tar.gz
Binary files differ
diff --git a/meta/meta-mediatek-mt2735/recipes-extended/thermal_core/thermal-core/thermal.conf b/meta/meta-mediatek-mt2735/recipes-extended/thermal_core/thermal-core/thermal.conf
index 7ffd0ee..96298cf 100755
--- a/meta/meta-mediatek-mt2735/recipes-extended/thermal_core/thermal-core/thermal.conf
+++ b/meta/meta-mediatek-mt2735/recipes-extended/thermal_core/thermal-core/thermal.conf
@@ -23,16 +23,16 @@
mode= enabled
policy= step_wise
critical_temp= 115000
-cooler= [mutt-pa1, tx-pwr-pa1, mutt-pa1-no-ims]
-cooler_trip_temp= [82000, 85000, 90000]
+cooler= [tx-pwr-pa1]
+cooler_trip_temp= [85000]
[LTF]
thermal_zone= nrpa_ntc
mode= enabled
policy= step_wise
critical_temp= 115000
-cooler= [mutt-pa2, tx-pwr-pa2, mutt-pa2-no-ims]
-cooler_trip_temp= [82000, 85000, 90000]
+cooler= [tx-pwr-pa2, scg_off_pa2]
+cooler_trip_temp= [85000, 95000]
[LTF]
thermal_zone= rf_ntc
diff --git a/meta/poky/meta/classes/kernel.bbclass b/meta/poky/meta/classes/kernel.bbclass
index c72d1fe..afc2532 100644
--- a/meta/poky/meta/classes/kernel.bbclass
+++ b/meta/poky/meta/classes/kernel.bbclass
@@ -157,9 +157,10 @@
export OS = "${TARGET_OS}"
export CROSS_COMPILE = "${TARGET_PREFIX}"
export KBUILD_BUILD_VERSION = "1"
-export KBUILD_BUILD_USER ?= "oe-user"
-export KBUILD_BUILD_HOST ?= "oe-host"
-
+#LXF 2022.10.10 modify for T8TSK-91 start
+#export KBUILD_BUILD_USER ?= "oe-user"
+#export KBUILD_BUILD_HOST ?= "oe-host"
+#LXF 2022.10.10 modify for T8TSK-91 end
KERNEL_RELEASE ?= "${KERNEL_VERSION}"
# The directory where built kernel lies in the kernel tree
diff --git a/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c b/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
index f488f43..88300aa 100644
--- a/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
+++ b/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
@@ -813,18 +813,19 @@
mt_set_gpio_dir(GPIO25, GPIO_DIR_OUT);
mt_set_gpio_out(GPIO25, GPIO_OUT_ZERO);
- /*
+//you.chen@20220606 modify for wifi begin
mt_set_gpio_mode(GPIO67, 0);
mt_set_gpio_dir(GPIO67, GPIO_DIR_OUT);
mt_set_gpio_out(GPIO67, GPIO_OUT_ZERO);
mt_set_gpio_mode(GPIO68, 0);
- mt_set_gpio_dir(GPIO68, GPIO_DIR_OUT);
- mt_set_gpio_out(GPIO68, GPIO_OUT_ZERO);
+ mt_set_gpio_pull_enable(GPIO68, GPIO_PULL_ENABLE);
+ mt_set_gpio_pull_select(GPIO68, GPIO_PULL_UP);
mt_set_gpio_mode(GPIO69, 0);
- mt_set_gpio_dir(GPIO69, GPIO_DIR_OUT);
- mt_set_gpio_out(GPIO69, GPIO_OUT_ZERO);*/
+ mt_set_gpio_pull_enable(GPIO69, GPIO_PULL_ENABLE);
+ mt_set_gpio_pull_select(GPIO69, GPIO_PULL_UP);
+//you.chen@20220606 modify for wifi end
//tianyan@2021.12.1 modify for DTR/RI gpio start
mt_set_gpio_mode(GPIO6, 1);
diff --git a/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi b/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi
index da98129..bb47281 100644
--- a/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi
+++ b/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi
@@ -1638,40 +1638,53 @@
thermal-sensors = <&tboard_thermistor2>;
trips {
- nrpa_ntc_target: nrpa_ntc_trip@0 {
+ /*nrpa_ntc_target: nrpa_ntc_trip@0 {
temperature = <82000>;
hysteresis = <2000>;
type = "passive";
};
- nrpa_ntc_tx_pwr: nrpa_ntc_trip@1 {
+ */
+ nrpa_ntc_tx_pwr: nrpa_ntc_trip@0 {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
- nrpa_ntc_no_ims: nrpa_ntc_trip@2 {
+ /*nrpa_ntc_no_ims: nrpa_ntc_trip@2 {
temperature = <90000>;
hysteresis = <2000>;
type = "passive";
};
- nrpa_ntc_crit: nrpa_ntc_trip@3 {
+ */
+ nrpa_ntc_scg_off: nrpa_ntc_trip@1 {
+ temperature = <95000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ nrpa_ntc_crit: nrpa_ntc_trip@2 {
temperature = <115000>;
hysteresis = <2000>;
type = "critical";
};
};
cooling-maps {
- map0 {
+ /*map0 {
trip = <&nrpa_ntc_target>;
cooling-device = <&mutt_pa2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
- map1 {
+ */
+ map0 {
trip = <&nrpa_ntc_tx_pwr>;
cooling-device = <&tx_pwr_pa2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
- };
- map2 {
+ };
+ /*map2 {
trip = <&nrpa_ntc_no_ims>;
cooling-device = <&mutt_pa2_no_ims THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
+ */
+ map1 {
+ trip = <&nrpa_ntc_scg_off>;
+ cooling-device = <&scg_off_pa2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
};
};
@@ -1681,21 +1694,23 @@
thermal-sensors = <&tboard_thermistor3>;
trips {
- ltepa_ntc_target: ltepa_ntc_trip@0 {
+ /*ltepa_ntc_target: ltepa_ntc_trip@0 {
temperature = <82000>;
hysteresis = <2000>;
type = "passive";
};
+ */
ltepa_ntc_tx_pwr: ltepa_ntc_trip@1 {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
- ltepa_ntc_no_ims: ltepa_ntc_trip@2 {
+ /*ltepa_ntc_no_ims: ltepa_ntc_trip@2 {
temperature = <90000>;
hysteresis = <2000>;
type = "passive";
};
+ */
ltepa_ntc_crit: ltepa_ntc_trip@3 {
temperature = <115000>;
hysteresis = <2000>;
@@ -1703,18 +1718,20 @@
};
};
cooling-maps {
- map0 {
+ /*map0 {
trip = <<epa_ntc_target>;
cooling-device = <&mutt_pa1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
+ */
map1 {
trip = <<epa_ntc_tx_pwr>;
cooling-device = <&tx_pwr_pa1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
- map2 {
+ /*map2 {
trip = <<epa_ntc_no_ims>;
cooling-device = <&mutt_pa1_no_ims THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
+ */
};
};
diff --git a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c
old mode 100644
new mode 100755
index 6dd83e1..724193d
--- a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1237,8 +1237,13 @@
#if defined(CONFIG_HW_NAT)
/* fast path FP is QDMA. default uses mac1(eth0) */
- if (mac > 1)
- mac = netif_running(eth->netdev[1]) ? 1 : 0;
+ /*Lxf modify for api-604 20220930 start*/
+ if (mac > 1) {
+ netdev = eth->netdev[1];
+ mac = (netdev && netif_running(netdev)) ?
+ eth->mac[1]->id : eth->mac[0]->id;
+ }
+ /*Lxf modify for api-604 20220930 end*/
#endif
if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT ||
!eth->netdev[mac]))
diff --git a/src/kernel/linux/v4.19/drivers/pci/controller/pcie-mediatek-gen3.c b/src/kernel/linux/v4.19/drivers/pci/controller/pcie-mediatek-gen3.c
index de627f9..95d7104 100644
--- a/src/kernel/linux/v4.19/drivers/pci/controller/pcie-mediatek-gen3.c
+++ b/src/kernel/linux/v4.19/drivers/pci/controller/pcie-mediatek-gen3.c
@@ -466,16 +466,20 @@
val |= PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB | PCIE_PE_RSTB;
writel(val, port->base + PCIE_RST_CTRL_REG);
+ //you.chen@202221011 add mtk patch for pcie reset sequence begin
+ msleep(100);
+
/* De-assert reset signals*/
- val &= ~(PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB);
+ val &= ~(PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB | PCIE_PE_RSTB);
writel(val, port->base + PCIE_RST_CTRL_REG);
/* Delay 100ms to wait the reference clocks become stable */
- usleep_range(100 * 1000, 120 * 1000);
+ //usleep_range(100 * 1000, 120 * 1000);
/* De-assert pe reset*/
- val &= ~PCIE_PE_RSTB;
- writel(val, port->base + PCIE_RST_CTRL_REG);
+ //val &= ~PCIE_PE_RSTB;
+ //writel(val, port->base + PCIE_RST_CTRL_REG);
+ //you.chen@202221011 add mtk patch for pcie reset sequence end
/* Check if the link is up or not */
err = readl_poll_timeout(port->base + PCIE_LINK_STATUS_REG, val,
diff --git a/src/kernel/linux/v4.19/scripts/mkcompile_h b/src/kernel/linux/v4.19/scripts/mkcompile_h
index 87f1fc9..aebd613 100755
--- a/src/kernel/linux/v4.19/scripts/mkcompile_h
+++ b/src/kernel/linux/v4.19/scripts/mkcompile_h
@@ -39,7 +39,9 @@
TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
fi
if test -z "$KBUILD_BUILD_USER"; then
- LINUX_COMPILE_BY=$(whoami | sed 's/\\/\\\\/')
+#LXF 2022.10.10 modify for T8TSK-91 start
+ LINUX_COMPILE_BY=${USER}
+#LXF 2022.10.10 modify for T8TSK-91 end
else
LINUX_COMPILE_BY=$KBUILD_BUILD_USER
fi
@@ -48,13 +50,15 @@
else
LINUX_COMPILE_HOST=$KBUILD_BUILD_HOST
fi
+#LXF 2022.10.10 modify for T8TSK-91 start
+COMMITID=$(git rev-parse --short HEAD)
UTS_VERSION="#$VERSION"
CONFIG_FLAGS=""
if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
-UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
-
+UTS_VERSION="$COMMITID $UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
+#LXF 2022.10.10 modify for T8TSK-91 end
# Truncate to maximum length
UTS_LEN=64
@@ -68,8 +72,10 @@
echo \#define UTS_MACHINE \"$ARCH\"
echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
-
- echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\"
+#LXF 2022.10.10 modify for T8TSK-91 start
+ printf '#define LINUX_COMPILE_BY "%s"\n' "$LINUX_COMPILE_BY"
+ #echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\"
+#LXF 2022.10.10 modify for T8TSK-91 end
echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\"
echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | grep ' version ' | sed 's/[[:space:]]*$//'`\"
diff --git a/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c b/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c
old mode 100644
new mode 100755
index 09360ce..c4e9b0e
--- a/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c
+++ b/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c
@@ -1026,10 +1026,13 @@
}
if (debug_level >= 10)
- pr_notice("%s, send to ppe via ETH tx\n", __func__);
+/*Lxf modify for api-604 20220930 start*/
+ pr_notice("%s, send to ppe via %s tx\n", __func__, skb->dev->name);
+
- dev_queue_xmit(skb);
-
+ //dev_queue_xmit(skb);
+ skb->dev->netdev_ops->ndo_start_xmit(skb, skb->dev);
+/*Lxf modify for api-604 20220930 end*/
return 0;
}
@@ -1300,8 +1303,10 @@
if (debug_level >= 7)
pr_notice("%s, bind to cpu done if name = %s\n", __func__, skb->dev->name);
-
- dev_queue_xmit(skb);
+/*Lxf modify for api-604 20220930 start*/
+ //dev_queue_xmit(skb);
+ skb->dev->netdev_ops->ndo_start_xmit(skb, skb->dev);
+/*Lxf modify for api-604 20220930 end*/
return 0;
}
diff --git a/src/lynq/framework/lynq-ril-service/src/data/data_gdbus.cpp b/src/lynq/framework/lynq-ril-service/src/data/data_gdbus.cpp
index f771062..e854df8 100755
--- a/src/lynq/framework/lynq-ril-service/src/data/data_gdbus.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/data/data_gdbus.cpp
@@ -85,7 +85,7 @@
/*Warren add for t103 szzt atsvc 2022/1/5 start*/
int lynqUpdateApnStatus(char *apn,char *apntype,int pdnState,char *ifname)
{
- char BUF[32] = {};
+ char BUF[256] = {};
int len = -1;
if(pdnState==PDN_CONNECTED)
{
diff --git a/src/lynq/framework/lynq-ril-service/src/factory/lynq_factory.cpp b/src/lynq/framework/lynq-ril-service/src/factory/lynq_factory.cpp
index ac7cd11..9006096 100755
--- a/src/lynq/framework/lynq-ril-service/src/factory/lynq_factory.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/factory/lynq_factory.cpp
@@ -106,19 +106,6 @@
return;
}
-#if 0
-static void lynq_get_sim_state(RIL_SIM_COUNT id){
- char *argv[MAX_ARGS];
- if(utils::is_support_dsds()) {
- id = (RIL_SIM_COUNT)get_default_sim_all_except_data();
- } else if(utils::is_suppport_dsss()) {
- id = (RIL_SIM_COUNT)Phone_utils::get_enable_sim_for_dsss();
- }
- RequestInfo *pRI = creatRILInfoAndInit(RIL_REQUEST_GET_SIM_STATUS, UDP, (RIL_SOCKET_ID)(id));
- getIccCardStatus(RIL_REQUEST_GET_SIM_STATUS,argv,(RIL_SOCKET_ID)id,pRI);
-}
-#endif
-
void *thread_test(void *arg){
char gnss_buf[128] = {0};
lynq_factory_response_ttyGS3("+GPS OPEN:OK\n");
@@ -183,47 +170,6 @@
}
void *thread_test_RGMII(void *arg){
- #if 0
- FILE *fp;
- char ipv4[128] = {0};
- fp= popen("ifconfig 'eth1' | grep \"inet addr\" | cut -f 2 -d \":\" | cut -f 1 -d \" \" 2>&1", "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return 0;
- }
- fgets(ipv4,sizeof(ipv4),fp);
- if(strstr(ipv4, "error"))
- {
- lynq_factory_response_ttyGS3("SGMII don't insert\n");
- return 0;
- }
- else
- {
- parse_ipv4(ipv4);
- char cmd[128] = {0};
- sprintf(cmd, "%s %s %s %s", "ping -I eth1", ipv4, "-c4", "2>&1");
- fp=popen(cmd, "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return 0;
- }
- char lynq_factory_buf[1024] = {0};
- while (NULL != fgets(lynq_factory_buf,sizeof(lynq_factory_buf),fp))
- {
- if(strstr(lynq_factory_buf, "Usage"))
- {
- lynq_factory_response_ttyGS3("SGMII cannot recognize IP addresses\n");
- lynq_factory_response_ttyGS3("ERROR\n");
- pclose(fp);
- return 0;
- }
- lynq_factory_response_ttyGS3(lynq_factory_buf);
- }
- lynq_factory_response_ttyGS3("OK\n");
- pclose(fp);
- return 0;
- }
- #endif
char cmd[128] = {0};
FILE *fp;
sprintf(cmd, "%s %s %s %s", "ping -I eth2", rgmii, "-c4", "2>&1");
@@ -272,47 +218,6 @@
*
*/
void *thread_test_SGMII_wtf(void *arg){
- #if 0
- FILE *fp;
- char ipv4[128] = {0};
- fp= popen("ifconfig 'eth1' | grep \"inet addr\" | cut -f 2 -d \":\" | cut -f 1 -d \" \" 2>&1", "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return 0;
- }
- fgets(ipv4,sizeof(ipv4),fp);
- if(strstr(ipv4, "error"))
- {
- lynq_factory_response_ttyGS3("SGMII don't insert\n");
- return 0;
- }
- else
- {
- parse_ipv4(ipv4);
- char cmd[128] = {0};
- sprintf(cmd, "%s %s %s %s", "ping -I eth1", ipv4, "-c4", "2>&1");
- fp=popen(cmd, "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return 0;
- }
- char lynq_factory_buf[1024] = {0};
- while (NULL != fgets(lynq_factory_buf,sizeof(lynq_factory_buf),fp))
- {
- if(strstr(lynq_factory_buf, "Usage"))
- {
- lynq_factory_response_ttyGS3("SGMII cannot recognize IP addresses\n");
- lynq_factory_response_ttyGS3("ERROR\n");
- pclose(fp);
- return 0;
- }
- lynq_factory_response_ttyGS3(lynq_factory_buf);
- }
- lynq_factory_response_ttyGS3("OK\n");
- pclose(fp);
- return 0;
- }
- #endif
FILE *fp;
char cmd[128] = {0};
sprintf(cmd, "%s %s %s %s", "ping -I eth1", sgmii, "-c4", "2>&1");
@@ -385,42 +290,9 @@
}
static void lynq_gps_enable(void){
- #if 1
+
enable_nema = 1;
- // sustain = 1;
- // int res = -1;
- // res = pthread_cancel(lynq_gps_tid);
- // if(res){
- // lynq_factory_response_ttyGS3("pthread cancel fail\n");
- // return;
- // }
- // pthread_join(lynq_gps_tid,NULL);
- // int ret = system("killall mnld_test");
lynq_factory_response_ttyGS3("+GPS ENABLE:OK\n");
- // if(!ret){
- // lynq_factory_response_ttyGS3("GPS CLOSE SUCCESS\n");
- // }
- // else{
- // lynq_factory_response_ttyGS3("GPS CLOSE Failed\n");
- // }
- #endif
- #if 0
- system("killall mnld_test");
- FILE *fp;
- char test[100] = {0};
- sleep(1);
- sprintf(test, "cat /etc/gnss/*.nma %s", "2>&1");
- char lynq_factory_buf[1024] = {0};
- fp=popen(test, "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return;
- }
- while(NULL != fgets(lynq_factory_buf,sizeof(lynq_factory_buf),fp)){
- lynq_factory_response_ttyGS3(lynq_factory_buf);
- }
- pclose(fp);
- #endif
return;
}
@@ -435,55 +307,12 @@
{
already_gps = 0;
enable_nema = 0;
+ sustain = 0;
system("killall lynq-gnss-test");
lynq_factory_response_ttyGS3("+GPS CLOSE:OK\n");
return;
}
-#if 0
-static void lynq_wifi_open(void){
- FILE *fp;
- char test[100] = {0};
- sprintf(test, "connmanctl enable wifi %s", "2>&1");
- char lynq_factory_buf[1024] = {0};
- fp=popen(test, "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return;
- }
- while(NULL != fgets(lynq_factory_buf,sizeof(lynq_factory_buf),fp)){
- if(strlen(lynq_factory_buf) > 0)
- {
- lynq_factory_response_ttyGS3(lynq_factory_buf);
- }else{
- lynq_factory_response_ttyGS3("+CME: ERROR TIMEOUT\n");
- }
- }
- pclose(fp);
-}
-
-static void lynq_wifi_close(void){
- FILE *fp;
- char test[100] = {0};
- sprintf(test, "connmanctl disable wifi %s", "2>&1");
- char lynq_factory_buf[1024] = {0};
- fp=popen(test, "r");
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return;
- }
- while(NULL != fgets(lynq_factory_buf,sizeof(lynq_factory_buf),fp)){
- if(strlen(lynq_factory_buf) > 0)
- {
- lynq_factory_response_ttyGS3(lynq_factory_buf);
- }else{
- lynq_factory_response_ttyGS3("+CME: ERROR TIMEOUT\n");
- }
- }
- pclose(fp);
-}
-#endif
-
int lynq_dispose_factory_adc(int num,char *argv[MAX_ARGS])
{
if(num != 5)
@@ -602,26 +431,6 @@
return 0;
}
-#if 0
-static void lynq_gpsinfo(char *argv){
- if(argv ==NULL)
- return;
- // pthread_mutex_lock(&s_gps_state_change_mutex);
- enable_nema = atoi(argv);
- // pthread_cond_signal(&s_gps_change_cond);
- // pthread_mutex_unlock(&s_gps_state_change_mutex);
- if(enable_nema == 1){
- lynq_factory_response_ttyGS3("enable neam\n");
- }
- else if(enable_nema == 0){
- lynq_factory_response_ttyGS3("disable neam\n");
- }
- else{
- lynq_factory_response_ttyGS3("invalid value\n");
- }
-}
-#endif
-
int lynq_check_gpio()
{
#if 1
@@ -711,22 +520,6 @@
}
return 0;
#endif
- #if 0
- FILE *fp;
- char lynq_usb_dev[52] = {0};
- sprintf(lynq_usb_dev,"source /data/gpio/T800_GPIO_TEST.sh 2>&1");
- fp=popen(lynq_usb_dev, "r");
- char lynq_usb_buf[512];
- if(NULL == fp){
- lynq_factory_response_ttyGS3("popen errorn\n");
- return 0;
- }
- while(NULL != fgets(lynq_usb_buf,sizeof(lynq_usb_buf),fp)){
- lynq_factory_response_ttyGS3(lynq_usb_buf);
- }
- pclose(fp);
- return 0;
- #endif
}
int lynq_test_sink(){
@@ -882,16 +675,9 @@
{
lynq_sendRequestToMd(RIL_REQUEST_DEVICE_IDENTITY,i);
}
- //lynq_get_imei(num, argv);
}
if(num < 4)
return -1;
- // if(!strcmp(argv[3], "wifi")){
- // lynq_wifi_open();
- // }
- // else if(!strcmp(argv[3], "wifi_close")){
- // lynq_wifi_close();
- // }
else if(!strcmp(argv[3], "gps_open")){
lynq_gps_open(argv[4]);
}
@@ -907,17 +693,6 @@
else if(!strcmp(argv[3], "sink")){
lynq_test_sink();
}
- #if 0
- else if(!strcmp(argv[3], "gpsinfo")){
- lynq_gpsinfo(argv[4]);
- }
- else if(!strcmp(argv[3], "sim1")){
- lynq_get_sim_state(sim1);
- }
- else if(!strcmp(argv[3], "sim2")){
- lynq_get_sim_state(sim2);
- }
- #endif
else if(!strcmp(argv[3], "rgmii")){
lynq_test_RGMII(argv[4]);
}
@@ -932,10 +707,6 @@
{
lynq_dispose_factory_usb(num,argv);
}
- // else if((!strcmp(argv[3],"audio")))
- // {
- // lynq_dispose_factory_audio(num,argv);
- // }
else if((!strcmp(argv[3], "emmc")))
{
lynq_check_emmc();
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index 3a0ff1d..8e0bbb1 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -82,6 +82,7 @@
#include "lynq_user.h"
#include "lynq_rndis.h"
#include "lynq_factory.h"
+#include <sys/stat.h>
/*lei add*/
/*rita add start*/
#include "lynq_at_temp.h"
@@ -6466,6 +6467,44 @@
return NULL;
}
+static void wait_reset_mipc_response(void)
+{
+ int outfd = open("/data/tp",O_RDONLY);
+ if(outfd == -1){
+ RLOGD("open error");
+ return;
+ }
+ char rst[1024];
+ char response[2048];
+ int s;
+ s = read(outfd,rst,sizeof(rst));
+ if (s>0)
+ {
+ RLOGD("lei buf: %s \n", rst);
+ /*respone ok or error*/
+ if(rst[0] = '0')
+ {
+ sprintf(response,"%s%s","+LRSTMD:",rst);
+ /*check fd can or can't write*/
+ write(ttyGS3_fd,response,strlen(response));
+ write(ttyGS3_fd,"\nOK\n",4);
+ }
+ else
+ {
+ sprintf(response,"%s%s","+CME ERROR:",rst);
+ /*check fd can or can't write*/
+ write(ttyGS3_fd,response,strlen(response));
+ }
+ }
+ else
+ {
+ RLOGD("wait_reset_mipc_response unknow error\n");
+ }
+ usleep(1);
+ close(outfd);
+ return;
+}
+
void startUsbLoop(void)
{
/*lei add*/
@@ -6564,6 +6603,11 @@
{
RLOGD("LYNQ send ATCMD:%s!!!",argv[1]);
lynqSendAt(argc,argv,1010);
+ usleep(50*1000);
+ if(!strcmp(buffer, "AT+LRSTMD"))
+ {
+ wait_reset_mipc_response();
+ }
continue;
}
if(!((1<<atoi(argv[2])) & (atCmd->support)))
diff --git a/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h b/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
index 8f6d0af..f1cf502 100755
--- a/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
+++ b/src/lynq/lib/liblynq-call/include/libcall/lynq_call.h
@@ -137,11 +137,13 @@
/*set*/
int lynq_set_voice_audio_mode(const LYNQ_Audio_Mode audio_mode);
int lynq_set_remote_rtp_ip(const char* ip, const int ip_length);
+int lynq_set_vlan_info(const char* vlan_info, const int vlan_info_length);
int lynq_set_rtp_port(const LYNQ_Rtp_Mode rtp_mode, const int port);
int lynq_set_rtp_param(const int clock_rate,const int channels,const int latency); //only for client
/*get*/
LYNQ_Audio_Mode lynq_get_voice_audio_mode();
int lynq_get_remote_rtp_ip(char* ip, const int ip_length);
+int lynq_get_vlan_info(char* vlan_info, const int vlan_info_length);
int lynq_get_rtp_port(const LYNQ_Rtp_Mode rtp_mode, int* port);
int lynq_get_rtp_param(int* clock_rate,int* channels, int* latency);//only for client
/*Audio Path setting end*/
diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index 98f01bd..0e46e6e 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -28,8 +28,10 @@
#define LYQN_SEDN_BUF 1024*8+sizeof(int)*3
#define INVALID_ID (-1)
#define RTP_FROM_CMD "gst-launch-1.0 -v udpsrc port=%d caps=\'application/x-rtp, media=(string)audio, clock-rate=(int)%d, channels=(int)%d\' ! rtpjitterbuffer latency=%d ! rtppcmadepay ! alawdec ! audioresample ! audioconvert ! alsasink device=\'hw:0,2\'"
-#define RTP_TO_CMD "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=%s auto-multicast=true port=%d"
+#define RTP_TO_CMD "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=%s %s auto-multicast=true port=%d"
+#define RTP_VLAN_INFO_FORMAT "multicast-iface=\"%s\""
#define MAX_IP_LENGTH 128
+#define MAX_VLAN_INFO_LENGTH 128
#define USER_LOG_TAG "LYNQ_CALL"
using ::android::Parcel;
@@ -140,6 +142,7 @@
{
char ip[MAX_IP_LENGTH];
int port;
+ char vlan_info[MAX_VLAN_INFO_LENGTH];
}lynq_rtp_server_info;
typedef struct
@@ -2079,6 +2082,7 @@
}
int* rtp_mode= (int*) arg;
char cmd[384];
+ char vlan_para_string[sizeof(RTP_VLAN_INFO_FORMAT)+MAX_VLAN_INFO_LENGTH-2/*sizeof "%s"*/]={0};
LYINFLOG("lynq_start_rtp_cmd: rtp_mode is %d",(*rtp_mode));
if ((*rtp_mode) == RTP_CLIENT)
{
@@ -2090,8 +2094,12 @@
}
else if ((*rtp_mode) == RTP_SERVER)
{
+ if(strlen(g_rtp_server_info.vlan_info)>0)
+ {
+ sprintf(vlan_para_string,RTP_VLAN_INFO_FORMAT,g_rtp_server_info.vlan_info);
+ }
sprintf(cmd,RTP_TO_CMD, \
- g_rtp_server_info.ip,g_rtp_server_info.port);
+ g_rtp_server_info.ip,vlan_para_string,g_rtp_server_info.port);
// LYINFLOG("start to rtp play: cmd is %s",cmd);
system(cmd);
}
@@ -2200,6 +2208,28 @@
return 0;
}
+int lynq_set_vlan_info(const char* vlan_info, const int vlan_info_length)
+{
+ if (NULL == vlan_info)
+ {
+ LYERRLOG("vlan_info is NULL!!!");
+ return -1;
+ }
+
+ if ((vlan_info_length < strlen(vlan_info)+1) || (vlan_info_length > MAX_VLAN_INFO_LENGTH))
+ {
+ LYERRLOG("incoming vlan_info error, vlan info length %d", vlan_info_length);
+ return -1;
+ }
+
+
+ bzero(g_rtp_server_info.vlan_info,MAX_VLAN_INFO_LENGTH);
+ strcpy(g_rtp_server_info.vlan_info,vlan_info);
+
+ LYINFLOG("lynq_set_vlan_info suc: vlan is %s, length is %d", vlan_info,vlan_info_length);
+
+ return 0;
+}
int lynq_set_rtp_port(const LYNQ_Rtp_Mode rtp_mode, const int port)
{
if (port < 0)
@@ -2263,6 +2293,25 @@
strcpy(ip,g_rtp_server_info.ip);
return 0;
}
+int lynq_get_vlan_info(char* vlan_info, const int vlan_info_length)
+{
+ if(vlan_info==NULL)
+ {
+ LYERRLOG("vlan info is NULL");
+ return -1;
+ }
+
+ if(vlan_info_length < strlen(g_rtp_server_info.vlan_info)+1)
+ {
+ LYERRLOG("vlan info length %d is shorter than saved vlan info length %d",vlan_info_length,strlen(g_rtp_server_info.vlan_info)+1);
+ return -1;
+ }
+
+ bzero(vlan_info,vlan_info_length);
+ strcpy(vlan_info,g_rtp_server_info.vlan_info);
+
+ return 0;
+}
int lynq_get_rtp_port(const LYNQ_Rtp_Mode rtp_mode, int* port)
{
if(g_lynq_call_init_flag == 0)
diff --git a/src/lynq/lib/liblynq-sim/include/lynq_sim.h b/src/lynq/lib/liblynq-sim/include/lynq_sim.h
index 923d03b..1ebec79 100755
--- a/src/lynq/lib/liblynq-sim/include/lynq_sim.h
+++ b/src/lynq/lib/liblynq-sim/include/lynq_sim.h
@@ -72,6 +72,11 @@
*/
int lynq_sim_power(int mode);
+/**
+ * @brief reset modem
+ *
+ */
+int lynq_reset_modem(void);
#ifdef __cplusplus
diff --git a/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp b/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
index 0d36320..65ea97f 100755
--- a/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
@@ -21,6 +21,8 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h> /*add for get recvfrom errorid on 20220921*/
+#include <sys/stat.h>
+#include <fcntl.h>
#define MAX_BUF 20
#define MAX_NUM 80
#define RIL_REQUEST_GET_SIM_STATUS 1
@@ -161,7 +163,8 @@
send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -169,6 +172,7 @@
if(recv_num < 0 || recv_num == 0)
{
RLOGD("recvfrom step2 fail:");
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return recv_num;
}
pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
@@ -210,7 +214,8 @@
send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -263,7 +268,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -314,7 +320,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
@@ -361,7 +368,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return ret;
}
//get data msg
@@ -413,7 +421,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -458,7 +467,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -513,7 +523,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -562,7 +573,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -607,7 +619,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -714,7 +727,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return ret;
}
//get data msg
@@ -789,7 +803,8 @@
send_num = sendto(sock_fd, &client_t1, sizeof(client_t1), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
//get data msg
@@ -849,7 +864,7 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
return send_num;
}
pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
@@ -885,6 +900,7 @@
if(send_num < 0)
{
RLOGD("sendto error:\n");
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
for(int i=0;i<2;i++)
@@ -1019,7 +1035,8 @@
send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
if(send_num < 0)
{
- RLOGD("sendto error:");
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
return send_num;
}
recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
@@ -1052,6 +1069,48 @@
return error1;
}
+static void wait_reset_mipc_response(int *response)
+{
+ int outfd = open("/data/tp",O_RDONLY);
+ if(outfd == -1){
+ RLOGD("open error");
+ return;
+ }
+ char rst[1024];
+ int s;
+ s = read(outfd,rst,sizeof(rst));
+ sscanf(rst,"%d",response);
+ usleep(1);
+ close(outfd);
+ return;
+}
+
+int lynq_reset_modem(void)
+{
+ if(g_lynq_sim_init_flag == 0)
+ {
+ return -1;
+ }
+ int ret = -1;
+ int send_num = 0;
+ client_t.request = RIL_REQUEST_OEM_HOOK_RAW;
+ client_t.paramLen = 1;
+ client_t.uToken = Global_uToken;
+ sprintf(client_t.param, "%s\n", "AT+LRSTMD");
+ pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
+ send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
+ if(send_num < 0)
+ {
+ RLOGD("function %s sendto error:", __FUNCTION__);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ return ret;
+ }
+ wait_reset_mipc_response(&ret);
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ RLOGD("function %d ret %d",__FUNCTION__, ret);
+ return ret;
+}
+
/**
* @brief handle shutdown buf
* @param options type: [IN]My Param doc
diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 03fc67a..cc14e8a 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -2410,8 +2410,12 @@
char lynq_cmd_ret[MAX_RET]={0};
// CHECK_IDX(idx, CTRL_AP);
-
- if((fp=popen("wl rssi","r"))==NULL)
+/*******change other cmd to get rssi*******
+ *
+ *wl rssi ---> wl -i wlan0 rssi
+ *
+ ***** change by qs.xiong 20221011*******/
+ if((fp=popen("wl -i wlan0 rssi","r"))==NULL)
{
perror("popen error!");
return -1;
@@ -2422,6 +2426,11 @@
return -1;
}
*rssi = atoi(lynq_cmd_ret) * -1;
+/****** if got rssi is 0,means sta didn't connected any device****/
+ if(*rssi == 0)
+ {
+ printf("sta didn't connected any ap device,please check connection\n");
+ }
return 0;
}
diff --git a/src/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_sys_api.c b/src/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_sys_api.c
old mode 100644
new mode 100755
index 6daedfd..219031d
--- a/src/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_sys_api.c
+++ b/src/telephonyware/3.0/hardware/ril/platformlib/libmipc/lib/src/api/mipc_sys_api.c
@@ -22,6 +22,15 @@
#include "mtk_log.h"
#define LOG_TAG "MIPC_SYS_API"
+/*lei add for reset modem 2022/9/28*/
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+/*lei add for reset modem 2022/9/28*/
+
mipc_api_result_enum mipc_sys_init(const char *client_name_ptr)
{
if (mipc_init(client_name_ptr) == 0) {
@@ -84,8 +93,49 @@
cb((mipc_sim_ps_id_enum)msg_ptr->hdr.msg_sim_ps_id, &result_ptr, cb_priv_ptr);
}
+/*lei add for reset modem 2022/9/29*/
+static void response_to_ril_service(int res)
+{
+ int rt_value=access("/data/tp",F_OK);
+ if(rt_value==0)
+ {
+ mtkLogD(LOG_TAG,"File:%s exist rt_value=%d\n","/data/tp",rt_value);
+ }
+ else
+ {
+ mtkLogD(LOG_TAG,"File:%s not exist rt_value=%d \n","/data/tp",rt_value);
+ int ret = mkfifo("/data/tp",0644);
+ mtkLogD(LOG_TAG,"result ret = %d \n", ret);
+ }
+ int outfd = open("/data/tp", O_WRONLY);
+
+ if(outfd == -1){
+ mtkLogD(LOG_TAG,"open");
+ return 2;
+ }
+ char buf[1024] = {0};
+ sprintf(buf,"%d",res);
+ write(outfd,buf,sizeof(buf));
+ usleep(1);
+ close(outfd);
+}
+
+/*lei add for reset modem 2022/9/29*/
+
static mipc_api_result_enum mipc_sys_at_req(MIPC_SYS_AT_CB cb, void *cb_priv_ptr, mipc_sim_ps_id_enum sim_ps_id, mipc_sys_at_struct *result_ptr, const char *atcmd_ptr)
{
+ /*lei add for reset modem 2022/9/28*/
+ if(!strcmp(atcmd_ptr,"AT+LRSTMD"))
+ {
+
+ int res = mipc_reset();
+ /*send response to Host/AP*/
+ mtkLogD(LOG_TAG, "mipc_reset res is %d\n", res);
+ response_to_ril_service(res);
+ return MIPC_API_RESULT_SUCCESS;
+ }
+ /*lei add for reset modem 2022/9/28*/
+
mipc_msg_t *msg_req_ptr;
mipc_msg_t *msg_cnf_ptr;
mipc_api_result_enum ret;