diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2011-08-09 19:06:57 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2011-08-09 16:50:29 -0700 |
commit | 1881e7c61c0f7579bca84ded4229a52908177a8f (patch) | |
tree | 1645f7695c8b285701b09ae0f0b40178be62ac25 /plugins/udevng.c | |
parent | 9152d56291190a4ece556877eac5b4e4eb2273d5 (diff) | |
download | ofono-1881e7c61c0f7579bca84ded4229a52908177a8f.tar.bz2 |
udev: Detect Diagnostic (QCDM) port for Huawei devices
Diffstat (limited to 'plugins/udevng.c')
-rw-r--r-- | plugins/udevng.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/plugins/udevng.c b/plugins/udevng.c index bc8db2d9..2f655e7b 100644 --- a/plugins/udevng.c +++ b/plugins/udevng.c @@ -155,7 +155,7 @@ static gboolean setup_sierra(struct modem_info *modem) static gboolean setup_huawei(struct modem_info *modem) { - const char *mdm = NULL, *pcui = NULL; + const char *mdm = NULL, *pcui = NULL, *diag = NULL; GSList *list; DBG("%s", modem->syspath); @@ -170,13 +170,19 @@ 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) + 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) + 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/2") == 0) { + diag = info->devnode; + if (mdm != NULL && pcui != NULL) break; } else if (g_strcmp0(info->interface, "255/255/255") == 0) { if (g_strcmp0(info->number, "00") == 0) @@ -193,10 +199,11 @@ static gboolean setup_huawei(struct modem_info *modem) if (mdm == NULL || pcui == NULL) return FALSE; - DBG("modem=%s pcui=%s", mdm, pcui); + DBG("modem=%s pcui=%s diag=%s", mdm, pcui, diag); ofono_modem_set_string(modem->modem, "Modem", mdm); ofono_modem_set_string(modem->modem, "Pcui", pcui); + ofono_modem_set_string(modem->modem, "Diag", diag); return TRUE; } |