diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-02-16 19:17:40 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-02-16 19:17:40 +0100 |
commit | 1a3752c17406bcfbb4cd2c0dfec9db430e3b9f49 (patch) | |
tree | 24457109e534eeb1d136b09f7d83f4a018b2bc2c | |
parent | 91bd71e996788d33c15fc19ea72ca849ff6a3604 (diff) | |
download | ofono-1a3752c17406bcfbb4cd2c0dfec9db430e3b9f49.tar.bz2 |
udev: Detect more ports for Sierra modems
-rw-r--r-- | plugins/udevng.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/plugins/udevng.c b/plugins/udevng.c index 756de02b..13271bff 100644 --- a/plugins/udevng.c +++ b/plugins/udevng.c @@ -206,7 +206,7 @@ static gboolean setup_gobi(struct modem_info *modem) static gboolean setup_sierra(struct modem_info *modem) { - const char *device = NULL; + const char *mdm = NULL, *app1 = NULL, *app2 = NULL, *diag = NULL; GSList *list; DBG("%s", modem->syspath); @@ -217,19 +217,27 @@ static gboolean setup_sierra(struct modem_info *modem) DBG("%s %s %s %s", info->devnode, info->interface, info->number, info->label); - if (g_strcmp0(info->interface, "255/255/255") == 0 && - g_strcmp0(info->number, "03") == 0) { - device = info->devnode; - break; + if (g_strcmp0(info->interface, "255/255/255") == 0) { + if (g_strcmp0(info->number, "01") == 0) + diag = info->devnode; + if (g_strcmp0(info->number, "03") == 0) + mdm = info->devnode; + else if (g_strcmp0(info->number, "04") == 0) + app1 = info->devnode; + else if (g_strcmp0(info->number, "05") == 0) + app2 = info->devnode; } } - if (device == NULL) + if (mdm == NULL || app1 == NULL) return FALSE; - DBG("device=%s", device); + DBG("modem=%s app1=%s app2=%s diag=%s", mdm, app1, app2, diag); - ofono_modem_set_string(modem->modem, "Device", device); + ofono_modem_set_string(modem->modem, "Modem", mdm); + ofono_modem_set_string(modem->modem, "App1", app1); + ofono_modem_set_string(modem->modem, "App2", app2); + ofono_modem_set_string(modem->modem, "Diag", diag); return TRUE; } |