Merge "[Feature][DATA][T8TSK-282] Optimize data call timeout mechanism" into GSW3.0-No-Connman
diff --git a/framework/lynq-audio-service/src/lynq_audio_service.c b/framework/lynq-audio-service/src/lynq_audio_service.c
index 9e1957c..cdf425d 100755
--- a/framework/lynq-audio-service/src/lynq_audio_service.c
+++ b/framework/lynq-audio-service/src/lynq_audio_service.c
@@ -5,7 +5,8 @@
int main()
{
- system("/usr/bin/pulseaudio -D");
+ RLOGD("Open the pulseaudio service\n");
+ system("/usr/bin/pulseaudio -D --system");
while(1)
{
sleep(UINT32_MAX);
diff --git a/lib/liblynq-network/include/lynq_network/lynq_network.h b/lib/liblynq-network/include/lynq_network/lynq_network.h
index ba7c1f4..00c5669 100755
--- a/lib/liblynq-network/include/lynq_network/lynq_network.h
+++ b/lib/liblynq-network/include/lynq_network/lynq_network.h
@@ -78,6 +78,9 @@
int lynq_set_ims(const int ims_mode);
int lynq_wait_signalchanges(int *handle);
int lynq_get_urc_info(const int handle,signalStrength_t *solSigStren,int *slot_id);
+int lynq_set_feature_config_sbp(int sbp_flag);
+int lynq_query_feature_config_sbp(int *sbp_status );
+
typedef enum {
NETWORK_STATE_BUFFER_TYPE_VOICE_REG,
diff --git a/lib/liblynq-network/lynq_network.cpp b/lib/liblynq-network/lynq_network.cpp
index c025404..ec580e2 100755
--- a/lib/liblynq-network/lynq_network.cpp
+++ b/lib/liblynq-network/lynq_network.cpp
@@ -25,6 +25,12 @@
/*in CR AUTO00207414, in modem, 23G detach need 10s, 5g ims detach need 5s, so set length to 12s */
#define WAIT_TIME_LENGTH_FOR_SET_PREFFERRED_NETWORK_TYPE (12)
+#define SET_SBP_OPEN " AT+ESBP=5,\"SBP_NRRC_BAR_CELL_WITH_CONNECTION_FAILURE\",1 "
+#define SET_SBP_CLOSE " AT+ESBP=5,\"SBP_NRRC_BAR_CELL_WITH_CONNECTION_FAILURE\",0 "
+#define QUERY_SBP_STATUS "AT+ESBP=7,\"SBP_NRRC_BAR_CELL_WITH_CONNECTION_FAILURE\""
+#define OPEN 1
+#define CLOSE 0
+
using ::android::Parcel;
@@ -1109,6 +1115,106 @@
return RESULT_OK;
}
+
+/*****************************************
+* @brief:sned at request ,close or open SBP
+* @param count [IN]:sbp_flag 0:close 1:open
+* @param sum [OUT]:NA
+* @return :NA
+* @todo:
+* @see:NA
+* @warning:NA
+******************************************/
+int lynq_set_feature_config_sbp(int sbp_flag)
+{
+ int ret = 0;
+ Parcel* p=NULL;
+
+ if(sbp_flag != OPEN && sbp_flag != CLOSE)
+ {
+ LYERRLOG("Bad input paramater ,you need input 0 or 1 !!!");
+ return RESULT_ERROR;
+ }
+ if(sbp_flag == OPEN)
+ {
+ ret = lynq_send_common_request(p,g_wait_time,RIL_REQUEST_OEM_HOOK_RAW,1,"%s",SET_SBP_OPEN);
+ }
+ else if(sbp_flag == CLOSE)
+ {
+ ret = lynq_send_common_request(p,g_wait_time,RIL_REQUEST_OEM_HOOK_RAW,1,"%s",SET_SBP_CLOSE);
+ }
+ if(ret != RESULT_OK)
+ {
+
+ LYERRLOG("%s lynq_send_common_request failure, ret is %d",__func__,ret);
+ return ret;
+ }
+ return 0;
+}
+
+/*****************************************
+* @brief:send at request,get sbp status
+* @param count [IN]:NA
+* @param sum [OUT]:sbp_status
+* @return :NA
+* @todo:
+* @see:NA
+* @warning:NA
+******************************************/
+int lynq_query_feature_config_sbp(int *sbp_status )
+{
+ int ret = 0;
+ Parcel* p=NULL;
+
+ ret = lynq_send_common_request(p,g_wait_time,RIL_REQUEST_OEM_HOOK_RAW,1,"%s",QUERY_SBP_STATUS);
+ if(ret != RESULT_OK)
+ {
+
+ LYERRLOG("%s lynq_send_common_request failure, ret is %d",__func__,ret);
+ return ret;
+ }
+
+
+ const char* data;
+ int data_len;
+ char* data_str;
+ char* start;
+ char status[8] = {'0'};
+ data = lynq_get_raw_data(p,&data_len);
+ if(data==NULL || data_len == 0)
+ {
+ LYERRLOG("%s lynq_get_raw_data NULL or data_len is 0",__func__);
+ delete p;
+ return LYNQ_E_INNER_ERROR;
+ }
+ data_str = (char*) calloc(1,data_len+1);
+ if (NULL == data_str)
+ {
+ LYERRLOG("%s alloc mem error, data_len is %d",__func__,data_len+1);
+ delete p;
+ return LYNQ_E_MALLOC_ERROR;
+ }
+ memmove(data_str, data, data_len);
+ data_str[data_len]='\0';
+ LYINFLOG("%s return string is %s",__func__,data_str);
+ start = strchr(data_str,':');
+ if(start != NULL)
+ {
+ strncpy(status,start+1,4);
+ *sbp_status = atoi(status);
+ LYINFLOG("Query sbp status is %d",*sbp_status);
+ return RESULT_OK;
+
+ }
+ else
+ {
+ LYERRLOG("Query sbp status Failed");
+ return LYNQ_E_INNER_ERROR;
+ }
+
+}
+
+
static pthread_mutex_t urc_signal_state_change_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t urc_signal_state_change_cond = PTHREAD_COND_INITIALIZER;
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index 221170c..0a5a4e3 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -2246,6 +2246,10 @@
DO_OK_FAIL_REQUEST(lynq_wifi_frequency_cmd);
DO_OK_FAIL_REQUEST(lynq_cmd_mode);
DO_OK_FAIL_REQUEST(cmd_save_config);
+//@ tmp do down/up to fix 5G AP turn to 2.4G cannot be conenct
+ system("wl down");
+ system("wl up");
+ RLOGD("[%s] -- run cmd down/up --%d",__func__,__LINE__);
return 0;
}