diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-10-05 16:38:23 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-10-05 16:38:23 +0200 |
commit | acc1f1d6afb707eb00e57b11e01979d81a359b18 (patch) | |
tree | 430266e0e7fd8d239cae27fb17a9dc33dbf6a30f /plugins/huawei.c | |
parent | 2b331684cbf49ac187ec9e3144f6cfe53aaf82fa (diff) | |
download | ofono-acc1f1d6afb707eb00e57b11e01979d81a359b18.tar.bz2 |
huawei: Add support for enabling NDIS GPRS driver if supported
Diffstat (limited to 'plugins/huawei.c')
-rw-r--r-- | plugins/huawei.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c index 12abdc63..ecbd613d 100644 --- a/plugins/huawei.c +++ b/plugins/huawei.c @@ -77,6 +77,7 @@ struct huawei_data { struct ofono_gprs *gprs; struct ofono_gprs_context *gc; gboolean voice; + gboolean ndis; guint sim_poll_timeout; guint sim_poll_count; }; @@ -482,9 +483,13 @@ static int huawei_enable(struct ofono_modem *modem) if (ofono_modem_get_boolean(modem, "HasVoice") == TRUE) data->voice = TRUE; + if (ofono_modem_get_string(modem, "NDIS") != NULL) + data->ndis = TRUE; + data->sim_state = 0; - g_at_chat_send(data->pcui, "ATE0", none_prefix, NULL, NULL, NULL); + g_at_chat_send(data->pcui, "ATE0 +CMEE=1", none_prefix, + NULL, NULL, NULL); g_at_chat_send(data->pcui, "AT+CFUN=1", none_prefix, cfun_enable, modem, NULL); @@ -625,8 +630,12 @@ static void huawei_post_online(struct ofono_modem *modem) if (data->sim_state == HUAWEI_SIM_STATE_VALID || data->sim_state == HUAWEI_SIM_STATE_INVALID_CS) { data->gprs = ofono_gprs_create(modem, 0, "atmodem", data->pcui); - data->gc = ofono_gprs_context_create(modem, 0, "atmodem", - data->modem); + if (data->ndis == TRUE) + data->gc = ofono_gprs_context_create(modem, 0, + "huaweimodem", data->modem); + else + data->gc = ofono_gprs_context_create(modem, 0, + "atmodem", data->modem); if (data->gprs && data->gc) ofono_gprs_add_context(data->gprs, data->gc); |