[Bugfix][T108-GSW][bug-view-1473] change gsw_reset_modem from sim module to nw module
Only Configure: No
Affected branch: unknown
Affected module: data
Is it affected on both ZXIC and ASR: only ASR
Self-test: yes
Doc Update: no
Change-Id: Id20dde78474bc49b3cfe02d85e2371b2203e203f
diff --git a/mbtk/libgsw_lib/gsw_nw_interface.c b/mbtk/libgsw_lib/gsw_nw_interface.c
index 9005bbd..a21aec5 100755
--- a/mbtk/libgsw_lib/gsw_nw_interface.c
+++ b/mbtk/libgsw_lib/gsw_nw_interface.c
@@ -14,6 +14,10 @@
#define ENTRY_LENGTH 6
#define FPLMN_ARRAY_SIZE (FPLMN_STRING_LENGTH / 6) + 1
+#define MBTK_ERR_OK 0
+#define GSW_IMEI_LENGTH 20+1
+
+
#ifndef FALSE
#define FALSE (0)
#endif
@@ -328,6 +332,8 @@
int (*mbtk_radio_state_change_cb_reg)(mbtk_info_handle_t* handle, mbtk_info_callback_func cb);
int (*mbtk_oos_get)(mbtk_info_handle_t* handle, mbtk_oos_info *oos_info);
int (*mbtk_oos_set)(mbtk_info_handle_t* handle, mbtk_oos_info *oos_info);
+int (*mbtk_imei_get)(mbtk_info_handle_t* handle, void *imei);
+
static void (*mbtk_log)(int level, const char *format, ...);
static void (*mbtk_log_init)(char *path, char *tag);
@@ -603,6 +609,13 @@
LOGE("mbtk_oos_set dlsym fail\n");
return GSW_HAL_NORMAL_FAIL;
}
+
+ mbtk_imei_get = (int (*)(mbtk_info_handle_t* handle, void *imei))dlsym(dlHandle_mbtk, "mbtk_imei_get");
+ if (mbtk_imei_get == NULL)
+ {
+ LOGE("mbtk_imei_get dlsym fail\n");
+ return GSW_HAL_NORMAL_FAIL;
+ }
return GSW_HAL_SUCCESS;
}
@@ -1486,10 +1499,10 @@
{
int ret = -1;
- LOGE("gsw_get_nwinfo start\n");
+ printf("gsw_get_nwinfo start\n");
if (nw_init_flag == 0 || nw_info_handle == NULL)
{
- LOGE("nw_sdk_deinit not init\n");
+ printf("nw_sdk_deinit not init\n");
return GSW_HAL_NORMAL_FAIL;
}
@@ -1999,6 +2012,10 @@
*/
int gsw_sigInfo_to_csq(int netType, int sigValue)
{
+ if (nw_init_flag == 0 || nw_info_handle == NULL)
+ {
+ return GSW_HAL_NORMAL_FAIL;
+ }
switch(netType)
{
case 1:
@@ -2107,7 +2124,7 @@
if (nw_init_flag == 0 || nw_info_handle == NULL)
{
- LOGE("nw_sdk_deinit not init\n");
+ printf("nw_sdk_deinit not init\n");
return GSW_HAL_NORMAL_FAIL;
}
@@ -2461,7 +2478,7 @@
*/
int gsw_remove_forbidden_networks(gsw_nw_plmn_list_t *plmn_list)
{
- LOGE("gsw_remove_forbidden_networks enter\n");
+ printf("gsw_remove_forbidden_networks enter\n");
if (nw_init_flag == 0 || nw_info_handle == NULL)
{
return GSW_HAL_NORMAL_FAIL;
@@ -2646,5 +2663,80 @@
return GSW_HAL_SUCCESS;
}
+/**
+ * @brief get imei function
+ * @param [in] len imei length,max is 20
+ * @param [out] imei return imei from this func
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_get_imei(int len, char *imei)
+{
+ int ret = -1;
+ if (nw_init_flag == 0 || nw_info_handle == NULL)
+ {
+ printf("nw sdk has been deinit\n");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ if(imei == NULL)
+ {
+ LOGE("imei is NULL.");
+ return GSW_HAL_ARG_INVALID;
+ }
+
+ if(len < GSW_IMEI_LENGTH)
+ {
+ LOGE("imei len is too short,len = %d\n", len);
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ ret = mbtk_imei_get(nw_info_handle, (void *)imei);
+ if(ret != MBTK_ERR_OK)
+ {
+ LOGE("[gsw_nw] mbtk_imei_get fail [err = %d].", ret);
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ return GSW_HAL_SUCCESS;
+}
+
+/**
+ * @brief reset modem stack only, notice: after use this method, all ril sdk
+ * need restart by app, means network, sim, sms, data need deinit then init!
+ * @param
+ * @retval 0: success
+ * @retval other: fail
+ */
+int gsw_reset_modem(void)
+{
+ int ret = -1;
+ if (nw_init_flag == 0 || nw_info_handle == NULL)
+ {
+ printf("nw sdk has been deinit\n");
+ return GSW_HAL_NORMAL_FAIL;
+ }
+ mbtk_modem_info_t info;
+ info.fun = MBTK_DEV_MODEM_MIN_FUN;
+ info.rst = 0;
+
+ ret = mbtk_set_modem_fun(nw_info_handle, &info);
+ if(ret)
+ {
+ LOGE("[gsw_nw] mbtk_set_modem_fun 0 fail [err = %d].", ret);
+ return GSW_HAL_NORMAL_FAIL;
+ }
+
+ sleep(1);
+
+ info.fun = MBTK_DEV_MODEM_FULL_FUN;
+ ret = mbtk_set_modem_fun(nw_info_handle, &info);
+ if(ret)
+ {
+ LOGE("[gsw_nw] mbtk_set_modem_fun 1 fail [err = %d].", ret);
+ return GSW_HAL_NORMAL_FAIL;
+ }
+ return GSW_HAL_SUCCESS;
+}