summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2012-02-16 19:17:40 +0100
committerMarcel Holtmann <marcel@holtmann.org>2012-02-16 19:17:40 +0100
commit1a3752c17406bcfbb4cd2c0dfec9db430e3b9f49 (patch)
tree24457109e534eeb1d136b09f7d83f4a018b2bc2c
parent91bd71e996788d33c15fc19ea72ca849ff6a3604 (diff)
downloadofono-1a3752c17406bcfbb4cd2c0dfec9db430e3b9f49.tar.bz2
udev: Detect more ports for Sierra modems
-rw-r--r--plugins/udevng.c24
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;
}