Function gemalto_modem_ready attempts to restart AT chat data->app
after  incomplete shutdown. As a result, new AT chat does not work
as expected loosing AT commands.

Signed-off-by: Sergey Matyukevich <[email protected]>
---
 plugins/gemalto.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/plugins/gemalto.c b/plugins/gemalto.c
index 238c7cc4..321c8c1b 100644
--- a/plugins/gemalto.c
+++ b/plugins/gemalto.c
@@ -222,6 +222,8 @@ static void sim_state_cb(gboolean present, gpointer 
user_data)
        struct ofono_modem *modem = user_data;
        struct gemalto_data *data = ofono_modem_get_data(modem);
 
+       DBG("");
+
        at_util_sim_state_query_free(data->sim_state_query);
        data->sim_state_query = NULL;
 
@@ -241,6 +243,8 @@ static void cfun_enable(gboolean ok, GAtResult *result, 
gpointer user_data)
        struct ofono_modem *modem = user_data;
        struct gemalto_data *data = ofono_modem_get_data(modem);
 
+       DBG("");
+
        if (!ok) {
                g_at_chat_unref(data->app);
                data->app = NULL;
@@ -451,6 +455,8 @@ static void gemalto_modem_ready(GAtResult *result, gpointer 
user_data)
        data->modem_ready_id = 0;
        data->trial_cmd_id = 0;
 
+       g_at_chat_cancel_all(data->app);
+       g_at_chat_unregister_all(data->app);
        g_at_chat_unref(data->app);
 
        data->app = open_device(app);
@@ -466,6 +472,8 @@ static void gemalto_at_cb(gboolean ok, GAtResult *result, 
gpointer user_data)
        struct ofono_modem *modem = user_data;
        struct gemalto_data *data = ofono_modem_get_data(modem);
 
+       DBG("");
+
        g_at_chat_unregister(data->app, data->modem_ready_id);
        data->modem_ready_id = 0;
 
-- 
2.28.0
_______________________________________________
ofono mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to