mirror of git://git.sysmocom.de/ofono
phonesim: Add modem reset trigger
This commit is contained in:
parent
5862e614fd
commit
b7cfbff47d
|
@ -374,6 +374,30 @@ static void cfun_set_on_cb(gboolean ok, GAtResult *result, gpointer user_data)
|
||||||
ofono_modem_set_powered(modem, ok);
|
ofono_modem_set_powered(modem, ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean phonesim_reset(void *user_data)
|
||||||
|
{
|
||||||
|
struct ofono_modem *modem = user_data;
|
||||||
|
struct phonesim_data *data = ofono_modem_get_data(modem);
|
||||||
|
|
||||||
|
g_at_chat_unref(data->chat);
|
||||||
|
data->chat = NULL;
|
||||||
|
|
||||||
|
if (data->mux) {
|
||||||
|
g_at_mux_shutdown(data->mux);
|
||||||
|
g_at_mux_unref(data->mux);
|
||||||
|
data->mux = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ofono_modem_reset(modem);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void crst_notify(GAtResult *result, gpointer user_data)
|
||||||
|
{
|
||||||
|
g_idle_add(phonesim_reset, user_data);
|
||||||
|
}
|
||||||
|
|
||||||
static void phonesim_disconnected(gpointer user_data)
|
static void phonesim_disconnected(gpointer user_data)
|
||||||
{
|
{
|
||||||
struct ofono_modem *modem = user_data;
|
struct ofono_modem *modem = user_data;
|
||||||
|
@ -526,6 +550,9 @@ static int phonesim_enable(struct ofono_modem *modem)
|
||||||
g_at_chat_send(data->chat, "AT+CSCS=\"GSM\"", none_prefix,
|
g_at_chat_send(data->chat, "AT+CSCS=\"GSM\"", none_prefix,
|
||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
|
g_at_chat_register(data->chat, "+CRST:",
|
||||||
|
crst_notify, FALSE, modem, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue