[bugfix][T108][bug-view-1143/1140] solve use dm_deinit api then dm_init fail and get air plane state error, add ql_dm_get_modem_state api
Only Configure: No
Affected branch: LYNQ_SDK_ASR_T108_V05.04.01.00
Affected module: DM
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I50514c414f3c0109270caf50a2ef05414ebbbc2e
diff --git a/mbtk/libql_lib_v2_rilv2/ql_dm.c b/mbtk/libql_lib_v2_rilv2/ql_dm.c
index 867c4fd..d6aabd2 100755
--- a/mbtk/libql_lib_v2_rilv2/ql_dm.c
+++ b/mbtk/libql_lib_v2_rilv2/ql_dm.c
@@ -111,17 +111,17 @@
return NULL;
}
- if(mbtk_info == LYNQ_AIR_PLANE_MODE_OFF)
+ if(mbtk_info == MBTK_RADIO_STATE_FULL_FUNC)
{
ql_info = QL_DM_AIR_PLANE_MODE_OFF;
}
- if(mbtk_info == LYNQ_AIR_PLANE_MODE_ON)
+ if(mbtk_info == MBTK_RADIO_STATE_DIS_RF)
{
ql_info = QL_DM_AIR_PLANE_MODE_ON;
}
- if(mbtk_info != LYNQ_AIR_PLANE_MODE_OFF && mbtk_info !=LYNQ_AIR_PLANE_MODE_ON)
+ if(mbtk_info != MBTK_RADIO_STATE_FULL_FUNC && mbtk_info !=MBTK_RADIO_STATE_DIS_RF)
{
ql_info = QL_DM_AIR_PLANE_MODE_UNKNOWN;
@@ -199,6 +199,7 @@
}
else
{
+ ql_info_handle = NULL;
LOGI("mbtk_info_handle_free success");
return QL_ERR_OK;
}
@@ -287,7 +288,38 @@
@retval Other error code defined by ql_type.h
*/
/*-----------------------------------------------------------------------------------------------*/
-int ql_dm_get_modem_state(QL_DM_MODEM_STATE_TYPE_E *modem_state);
+int ql_dm_get_modem_state(QL_DM_MODEM_STATE_TYPE_E *modem_state)
+{
+ int ret = -1;
+ mbtk_radio_state_enum tmp_rf;
+ if(ql_info_handle == NULL)
+ {
+ LOGE("DM no init");
+ return QL_ERR_NOT_INIT;
+ }
+ ret = mbtk_radio_state_get(ql_info_handle, &tmp_rf);
+ if (ret != 0)
+ {
+ LOGE("mbtk_radio_state_get fail.");
+ return QL_ERR_FAILED;
+ }
+
+ if(tmp_rf == 0 )
+ {
+ *modem_state = QL_DM_MODEM_STATE_OFFLINE;
+ }
+ else if(tmp_rf == 1)
+ {
+ *modem_state = QL_DM_MODEM_STATE_ONLINE;
+ }
+ else
+ {
+ *modem_state = QL_DM_MODEM_STATE_UNKNOWN;
+ }
+
+ return QL_ERR_OK;
+
+}
/*-----------------------------------------------------------------------------------------------*/
/**
@@ -465,11 +497,11 @@
LOGE("mbtk_radio_state_get fail.");
return QL_ERR_FAILED;
}
- if(tmp_rf == LYNQ_AIR_PLANE_MODE_OFF)
+ if(tmp_rf == MBTK_RADIO_STATE_FULL_FUNC )
{
*p_info = QL_DM_AIR_PLANE_MODE_OFF;
}
- else if(tmp_rf == LYNQ_AIR_PLANE_MODE_ON)
+ else if(tmp_rf == MBTK_RADIO_STATE_DIS_RF || tmp_rf == MBTK_RADIO_STATE_MINI_FUNC)
{
*p_info = QL_DM_AIR_PLANE_MODE_ON;
}
@@ -494,7 +526,7 @@
int ql_dm_set_air_plane_mode(QL_DM_AIR_PLANE_MODE_TYPE_E air_plane_mode)
{
- mbtk_radio_state_enum radio = MBTK_RADIO_STATE_MINI_FUNC;
+ //mbtk_radio_state_enum radio = MBTK_RADIO_STATE_MINI_FUNC;
int reset = 0;
int rf_mode = -1;
int ret = -1;
@@ -506,7 +538,7 @@
}
if(air_plane_mode == QL_DM_AIR_PLANE_MODE_ON)
{
- rf_mode = LYNQ_AIR_PLANE_MODE_ON;
+ rf_mode = MBTK_RADIO_STATE_DIS_RF;
}
if(air_plane_mode == QL_DM_AIR_PLANE_MODE_OFF)
@@ -515,14 +547,14 @@
}
- if (rf_mode != LYNQ_AIR_PLANE_MODE_ON && rf_mode != LYNQ_AIR_PLANE_MODE_OFF)
+ if (rf_mode != MBTK_RADIO_STATE_DIS_RF && rf_mode != MBTK_RADIO_STATE_FULL_FUNC)
{
LOGE("Input mode is error!");
return QL_ERR_OP_UNSUPPORTED;
}
- ret = mbtk_radio_state_set(ql_info_handle, radio, reset);
+ ret = mbtk_radio_state_set(ql_info_handle, rf_mode, reset);
if(ret != 0)
{
LOGE("ql_dm_set_air_plane_mode failed");