aboutsummaryrefslogtreecommitdiff
path: root/src/mm-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-manager.c')
-rw-r--r--src/mm-manager.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mm-manager.c b/src/mm-manager.c
index dca384e..7103a00 100644
--- a/src/mm-manager.c
+++ b/src/mm-manager.c
@@ -160,6 +160,7 @@ find_physical_device (GUdevDevice *child)
const char *subsys, *type;
guint32 i = 0;
gboolean is_usb = FALSE, is_pci = FALSE, is_pcmcia = FALSE, is_platform = FALSE;
+ gboolean is_pnp = FALSE;
g_return_val_if_fail (child != NULL, NULL);
@@ -203,6 +204,10 @@ find_physical_device (GUdevDevice *child)
is_pci = TRUE;
physdev = iter;
break;
+ } else if (is_pnp || !strcmp (subsys, "pnp")) {
+ is_pnp = TRUE;
+ physdev = iter;
+ break;
}
}
@@ -280,10 +285,11 @@ device_added (MMManager *manager,
goto out;
}
- /* If the physdev is a 'platform' device that's not whitelisted, ignore it */
+ /* If the physdev is a 'platform' or 'pnp' device that's not whitelisted, ignore it */
physdev_subsys = g_udev_device_get_subsystem (physdev);
if ( physdev_subsys
- && !strcmp (physdev_subsys, "platform")
+ && ( g_str_equal (physdev_subsys, "platform")
+ || g_str_equal (physdev_subsys, "pnp"))
&& !g_udev_device_get_property_as_boolean (physdev, "ID_MM_PLATFORM_DRIVER_PROBE")) {
mm_dbg ("(%s/%s): port's parent platform driver is not whitelisted", subsys, name);
goto out;