Merge "[Feature][T8TSK-79][Factory-test]Further optimize factory test sleep" into MR3.0
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/lynq-low-power/lynq-low-power.bb b/meta/meta-mediatek-mt2735/recipes-lynq/lynq-low-power/lynq-low-power.bb
index 264b643..02c62c7 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/lynq-low-power/lynq-low-power.bb
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/lynq-low-power/lynq-low-power.bb
@@ -3,7 +3,7 @@
DESCRIPTION = "function test"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e1696b147d49d491bcb4da1a57173fff"
-DEPENDS += "platform-libs"
+DEPENDS += "platform-libs liblynq-sim"
inherit workonsrc
WORKONSRC = "${TOPDIR}/../src/lynq/packages/apps/lynq-low-power/src"
diff --git a/src/lynq/framework/lynq-ril-service/src/commands.h b/src/lynq/framework/lynq-ril-service/src/commands.h
index a0a13f4..c1686ed 100755
--- a/src/lynq/framework/lynq-ril-service/src/commands.h
+++ b/src/lynq/framework/lynq-ril-service/src/commands.h
@@ -200,6 +200,7 @@
{"LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY",deleteSmsToMemory, "write sms to memory",LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY},
{"LYNQ_REQUEST_LIST_SMS_FROM_MEMORY",listSmsToMemory, "write sms to memory",LYNQ_REQUEST_LIST_SMS_FROM_MEMORY},
{"LYNQ_REQUEST_CHANGE_SCREEN_STATE",getScreenState,"lynq get Screen State",LYNQ_REQUEST_CHANGE_SCREEN_STATE},/*jb.qi change for two sim suspend 2022/9/19 */
+ {"LYNQ_REQUEST_CHANGE_RADIO",setRadioPower,"setRadioPower",LYNQ_REQUEST_CHANGE_RADIO},/*lei add for both radio on/off */
/*Warren change for t800 ril service 2022/1/18 end*/
#ifdef C2K_SUPPORT
diff --git a/src/lynq/framework/lynq-ril-service/src/lynq_interface.h b/src/lynq/framework/lynq-ril-service/src/lynq_interface.h
index adf98c5..4a94b10 100755
--- a/src/lynq/framework/lynq-ril-service/src/lynq_interface.h
+++ b/src/lynq/framework/lynq-ril-service/src/lynq_interface.h
@@ -22,6 +22,7 @@
#define LYNQ_REQUEST_OOS_RECOVER_TIMER_INTERVAL (LYNQ_REQUEST_VENDOR_BASE +12)
#define LYNQ_REQUEST_OOS_DEEP_SLEEP_RECOVER_TIMER_INTERVAL (LYNQ_REQUEST_VENDOR_BASE +13)
#define LYNQ_REQUEST_CHANGE_SCREEN_STATE (LYNQ_REQUEST_VENDOR_BASE + 14)/*jb.qi add for two sim suspend 2022/9/19*/
+#define LYNQ_REQUEST_CHANGE_RADIO (LYNQ_REQUEST_VENDOR_BASE + 15)
#ifdef ECALL_SUPPORT
#define RIL_UNSOL_ECALL_T2_TIMER_OUT 9000
#define RIL_UNSOL_ECALL_T5_TIMER_OUT 9001
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index 52a8c42..01386a2 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -5157,6 +5157,7 @@
case LYNQ_REQUEST_LIST_SMS_FROM_MEMORY: return "LYNQ_REQUEST_LIST_SMS_FROM_MEMORY";
case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";
case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
+ case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/
/*warren add for t800 ril service 2022/1/22 end*/
default: return "<unknown request>";
}
@@ -5424,6 +5425,7 @@
case LYNQ_REQUEST_LIST_SMS_FROM_MEMORY: return "LYNQ_REQUEST_LIST_SMS_FROM_MEMORY";
case LYNQ_REQUEST_SET_DEFAULT_SIM_ALL:return "SET_DEFAULT_SIM_ALL";
case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
+ case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/
/*warren add for t800 ril service 2022/1/22 end*/
default: return "<unknown request>";
}
@@ -5555,6 +5557,14 @@
waitResponse(waittoken);
break;
}
+ case RIL_REQUEST_RADIO_POWER:
+ {
+ int waittoken = info->token;
+ RLOGD("LYNQ_REQUEST_CHANGE_RADIO\n");
+ setRadioPower(2, argv, (RIL_SOCKET_ID) ((slot_id)), info);
+ waitResponse(waittoken);
+ break;
+ }
default:
RLOGD("dont support %d in init", slot_id);
if(info)
@@ -6039,14 +6049,25 @@
// FIXME this should perhaps return a response
continue;
}
- /*jb.qi add for two sim suspend 2022/9/19 start*/
- if(request == LYNQ_REQUEST_CHANGE_SCREEN_STATE)
+ /*jb.qi add for two sim suspend 2022/9/19 start lei modify for factory test of sleep*/
+ if(request == LYNQ_REQUEST_CHANGE_SCREEN_STATE || request == LYNQ_REQUEST_CHANGE_RADIO)
{
int i;
RLOGD("lynq_request_change_screen_state");
- for(i=0;i<2;i++) //suspend sim0 and sim1
+ if(request == LYNQ_REQUEST_CHANGE_SCREEN_STATE)
{
- lynq_sendRequestToMd(RIL_REQUEST_SCREEN_STATE, i, argv, lynqClient_addr, client_tmp->uToken);
+ for(i=0;i<2;i++) //suspend sim0 and sim1
+ {
+ lynq_sendRequestToMd(RIL_REQUEST_SCREEN_STATE, i, argv, lynqClient_addr, client_tmp->uToken);
+ }
+ }
+ /*lei modify for factory test of sleep*/
+ if(request == LYNQ_REQUEST_CHANGE_RADIO)
+ {
+ for(i=0;i<2;i++) //both radio on/off
+ {
+ lynq_sendRequestToMd(RIL_REQUEST_RADIO_POWER, i, argv, lynqClient_addr, client_tmp->uToken);
+ }
}
continue;
}
diff --git a/src/lynq/lib/liblynq-sim/include/lynq_sim.h b/src/lynq/lib/liblynq-sim/include/lynq_sim.h
index c6d9a8d..c2d7793 100755
--- a/src/lynq/lib/liblynq-sim/include/lynq_sim.h
+++ b/src/lynq/lib/liblynq-sim/include/lynq_sim.h
@@ -79,6 +79,12 @@
*/
int lynq_reset_modem(void);
+/**
+ * @brief factory test to both radio on/off
+ *
+ */
+int lynq_factory_radio_state(int num);
+
#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 cb1729d..1fa5578 100755
--- a/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
@@ -39,6 +39,7 @@
#define RIL_REQUEST_DEVICE_IDENTITY 98
#define LYNQ_REQUEST_SET_DEFAULT_SIM_ALL 8008
#define LYNQ_REQUEST_CHANGE_SCREEN_STATE 8014 /*add for two sim suspend on 20220919*/
+#define LYNQ_REQUEST_CHANGE_RADIO 8015
#define MAX_LEN 1024*8
#define MAX_NUM 10
#define LOG_TAG "LYNQ_SIM"
@@ -1025,6 +1026,85 @@
}
+/**@breif change screen state
+*param num type: [IN] screen_state,0:close,1:open
+*param ret type: [OUT] result,0:success,other:fail
+*return int
+*/
+int lynq_factory_radio_state(int num){
+ if(g_lynq_sim_init_flag == 0)
+ {
+ return -1;
+ }
+
+ int ret = -1;
+ if(!judge(num))
+ return ret;
+ int send_num = 0;
+ int recv_num = 0;
+ int error[2];
+ char res_data[MAX_LEN] = {0};
+ //change the first screen
+ client_t.request = LYNQ_REQUEST_CHANGE_RADIO; //8015
+ client_t.paramLen = 1;
+ client_t.uToken = Global_uToken;
+ sprintf(client_t.param, "%d\n", num);
+
+ 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("sendto error:\n");
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ return send_num;
+ }
+ for(int i=0;i<2;i++)
+ {
+ recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
+ if(recv_num < 0 || recv_num == 0)
+ {
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);//recvfrom fail
+ RLOGD("screen recvform error\n");
+ return errno;
+ }
+ if(i == 1)
+ {
+ pthread_mutex_unlock(&g_lynq_sim_sendto_mutex);
+ RLOGD("recvfrom success\n");
+ }
+ Parcel p;
+ p.setData((uint8_t *)res_data,sizeof(char)*recv_num);
+ p.setDataPosition(0);
+ if(p.dataAvail() > 0)
+ {
+ p.readInt32(&resp_type);
+ p.readInt32(&solicited_token);
+ p.readInt32(&request);
+ p.readInt32(&slot_id);
+ p.readInt32(&error1);
+ error[i] = error1;//change screen state result
+ }
+ }
+
+ if((error[0] != 0) || (error[1] != 0))
+ {
+ RLOGD("error[0] = %d errpr[1] = %d\n",error[0], error[1]);
+ if(error[0] != 0)
+ {
+ return error[0];
+ }
+ else
+ {
+ return error[1];
+ }
+ }
+ else
+ {
+ return 0;
+ }
+
+}
+
/**
* @brief Check whether the input is valid for lynq_req_sim_io api
* @param list type: [IN] list[0]:one of the commands listed for TS 27.007 +CRSM.(command)
diff --git a/src/lynq/packages/apps/lynq-low-power/src/main.cpp b/src/lynq/packages/apps/lynq-low-power/src/main.cpp
index 892f83f..c82265b 100755
--- a/src/lynq/packages/apps/lynq-low-power/src/main.cpp
+++ b/src/lynq/packages/apps/lynq-low-power/src/main.cpp
@@ -3,12 +3,24 @@
#include <unistd.h>
#include <stdlib.h>
#include <stdint.h>
+#include <include/lynq_sim.h>
#ifdef __cplusplus
extern "C" {
#endif
int main(void){
system("echo \"Sys flight mode\" >/dev/console");
- system("source /data/lynq-low-power.sh");
+ //system("source /data/lynq-low-power.sh");
+ lynq_sim_init(2022);
+ int ret = lynq_sim_power(0);
+ printf("ret %d\n", ret);
+ ret = lynq_factory_radio_state(0);
+ printf("ret %d\n", ret);
+ system("echo reg_netsys_srcclkena_mask_b 0 > /sys/power/spm/suspend_ctrl");
+ system("echo reg_netsys_infra_req_mask_b 0 > /sys/power/spm/suspend_ctrl");
+ system("echo reg_netsys_apsrc_req_mask_b 0 > /sys/power/spm/suspend_ctrl");
+ system("echo reg_netsys_vrf18_req_mask_b 0 > /sys/power/spm/suspend_ctrl");
+ system("echo reg_netsys_ddr_en_mask_b 0 > /sys/power/spm/suspend_ctrl");
+ system("echo mem > /sys/power/autosleep");
return 0;
}
#ifdef __cplusplus
diff --git a/src/lynq/packages/apps/lynq-low-power/src/makefile b/src/lynq/packages/apps/lynq-low-power/src/makefile
index ab12d0d..59c05f1 100755
--- a/src/lynq/packages/apps/lynq-low-power/src/makefile
+++ b/src/lynq/packages/apps/lynq-low-power/src/makefile
@@ -62,6 +62,7 @@
-lutils \
-lbinder \
-lpthread \
+ -llynq-sim \
LOCAL_SRC_FILES_CPP = $(wildcard *.cpp gpio/*.cpp ril/*.cpp)
LOCAL_SRC_FILES_C = $(wildcard *.c gps/*.c)