plugin: avoid QMI-managed net ports when compiling without QMI support
This commit is contained in:
@@ -197,16 +197,16 @@ out:
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gchar *
|
const gchar *
|
||||||
get_driver_name (GUdevDevice *device)
|
mm_device_utils_get_port_driver (GUdevDevice *udev_port)
|
||||||
{
|
{
|
||||||
GUdevDevice *parent = NULL;
|
|
||||||
const gchar *driver, *subsys;
|
const gchar *driver, *subsys;
|
||||||
gchar *ret = NULL;
|
|
||||||
|
|
||||||
driver = g_udev_device_get_driver (device);
|
driver = g_udev_device_get_driver (udev_port);
|
||||||
if (!driver) {
|
if (!driver) {
|
||||||
parent = g_udev_device_get_parent (device);
|
GUdevDevice *parent;
|
||||||
|
|
||||||
|
parent = g_udev_device_get_parent (udev_port);
|
||||||
if (parent)
|
if (parent)
|
||||||
driver = g_udev_device_get_driver (parent);
|
driver = g_udev_device_get_driver (parent);
|
||||||
|
|
||||||
@@ -218,32 +218,29 @@ get_driver_name (GUdevDevice *device)
|
|||||||
if (subsys && !strcmp (subsys, "bluetooth"))
|
if (subsys && !strcmp (subsys, "bluetooth"))
|
||||||
driver = "bluetooth";
|
driver = "bluetooth";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (parent)
|
||||||
|
g_object_unref (parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (driver)
|
return driver;
|
||||||
ret = g_strdup (driver);
|
|
||||||
if (parent)
|
|
||||||
g_object_unref (parent);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_port_driver (MMDevice *self,
|
add_port_driver (MMDevice *self,
|
||||||
GUdevDevice *udev_port)
|
GUdevDevice *udev_port)
|
||||||
{
|
{
|
||||||
gchar *driver = NULL;
|
const gchar *driver;
|
||||||
guint n_items;
|
guint n_items;
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
driver = get_driver_name (udev_port);
|
driver = mm_device_utils_get_port_driver (udev_port);
|
||||||
|
|
||||||
n_items = (self->priv->drivers ? g_strv_length (self->priv->drivers) : 0);
|
n_items = (self->priv->drivers ? g_strv_length (self->priv->drivers) : 0);
|
||||||
if (n_items > 0) {
|
if (n_items > 0) {
|
||||||
/* Add driver to our list of drivers, if not already there */
|
/* Add driver to our list of drivers, if not already there */
|
||||||
for (i = 0; self->priv->drivers[i]; i++) {
|
for (i = 0; self->priv->drivers[i]; i++) {
|
||||||
if (g_str_equal (self->priv->drivers[i], driver)) {
|
if (g_str_equal (self->priv->drivers[i], driver)) {
|
||||||
g_free (driver);
|
|
||||||
driver = NULL;
|
driver = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -255,7 +252,7 @@ add_port_driver (MMDevice *self,
|
|||||||
|
|
||||||
self->priv->drivers = g_realloc (self->priv->drivers,
|
self->priv->drivers = g_realloc (self->priv->drivers,
|
||||||
(n_items + 2) * sizeof (gchar *));
|
(n_items + 2) * sizeof (gchar *));
|
||||||
self->priv->drivers[n_items] = driver;
|
self->priv->drivers[n_items] = g_strdup (driver);
|
||||||
self->priv->drivers[n_items + 1] = NULL;
|
self->priv->drivers[n_items + 1] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -94,4 +94,6 @@ GObject *mm_device_get_port_probe (MMDevice *self,
|
|||||||
GList *mm_device_peek_port_probe_list (MMDevice *self);
|
GList *mm_device_peek_port_probe_list (MMDevice *self);
|
||||||
GList *mm_device_get_port_probe_list (MMDevice *self);
|
GList *mm_device_get_port_probe_list (MMDevice *self);
|
||||||
|
|
||||||
|
const gchar *mm_device_utils_get_port_driver (GUdevDevice *udev_port);
|
||||||
|
|
||||||
#endif /* MM_DEVICE_H */
|
#endif /* MM_DEVICE_H */
|
||||||
|
@@ -820,7 +820,18 @@ mm_plugin_create_modem (MMPlugin *self,
|
|||||||
MM_CORE_ERROR_UNSUPPORTED,
|
MM_CORE_ERROR_UNSUPPORTED,
|
||||||
"unsupported subsystem: '%s'",
|
"unsupported subsystem: '%s'",
|
||||||
mm_port_probe_get_port_subsys (probe));
|
mm_port_probe_get_port_subsys (probe));
|
||||||
} else if (MM_PLUGIN_GET_CLASS (self)->grab_port)
|
}
|
||||||
|
#if !defined WITH_QMI
|
||||||
|
else if (mm_port_probe_get_port_type (probe) == MM_PORT_TYPE_NET &&
|
||||||
|
g_str_equal (mm_device_utils_get_port_driver (mm_port_probe_peek_port (probe)),
|
||||||
|
"qmi_wwan")) {
|
||||||
|
grabbed = FALSE;
|
||||||
|
inner_error = g_error_new (MM_CORE_ERROR,
|
||||||
|
MM_CORE_ERROR_UNSUPPORTED,
|
||||||
|
"ignoring QMI net port");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else if (MM_PLUGIN_GET_CLASS (self)->grab_port)
|
||||||
grabbed = MM_PLUGIN_GET_CLASS (self)->grab_port (MM_PLUGIN (self),
|
grabbed = MM_PLUGIN_GET_CLASS (self)->grab_port (MM_PLUGIN (self),
|
||||||
modem,
|
modem,
|
||||||
probe,
|
probe,
|
||||||
|
Reference in New Issue
Block a user