diff options
Diffstat (limited to 'src/mm-manager.c')
-rw-r--r-- | src/mm-manager.c | 10 |
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; |