From 2292753f4e14cf078dc7532f632eefc8e76846d8 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Thu, 12 Jan 2012 06:02:27 +0100 Subject: [PATCH] huawei: Select USSD atom driver based on firmware mode --- plugins/huawei.c | 16 ++++++++-------- 1 file 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);