summaryrefslogtreecommitdiffstats
path: root/plugins/huawei.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2012-01-12 06:02:27 +0100
committerMarcel Holtmann <marcel@holtmann.org>2012-01-12 06:02:27 +0100
commit2292753f4e14cf078dc7532f632eefc8e76846d8 (patch)
tree8da35e499205d523d415b0697ef1293a566e4f7f /plugins/huawei.c
parent6ada7d8bdc600f6fa236ffd12c03d3e3d74af6fe (diff)
downloadofono-2292753f4e14cf078dc7532f632eefc8e76846d8.tar.bz2
huawei: Select USSD atom driver based on firmware mode
Diffstat (limited to 'plugins/huawei.c')
-rw-r--r--plugins/huawei.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c
index a4a6b93a..5d8875ad 100644
--- a/plugins/huawei.c
+++ b/plugins/huawei.c
@@ -88,6 +88,7 @@ struct huawei_data {
gboolean have_gsm;
gboolean have_cdma;
gboolean have_ndis;
+ gboolean have_ussdmode;
};
static int huawei_probe(struct ofono_modem *modem)
@@ -148,12 +149,8 @@ static void ussdmode_query_cb(gboolean ok, GAtResult *result,
if (!g_at_result_iter_next_number(&iter, &ussdmode))
return;
- if (ussdmode == 0)
- return;
-
- /* Set USSD mode to text mode */
- g_at_chat_send(data->pcui, "AT^USSDMODE=0", none_prefix,
- NULL, NULL, NULL);
+ if (ussdmode == 1)
+ data->have_ussdmode = TRUE;
}
static void ussdmode_support_cb(gboolean ok, GAtResult *result,
@@ -848,8 +845,11 @@ static void huawei_post_online(struct ofono_modem *modem)
ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
"atmodem", data->pcui);
- ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
- "atmodem", data->pcui);
+ if (data->have_ussdmode == TRUE)
+ ofono_ussd_create(modem, 0, "huaweimodem", data->pcui);
+ else
+ ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+ "atmodem", data->pcui);
} else if (data->have_cdma == TRUE) {
ofono_cdma_netreg_create(modem, 0, "huaweimodem", data->pcui);