diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-10-05 16:50:09 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-10-05 16:50:09 +0200 |
commit | 5101702583c5bbfb79d14ffb71eabb0da8f19890 (patch) | |
tree | 9df191c2b1d46c2ef7abe9021ecc2153ee249909 /plugins | |
parent | acc1f1d6afb707eb00e57b11e01979d81a359b18 (diff) | |
download | ofono-5101702583c5bbfb79d14ffb71eabb0da8f19890.tar.bz2 |
huawei: Use modem interface only if NDIS support is not available
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/huawei.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c index ecbd613d..b20d83c6 100644 --- a/plugins/huawei.c +++ b/plugins/huawei.c @@ -109,7 +109,9 @@ static void huawei_remove(struct ofono_modem *modem) ofono_modem_set_data(modem, NULL); - g_at_chat_unref(data->modem); + if (data->modem) + g_at_chat_unref(data->modem); + g_at_chat_unref(data->pcui); g_free(data); } @@ -466,12 +468,15 @@ static int huawei_enable(struct ofono_modem *modem) DBG("%p", modem); - data->modem = open_device(modem, "Modem", "Modem: "); - if (data->modem == NULL) - return -EINVAL; + if (ofono_modem_get_string(modem, "NDIS") == NULL) { + data->modem = open_device(modem, "Modem", "Modem: "); + if (data->modem == NULL) + return -EINVAL; - g_at_chat_set_disconnect_function(data->modem, + g_at_chat_set_disconnect_function(data->modem, huawei_disconnect, modem); + } else + data->ndis = TRUE; data->pcui = open_device(modem, "Pcui", "PCUI: "); if (data->pcui == NULL) { @@ -483,9 +488,6 @@ 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 +CMEE=1", none_prefix, @@ -632,7 +634,7 @@ static void huawei_post_online(struct ofono_modem *modem) data->gprs = ofono_gprs_create(modem, 0, "atmodem", data->pcui); if (data->ndis == TRUE) data->gc = ofono_gprs_context_create(modem, 0, - "huaweimodem", data->modem); + "huaweimodem", data->pcui); else data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem); |