Merge "[Bugfix][API-1397][emdlogger] after switch port, emdlog failure" into GSW3.0-No-Connman
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c b/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c
index 25e060a..0ea28ce 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c
@@ -325,8 +325,6 @@
if(adb_debug_mode == 2)
{
system("echo 12 | emdlogger_ctrl");
- sleep(1);
- system("echo 6 | emdlogger_ctrl");//start modem log SD mode
}
usleep(200000);
@@ -342,8 +340,6 @@
if(adb_debug_mode == 2)
{
system("echo 12 | emdlogger_ctrl");
- sleep(1);
- system("echo 6 | emdlogger_ctrl");//start modem log SD mode
}
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index db7d129..01829e2 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -4754,11 +4754,9 @@
//unsol trigger other things.
switch(unsolResponse) {
-#ifdef LED_SUPPORT
case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED: //add this for API-720
ARspRequest(RIL_REQUEST_GET_CURRENT_CALLS, soc_id);
break;
-#endif
case RIL_UNSOL_CALL_RING:
callRing(soc_id);
break;
diff --git a/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c b/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c
index 81cfe22..c970ce1 100755
--- a/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c
+++ b/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c
@@ -133,6 +133,7 @@
#define FOTA_UCI_MODULE "lynq_fota"
#define FOTA_UCI_FILE "lynq_uci"
#define FOTA_UCI_ADDR "lynq_fota_addr"
+#define FOTA_UCI_STATE "lynq_fota_state"
#define FILE_UPDATE_STATE "/data/.update_status"
#define FILE_UPDATE_FLAG "/tmp/update_flag"
@@ -179,6 +180,13 @@
#define DEV_MEDMCU_A "/dev/disk/by-partlabel/medmcu_a"
#define DEV_MEDMCU_B "/dev/disk/by-partlabel/medmcu_b"
+#define DEV_OEMAPP_A "/dev/disk/by-partlabel/oemapp_a"
+#define DEV_OEMAPP_B "/dev/disk/by-partlabel/oemapp_b"
+
+#define DEV_OEMAPP2_A "/dev/disk/by-partlabel/oemapp2_a"
+#define DEV_OEMAPP2_B "/dev/disk/by-partlabel/oemapp2_b"
+
+
#define DEV_MISC "/dev/disk/by-partlabel/misc"
#define BACKUP_UBI_NUM 31 //max ubi number
@@ -746,7 +754,8 @@
-static int rock_update_main(unsigned int rom_base, unsigned int backup_base, unsigned int backup_len, int read_rom_directly, int first_run, int switch_slot_flag, int reboot_flag) {
+static int rock_update_main(unsigned int rom_base, unsigned int backup_base, unsigned int backup_len, int read_rom_directly, int first_run, int switch_slot_flag, int
+reboot_flag, int backup_mode) {
int status,err,start,fd;
int ret = 0;
int i = 0;
@@ -844,11 +853,18 @@
#endif
up_info.ota_run = 0;
- if((up_info.fota_flag[0]=='A')&&(up_info.fota_flag[1]=='-')&&(up_info.fota_flag[2]=='B')){
- update_mode = MODE_A2B;
- }else if((up_info.fota_flag[0]=='B')&&(up_info.fota_flag[1]=='-')&&(up_info.fota_flag[2]=='A')){
- update_mode = MODE_B2A;
- }else{
+ if(backup_mode == 1)
+ {
+ if(current_slot == 0)
+ {
+ update_mode = MODE_A2B;
+ }else
+ {
+ update_mode = MODE_B2A;
+ }
+ }
+ else
+ {
update_mode = MODE_NORMAL;
}
@@ -1219,15 +1235,13 @@
- if(update_mode == MODE_NORMAL){ //need A VS B
+ if(update_mode != MODE_NORMAL){ //need backup
if(current_slot == SLOT_A) {
-
up_info.fota_flag[0] = 'B';
up_info.fota_flag[1] = '-';
up_info.fota_flag[2] = 'A';
}else{
-
up_info.fota_flag[0] = 'A';
up_info.fota_flag[1] = '-';
up_info.fota_flag[2] = 'B';
@@ -1308,7 +1322,7 @@
#endif
- ret = rock_update_main(0, 0, 0, 0, first_run, 1, 1);
+ ret = rock_update_main(0, 0, 0, 0, first_run, 1, 1, 1);
RLOGD("rock_update_main ret = %d\n", ret);
if(ret)
{
@@ -1658,6 +1672,18 @@
RLOGD("+[UA]: backup bl33_a fail\n");
return 1;
}
+ ret = backup_nand_copyto_nand(DEV_OEMAPP_B,DEV_OEMAPP_A);
+ if(ret != 0)
+ {
+ RLOGD("+[UA]: backup oemapp_a fail\n");
+ return 1;
+ }
+ ret = backup_nand_copyto_nand(DEV_OEMAPP2_B,DEV_OEMAPP2_A);
+ if(ret != 0)
+ {
+ RLOGD("+[UA]: backup oemapp2_a fail\n");
+ return 1;
+ }
}
else
{
@@ -1717,12 +1743,55 @@
RLOGD("+[UA]: backup bl33_a fail\n");
return 1;
}
+ ret = backup_nand_copyto_nand(DEV_OEMAPP_A,DEV_OEMAPP_B);
+ if(ret != 0)
+ {
+ RLOGD("+[UA]: backup oemapp_b fail\n");
+ return 1;
+ }
+ ret = backup_nand_copyto_nand(DEV_OEMAPP2_A,DEV_OEMAPP2_B);
+ if(ret != 0)
+ {
+ RLOGD("+[UA]: backup oemapp2_b fail\n");
+ return 1;
+ }
}
RLOGD("+[UA]: lynq_backup_main success \n");
return 0;
}
//xf.li@20230822 add for ab rollback end
+
+int lynq_check_oemapp(char* name)
+{
+ FILE *fp;
+ char check_result[64];
+ if(strcmp(name, "oemapp") == 0)
+ {
+ RLOGD("lynq_check_oemapp oemapp");
+ if(system("df -lh|grep oemapp |grep -v oemapp2") != 0)
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ else if(strcmp(name, "oemapp2") == 0)
+ {
+ RLOGD("lynq_check_oemapp oemapp2");
+ if(system("df -lh|grep oemapp2") != 0)
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+}
+
//lt add @2021.9.23 for deal with power down \ backup or upgrade.
int lynq_fota_func(void)
{
@@ -1736,27 +1805,6 @@
const hw_module_t* hw_module;
//xf.li@20230822 add for ab backup end
RLOGD("[+UP]: ******lynq_fota_func start******\n");
- memset(&lynq_up_info, 0, sizeof(lynq_up_info));
- fd = open(FILE_UPDATE_STATE,O_RDWR | O_CREAT,0777);
- if (fd < 0)
- {
- return -1;
- }
- read(fd,(unsigned char *)&lynq_up_info,sizeof(lynq_up_info));
- close(fd);
-
- RLOGD("[+UP]: lynq_up_info.ota_run=%d\n",lynq_up_info.ota_run);
- if(lynq_up_info.ota_run != 0)
- {
- //Power off, call UA
- RLOGD("[+UP]: ***Power off, call UA***\n");
- ret = rock_update_main(0, 0, 0, 0, first_run, 1,0);
- RLOGD("rock_update_main ret = %d\n", ret);
- if(ret)
- {
- RLOGD("fota update fail!\n");
- }
- }
//xf.li@20230822 add for ab backup start
//----------get current slot and whether other slot is bootable
hw_module = &HAL_MODULE_INFO_SYM;
@@ -1778,15 +1826,58 @@
other_slot = (current_slot == 0) ? 1 : 0;
is_other_slot_bootable = module->isSlotBootable(module, other_slot);
//-----------end
- RLOGD("current slot:%u, is_other_slot_bootable : %d, lynq_up_info.fota_flag[3] is %c\n",current_slot, is_other_slot_bootable, lynq_up_info.fota_flag[3]);
+ RLOGD("current slot:%u, is_other_slot_bootable : %d\n",current_slot, is_other_slot_bootable);
//xf.li@20230822 add for ab backup end
+ memset(&lynq_up_info, 0, sizeof(lynq_up_info));
+ fd = open(FILE_UPDATE_STATE,O_RDWR | O_CREAT,0777);
+ if (fd < 0)
+ {
+ return -1;
+ }
+ read(fd,(unsigned char *)&lynq_up_info,sizeof(lynq_up_info));
+ close(fd);
+
+ RLOGD("[+UP]: lynq_up_info.ota_run=%d\n",lynq_up_info.ota_run);
+ if((lynq_check_oemapp("oemapp") == 0) || (lynq_check_oemapp("oemapp2") == 0))
+ {
+ RLOGD("ENTER LYNQ_CHECK_OEMAPP\n");
+ system("echo mode 001 0 > /sys/devices/platform/10005000.pinctrl/mt_gpio");
+ system("echo dir 001 1 > /sys/devices/platform/10005000.pinctrl/mt_gpio");
+ system("echo out 001 1 > /sys/devices/platform/10005000.pinctrl/mt_gpio");
+ RLOGD("need setUnbootable.\n");
+ module->setSlotAsUnbootable(module,current_slot);
+ RLOGD("+[UA]: setSlotAsUnbootable!!!!\n");
+ sync();
+ if(((lynq_up_info.fota_flag[0]=='A')&&(lynq_up_info.fota_flag[1]=='-')&&(lynq_up_info.fota_flag[2]=='B'))||
+ ((lynq_up_info.fota_flag[0]=='B')&&(lynq_up_info.fota_flag[1]=='-')&&(lynq_up_info.fota_flag[2]=='A')))
+ {
+ RLOGD("mark oemapp mount fail\n");
+ lynq_set_value(FOTA_UCI_MODULE,FOTA_UCI_STATE, "1");
+ }
+ sleep(5);
+ reboot_device();
+ }
+
+
+ if(lynq_up_info.ota_run != 0)
+ {
+ //Power off, call UA
+ RLOGD("[+UP]: ***Power off, call UA***\n");
+ ret = rock_update_main(0, 0, 0, 0, first_run, 1, 0, 1);
+ RLOGD("rock_update_main ret = %d\n", ret);
+ if(ret)
+ {
+ RLOGD("fota update fail!\n");
+ }
+ }
+
if(((lynq_up_info.fota_flag[0]=='A')&&(lynq_up_info.fota_flag[1]=='-')&&(lynq_up_info.fota_flag[2]=='B'))||
((lynq_up_info.fota_flag[0]=='B')&&(lynq_up_info.fota_flag[1]=='-')&&(lynq_up_info.fota_flag[2]=='A')))
{
//Upgrade the other side and call UA
RLOGD("[+UP]: ***Upgrade the other side and call UA***\n");
- ret = rock_update_main(0, 0, 0, 0, first_run, 0, 0);
+ ret = rock_update_main(0, 0, 0, 0, first_run, 0, 0, 0);
RLOGD("rock_update_main ret = %d\n", ret);
if(ret)
{
@@ -1897,7 +1988,7 @@
test_write_delta("/data/delta",DEV_DELTA);
#endif
- ret = rock_update_main(0, 0, 0, 0, 1, 1, 0);
+ ret = rock_update_main(0, 0, 0, 0, 1, 1, 0, 1);
RLOGD("rock_update_nrestart ret = %d\n", ret);
if(ret)
{
diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index e99ff0d..77d826e 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -67,6 +67,7 @@
void * g_sta_auto_callback_priv = NULL;
STA_AUTO_CALLBACK_FUNC_PTR g_sta_auto_callback_func = NULL;
+
//const char * CTRL_PATH="/var/run/wpa_supplicant";
const char * CTRL_PATH[2] = {"/var/run/wpa_supplicant/wlan0", "/var/run/wpa_supplicant/ap0"};
//const char * CTRL_PATH[2] = {"/var/run/wpa_supplicant/wlan0", "/var/run/wpa_supplicant/wlan0"};
@@ -499,6 +500,9 @@
size_t len = MAX_RET;
char msg_notify[MAX_RET];
int idle_count = 0;
+ char *ptr = NULL;
+ char mac[32] = {0};
+ char cmd[256] = {0};
struct wpa_ctrl *lynq_wpa_ctrl = NULL;
g_ap_watcher_stop_flag = 0;
@@ -525,6 +529,16 @@
if (strstr(msg_notify, "AP-STA-DISCONNECTED") != NULL)
{
inner_notify_ap_msg(LYNQ_WIFI_STATUS_DISCONNECT);
+ ptr = strstr(msg_notify, "AP-STA-DISCONNECTED");
+ if( ptr != NULL)
+ {
+ ptr += strlen("AP-STA-DISCONNECTED ");
+ memcpy(mac,ptr,17);
+ sprintf(cmd,"cat /run/wg870/ap0.lease | grep \"%s\" | awk '{print \"dhcp_release ap0 \"$3\" \"$2\}' | sh",mac);
+ RLOGD("%s %d cmd is %s",__func__,__LINE__,cmd);
+ system(cmd);
+ }
+
if (g_gbw_enabled == 1 && g_gbw_mac != NULL)
{
RLOGD("disconect %d, %s ,%s\n", g_gbw_enabled, g_gbw_mac, strstr(msg_notify, (const char*)g_gbw_mac));
@@ -2179,6 +2193,7 @@
DO_OK_FAIL_REQUEST(lynq_wifi_ssid_cmd);
DO_OK_FAIL_REQUEST(cmd_save_config);
+
RLOGD("[lynq_wifi_ap_ssid_set] set ssid sucss");
return 0;