summaryrefslogtreecommitdiffstats
path: root/plugins/huawei.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2012-01-06 18:30:12 -0800
committerMarcel Holtmann <marcel@holtmann.org>2012-01-06 18:30:12 -0800
commit09c7a1cdd1a3ade54eb45135fc6b18561a6a0fb3 (patch)
treea820da85f4178173b105f5aee04f9c2681764b59 /plugins/huawei.c
parent9e26e29f8ded22a072b5a4457373398990480f87 (diff)
downloadofono-09c7a1cdd1a3ade54eb45135fc6b18561a6a0fb3.tar.bz2
huawei: Create GSM/UMTS atoms only if support has been detected
Diffstat (limited to 'plugins/huawei.c')
-rw-r--r--plugins/huawei.c48
1 files changed, 30 insertions, 18 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c
index e8314445..bbaab4d6 100644
--- a/plugins/huawei.c
+++ b/plugins/huawei.c
@@ -682,23 +682,24 @@ static void huawei_set_online(struct ofono_modem *modem, ofono_bool_t online,
static void huawei_pre_sim(struct ofono_modem *modem)
{
struct huawei_data *data = ofono_modem_get_data(modem);
- struct ofono_sim *sim;
DBG("%p", modem);
- ofono_devinfo_create(modem, 0, "atmodem", data->pcui);
- sim = ofono_sim_create(modem, OFONO_VENDOR_HUAWEI,
- "atmodem", data->pcui);
+ if (data->have_gsm == TRUE) {
+ struct ofono_sim *sim;
- if (sim && data->have_sim == TRUE)
- ofono_sim_inserted_notify(sim, TRUE);
+ ofono_devinfo_create(modem, 0, "atmodem", data->pcui);
+ sim = ofono_sim_create(modem, OFONO_VENDOR_HUAWEI,
+ "atmodem", data->pcui);
+
+ if (sim && data->have_sim == TRUE)
+ ofono_sim_inserted_notify(sim, TRUE);
+ }
}
static void huawei_post_sim(struct ofono_modem *modem)
{
struct huawei_data *data = ofono_modem_get_data(modem);
- struct ofono_gprs *gprs;
- struct ofono_gprs_context *gc;
DBG("%p", modem);
@@ -708,17 +709,25 @@ static void huawei_post_sim(struct ofono_modem *modem)
"huaweimodem", data->pcui);
}
- ofono_phonebook_create(modem, 0, "atmodem", data->pcui);
- ofono_radio_settings_create(modem, 0, "huaweimodem", data->pcui);
+ if (data->have_gsm == TRUE) {
+ struct ofono_gprs *gprs;
+ struct ofono_gprs_context *gc;
- ofono_sms_create(modem, OFONO_VENDOR_HUAWEI, "atmodem", data->pcui);
+ ofono_phonebook_create(modem, 0, "atmodem", data->pcui);
+ ofono_radio_settings_create(modem, 0,
+ "huaweimodem", data->pcui);
- gprs = ofono_gprs_create(modem, OFONO_VENDOR_HUAWEI,
+ ofono_sms_create(modem, OFONO_VENDOR_HUAWEI,
"atmodem", data->pcui);
- gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
- if (gprs && gc)
- ofono_gprs_add_context(gprs, gc);
+ gprs = ofono_gprs_create(modem, OFONO_VENDOR_HUAWEI,
+ "atmodem", data->pcui);
+ gc = ofono_gprs_context_create(modem, 0,
+ "atmodem", data->modem);
+
+ if (gprs && gc)
+ ofono_gprs_add_context(gprs, gc);
+ }
}
static void huawei_post_online(struct ofono_modem *modem)
@@ -727,12 +736,15 @@ static void huawei_post_online(struct ofono_modem *modem)
DBG("%p", modem);
- ofono_netreg_create(modem, OFONO_VENDOR_HUAWEI, "atmodem", data->pcui);
+ if (data->have_gsm == TRUE) {
+ ofono_netreg_create(modem, OFONO_VENDOR_HUAWEI,
+ "atmodem", data->pcui);
- ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+ ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
"atmodem", data->pcui);
- ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+ ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
"atmodem", data->pcui);
+ }
if (data->have_voice == TRUE) {
struct ofono_message_waiting *mw;