From 1f0318d244761fb55ccdecf71abaefe6c21e52a8 Mon Sep 17 00:00:00 2001 From: Jeevaka Badrappan Date: Sat, 29 Jan 2011 11:03:37 -0800 Subject: stemodem: fix issue with gatchat usage --- drivers/stemodem/radio-settings.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'drivers') diff --git a/drivers/stemodem/radio-settings.c b/drivers/stemodem/radio-settings.c index 5b501263..d6ed2e10 100644 --- a/drivers/stemodem/radio-settings.c +++ b/drivers/stemodem/radio-settings.c @@ -187,6 +187,15 @@ static void ste_set_rat_mode(struct ofono_radio_settings *rs, } } +static gboolean ste_radio_settings_register(gpointer user) +{ + struct ofono_radio_settings *rs = user; + + ofono_radio_settings_register(rs); + + return FALSE; +} + static int ste_radio_settings_probe(struct ofono_radio_settings *rs, unsigned int vendor, void *data) { @@ -197,10 +206,10 @@ static int ste_radio_settings_probe(struct ofono_radio_settings *rs, if (rsd == NULL) return -ENOMEM; - rsd->chat = chat; + rsd->chat = g_at_chat_clone(chat); ofono_radio_settings_set_data(rs, rsd); - ofono_radio_settings_register(rs); + g_idle_add(ste_radio_settings_register, rs); return 0; } @@ -209,6 +218,8 @@ static void ste_radio_settings_remove(struct ofono_radio_settings *rs) { struct radio_settings_data *rsd = ofono_radio_settings_get_data(rs); ofono_radio_settings_set_data(rs, NULL); + + g_at_chat_unref(rsd->chat); g_free(rsd); } -- cgit v1.2.3