mirror of git://git.sysmocom.de/ofono
udev: Prioritize labeled interfaces over discovered ones
This commit is contained in:
parent
64d90e9fa7
commit
787f14229a
|
@ -67,8 +67,10 @@ static gboolean setup_gobi(struct modem_info *modem)
|
||||||
info->number, info->label);
|
info->number, info->label);
|
||||||
|
|
||||||
if (g_strcmp0(info->interface, "255/255/255") == 0 &&
|
if (g_strcmp0(info->interface, "255/255/255") == 0 &&
|
||||||
g_strcmp0(info->number, "02") == 0)
|
g_strcmp0(info->number, "02") == 0) {
|
||||||
device = info->devnode;
|
device = info->devnode;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device == NULL)
|
if (device == NULL)
|
||||||
|
@ -95,8 +97,10 @@ static gboolean setup_sierra(struct modem_info *modem)
|
||||||
info->number, info->label);
|
info->number, info->label);
|
||||||
|
|
||||||
if (g_strcmp0(info->interface, "255/255/255") == 0 &&
|
if (g_strcmp0(info->interface, "255/255/255") == 0 &&
|
||||||
g_strcmp0(info->number, "03") == 0)
|
g_strcmp0(info->number, "03") == 0) {
|
||||||
device = info->devnode;
|
device = info->devnode;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device == NULL)
|
if (device == NULL)
|
||||||
|
@ -124,13 +128,17 @@ static gboolean setup_huawei(struct modem_info *modem)
|
||||||
|
|
||||||
if (g_strcmp0(info->label, "modem") == 0 ||
|
if (g_strcmp0(info->label, "modem") == 0 ||
|
||||||
g_strcmp0(info->interface, "255/1/1") == 0 ||
|
g_strcmp0(info->interface, "255/1/1") == 0 ||
|
||||||
g_strcmp0(info->interface, "255/2/1") == 0)
|
g_strcmp0(info->interface, "255/2/1") == 0) {
|
||||||
mdm = info->devnode;
|
mdm = info->devnode;
|
||||||
else if (g_strcmp0(info->label, "pcui") == 0 ||
|
if (pcui != NULL)
|
||||||
|
break;
|
||||||
|
} else if (g_strcmp0(info->label, "pcui") == 0 ||
|
||||||
g_strcmp0(info->interface, "255/1/2") == 0 ||
|
g_strcmp0(info->interface, "255/1/2") == 0 ||
|
||||||
g_strcmp0(info->interface, "255/2/2") == 0)
|
g_strcmp0(info->interface, "255/2/2") == 0) {
|
||||||
pcui = info->devnode;
|
pcui = info->devnode;
|
||||||
else if (g_strcmp0(info->interface, "255/255/255") == 0) {
|
if (mdm != NULL)
|
||||||
|
break;
|
||||||
|
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
|
||||||
if (g_strcmp0(info->number, "00") == 0)
|
if (g_strcmp0(info->number, "00") == 0)
|
||||||
mdm = info->devnode;
|
mdm = info->devnode;
|
||||||
else if (g_strcmp0(info->number, "02") == 0)
|
else if (g_strcmp0(info->number, "02") == 0)
|
||||||
|
@ -166,11 +174,15 @@ static gboolean setup_novatel(struct modem_info *modem)
|
||||||
DBG("%s %s %s %s", info->devnode, info->interface,
|
DBG("%s %s %s %s", info->devnode, info->interface,
|
||||||
info->number, info->label);
|
info->number, info->label);
|
||||||
|
|
||||||
if (g_strcmp0(info->label, "aux") == 0)
|
if (g_strcmp0(info->label, "aux") == 0) {
|
||||||
aux = info->devnode;
|
aux = info->devnode;
|
||||||
else if (g_strcmp0(info->label, "modem") == 0)
|
if (mdm != NULL)
|
||||||
|
break;
|
||||||
|
} else if (g_strcmp0(info->label, "modem") == 0) {
|
||||||
mdm = info->devnode;
|
mdm = info->devnode;
|
||||||
else if (g_strcmp0(info->interface, "255/255/255") == 0) {
|
if (aux != NULL)
|
||||||
|
break;
|
||||||
|
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
|
||||||
if (g_strcmp0(info->number, "00") == 0)
|
if (g_strcmp0(info->number, "00") == 0)
|
||||||
aux = info->devnode;
|
aux = info->devnode;
|
||||||
else if (g_strcmp0(info->number, "01") == 0)
|
else if (g_strcmp0(info->number, "01") == 0)
|
||||||
|
@ -202,11 +214,15 @@ static gboolean setup_zte(struct modem_info *modem)
|
||||||
DBG("%s %s %s %s", info->devnode, info->interface,
|
DBG("%s %s %s %s", info->devnode, info->interface,
|
||||||
info->number, info->label);
|
info->number, info->label);
|
||||||
|
|
||||||
if (g_strcmp0(info->label, "aux") == 0)
|
if (g_strcmp0(info->label, "aux") == 0) {
|
||||||
aux = info->devnode;
|
aux = info->devnode;
|
||||||
else if (g_strcmp0(info->label, "modem") == 0)
|
if (mdm != NULL)
|
||||||
|
break;
|
||||||
|
} else if (g_strcmp0(info->label, "modem") == 0) {
|
||||||
mdm = info->devnode;
|
mdm = info->devnode;
|
||||||
else if (g_strcmp0(info->interface, "255/255/255") == 0) {
|
if (aux != NULL)
|
||||||
|
break;
|
||||||
|
} else if (g_strcmp0(info->interface, "255/255/255") == 0) {
|
||||||
if (g_strcmp0(info->number, "01") == 0)
|
if (g_strcmp0(info->number, "01") == 0)
|
||||||
aux = info->devnode;
|
aux = info->devnode;
|
||||||
else if (g_strcmp0(info->number, "02") == 0)
|
else if (g_strcmp0(info->number, "02") == 0)
|
||||||
|
@ -300,7 +316,8 @@ static void remove_device(struct udev_device *device)
|
||||||
|
|
||||||
DBG("%s", syspath);
|
DBG("%s", syspath);
|
||||||
|
|
||||||
g_hash_table_foreach_remove(modem_list, check_remove, (char *) syspath);
|
g_hash_table_foreach_remove(modem_list, check_remove,
|
||||||
|
(char *) syspath);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint compare_device(gconstpointer a, gconstpointer b)
|
static gint compare_device(gconstpointer a, gconstpointer b)
|
||||||
|
|
Loading…
Reference in New Issue