aboutsummaryrefslogtreecommitdiff
path: root/src/mm-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-device.c')
-rw-r--r--src/mm-device.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mm-device.c b/src/mm-device.c
index d2ca4de4..0d65d19b 100644
--- a/src/mm-device.c
+++ b/src/mm-device.c
@@ -232,6 +232,7 @@ const gchar *
mm_device_utils_get_port_driver (GUdevDevice *udev_port)
{
const gchar *driver, *subsys;
+ const char *name = g_udev_device_get_name (udev_port);
driver = g_udev_device_get_driver (udev_port);
if (!driver) {
@@ -254,6 +255,12 @@ mm_device_utils_get_port_driver (GUdevDevice *udev_port)
g_object_unref (parent);
}
+ /* Newer kernels don't set up the rfcomm port parent in sysfs,
+ * so we must infer it from the device name.
+ */
+ if (!driver && strncmp (name, "rfcomm", 6) == 0)
+ driver = "bluetooth";
+
return driver;
}