diff options
Diffstat (limited to 'src/mm-device.c')
-rw-r--r-- | src/mm-device.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mm-device.c b/src/mm-device.c index af2332f6..109ba21e 100644 --- a/src/mm-device.c +++ b/src/mm-device.c @@ -72,6 +72,8 @@ struct _MMDevicePrivate { guint16 product; /* Subsystem vendor ID for PCI devices */ guint16 subsystem_vendor; + /* Subsystem device ID for PCI devices */ + guint16 subsystem_device; /* Kernel drivers managing this device */ gchar **drivers; @@ -269,6 +271,9 @@ mm_device_grab_port (MMDevice *self, if (!self->priv->subsystem_vendor) self->priv->subsystem_vendor = mm_kernel_device_get_physdev_subsystem_vid (kernel_port); + if (!self->priv->subsystem_device) + self->priv->subsystem_device = mm_kernel_device_get_physdev_subsystem_pid (kernel_port); + /* Add new port driver */ add_port_driver (self, kernel_port); @@ -614,6 +619,13 @@ mm_device_get_subsystem_vendor (MMDevice *self) return self->priv->subsystem_vendor; } +guint16 +mm_device_get_subsystem_device (MMDevice *self) +{ + return self->priv->subsystem_device; +} + + void mm_device_set_plugin (MMDevice *self, GObject *plugin) |