diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-01-06 19:08:13 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-01-06 19:08:13 -0800 |
commit | cdfea3601e4c246191906dc2a6f85020385f3d0b (patch) | |
tree | eb8f49894022723f14e8f78eb98c9198b0f63aeb | |
parent | 1600d4fdcc89dc8008df9e80ff351ebd4bcb6603 (diff) | |
download | ofono-cdfea3601e4c246191906dc2a6f85020385f3d0b.tar.bz2 |
huawei: Create CDMA atoms if support has been detected
In case the modem supports CDMA (+CIS707-A capability), then enable
CDMA atoms. However only enable if GSM support is not detected.
-rw-r--r-- | plugins/huawei.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/plugins/huawei.c b/plugins/huawei.c index bbaab4d6..ae398d87 100644 --- a/plugins/huawei.c +++ b/plugins/huawei.c @@ -50,6 +50,8 @@ #include <ofono/call-barring.h> #include <ofono/phonebook.h> #include <ofono/message-waiting.h> +#include <ofono/cdma-netreg.h> +#include <ofono/cdma-connman.h> #include <ofono/log.h> #include <drivers/atmodem/atutil.h> @@ -82,6 +84,7 @@ struct huawei_data { const char *offline_command; gboolean have_voice; gboolean have_gsm; + gboolean have_cdma; }; static int huawei_probe(struct ofono_modem *modem) @@ -438,6 +441,8 @@ static void gcap_support(gboolean ok, GAtResult *result, gpointer user_data) if (!strcmp(gcap, "+CGSM")) data->have_gsm = TRUE; + else if (!strcmp(gcap, "+CIS707-A")) + data->have_cdma = TRUE; } done: @@ -694,6 +699,8 @@ static void huawei_pre_sim(struct ofono_modem *modem) if (sim && data->have_sim == TRUE) ofono_sim_inserted_notify(sim, TRUE); + } else if (data->have_cdma == TRUE) { + ofono_devinfo_create(modem, 0, "cdmamodem", data->pcui); } } @@ -744,6 +751,12 @@ static void huawei_post_online(struct ofono_modem *modem) "atmodem", data->pcui); ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM, "atmodem", data->pcui); + } else if (data->have_cdma == TRUE) { + ofono_cdma_netreg_create(modem, 0, + "huaweicdmamodem", data->pcui); + + ofono_cdma_connman_create(modem, OFONO_VENDOR_HUAWEI, + "cdmamodem", data->modem); } if (data->have_voice == TRUE) { |