---
 plugins/speedup.c |   50 +++++++++++++++++++++++++++++---------------------
 1 files changed, 29 insertions(+), 21 deletions(-)

diff --git a/plugins/speedup.c b/plugins/speedup.c
index f03f8f3..02b6f61 100644
--- a/plugins/speedup.c
+++ b/plugins/speedup.c
@@ -265,49 +265,57 @@ static int speedup_disable(struct ofono_modem *modem)
 static void speedup_pre_sim(struct ofono_modem *modem)
 {
        struct speedup_data *data = ofono_modem_get_data(modem);
-       struct ofono_sim *sim;
 
        DBG("%p", modem);
 
-       ofono_devinfo_create(modem, 0, "atmodem", data->aux);
-       sim = ofono_sim_create(modem, OFONO_VENDOR_SPEEDUP,
-                                               "atmodem", data->aux);
+       if (data->have_gsm == TRUE) {
+               struct ofono_sim *sim;
+               ofono_devinfo_create(modem, 0, "atmodem", data->aux);
+               sim = ofono_sim_create(modem, OFONO_VENDOR_SPEEDUP,
+                                                       "atmodem", data->aux);
 
-       if (sim && data->have_sim == TRUE)
-               ofono_sim_inserted_notify(sim, TRUE);
+               if (sim && data->have_sim == TRUE)
+                       ofono_sim_inserted_notify(sim, TRUE);
+       }
 }
 
 static void speedup_post_sim(struct ofono_modem *modem)
 {
        struct speedup_data *data = ofono_modem_get_data(modem);
-       struct ofono_gprs *gprs;
-       struct ofono_gprs_context *gc;
 
        DBG("%p", modem);
 
-       ofono_phonebook_create(modem, 0, "atmodem", data->aux);
+       if (data->have_gsm == TRUE) {
+               struct ofono_gprs *gprs;
+               struct ofono_gprs_context *gc;
+               ofono_phonebook_create(modem, 0, "atmodem", data->aux);
 
-       ofono_sms_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
-                                               "atmodem", data->aux);
+               ofono_sms_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+                                                       "atmodem", data->aux);
 
-       gprs = ofono_gprs_create(modem, OFONO_VENDOR_SPEEDUP,
-                                               "atmodem", data->aux);
-       gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+               gprs = ofono_gprs_create(modem, OFONO_VENDOR_SPEEDUP,
+                                                       "atmodem", data->aux);
+               gc = ofono_gprs_context_create(modem, 0, "atmodem",
+                                                       data->modem);
 
-       if (gprs && gc)
-               ofono_gprs_add_context(gprs, gc);
+               if (gprs && gc)
+                       ofono_gprs_add_context(gprs, gc);
+       }
 }
 
 static void speedup_post_online(struct ofono_modem *modem)
 {
        struct speedup_data *data = ofono_modem_get_data(modem);
 
-       ofono_netreg_create(modem, OFONO_VENDOR_SPEEDUP, "atmodem", data->aux);
+       if (data->have_gsm == TRUE) {
+               ofono_netreg_create(modem, OFONO_VENDOR_SPEEDUP, "atmodem",
+                                                       data->aux);
 
-       ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
-                                               "atmodem", data->aux);
-       ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
-                                               "atmodem", data->aux);
+               ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+                                                       "atmodem", data->aux);
+               ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+                                                       "atmodem", data->aux);
+       }
 }
 
 static struct ofono_modem_driver speedup_driver = {
-- 
1.7.1

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to