summaryrefslogtreecommitdiffstats
path: root/plugins/udevng.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2012-05-26 07:35:25 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-05-26 07:35:25 +0200
commitfba1efe1a5f9da85e4bbec6264f8cdd5f0fb1b5e (patch)
tree42eebc341a3ed86f745c061a0f8fde7d349daf28 /plugins/udevng.c
parent6a62729e326ab614b400cadf1d71ee76fbbbcc9f (diff)
downloadofono-fba1efe1a5f9da85e4bbec6264f8cdd5f0fb1b5e.tar.bz2
udev: Add support for detecting Huawei QMI devices
Diffstat (limited to 'plugins/udevng.c')
-rw-r--r--plugins/udevng.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/plugins/udevng.c b/plugins/udevng.c
index 9d72f2d2..6890cc6e 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -291,7 +291,8 @@ static gboolean setup_option(struct modem_info *modem)
static gboolean setup_huawei(struct modem_info *modem)
{
- const char *mdm = NULL, *pcui = NULL, *diag = NULL;
+ const char *qmi = NULL, *mdm = NULL, *net = NULL;
+ const char *pcui = NULL, *diag = NULL;
GSList *list;
DBG("%s", modem->syspath);
@@ -306,20 +307,16 @@ static gboolean setup_huawei(struct modem_info *modem)
g_strcmp0(info->interface, "255/1/1") == 0 ||
g_strcmp0(info->interface, "255/2/1") == 0) {
mdm = info->devnode;
- if (pcui != NULL && diag != NULL)
- break;
} else if (g_strcmp0(info->label, "pcui") == 0 ||
g_strcmp0(info->interface, "255/1/2") == 0 ||
g_strcmp0(info->interface, "255/2/2") == 0) {
pcui = info->devnode;
- if (mdm != NULL && diag != NULL)
- break;
} else if (g_strcmp0(info->label, "diag") == 0 ||
g_strcmp0(info->interface, "255/1/3") == 0 ||
g_strcmp0(info->interface, "255/2/3") == 0) {
diag = info->devnode;
- if (mdm != NULL && pcui != NULL)
- break;
+ } else if (g_strcmp0(info->interface, "255/1/8") == 0) {
+ net = info->devnode;
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
if (g_strcmp0(info->number, "00") == 0)
mdm = info->devnode;
@@ -337,11 +334,13 @@ static gboolean setup_huawei(struct modem_info *modem)
if (mdm == NULL || pcui == NULL)
return FALSE;
- DBG("modem=%s pcui=%s diag=%s", mdm, pcui, diag);
+ DBG("mdm=%s pcui=%s diag=%s qmi=%s net=%s", mdm, pcui, diag, qmi, net);
+ ofono_modem_set_string(modem->modem, "Device", qmi);
ofono_modem_set_string(modem->modem, "Modem", mdm);
ofono_modem_set_string(modem->modem, "Pcui", pcui);
ofono_modem_set_string(modem->modem, "Diag", diag);
+ ofono_modem_set_string(modem->modem, "NetworkInterface", net);
return TRUE;
}
@@ -963,6 +962,7 @@ static struct {
{ "option", "option", "0af0" },
{ "huawei", "option", "201e" },
{ "huawei", "cdc_ether", "12d1" },
+ { "huawei", "qmi_wwan", "12d1" },
{ "huawei", "option", "12d1" },
{ "speedupcdma","option", "1c9e", "9e00" },
{ "speedup", "option", "1c9e" },