summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-10-05 16:38:23 +0200
committerMarcel Holtmann <marcel@holtmann.org>2010-10-05 16:38:23 +0200
commitacc1f1d6afb707eb00e57b11e01979d81a359b18 (patch)
tree430266e0e7fd8d239cae27fb17a9dc33dbf6a30f /plugins
parent2b331684cbf49ac187ec9e3144f6cfe53aaf82fa (diff)
downloadofono-acc1f1d6afb707eb00e57b11e01979d81a359b18.tar.bz2
huawei: Add support for enabling NDIS GPRS driver if supported
Diffstat (limited to 'plugins')
-rw-r--r--plugins/huawei.c15
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);