huawei: Select USSD atom driver based on firmware mode

This commit is contained in:
Marcel Holtmann 2012-01-12 06:02:27 +01:00
parent 6ada7d8bdc
commit 2292753f4e
1 changed files with 8 additions and 8 deletions

View File

@ -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);