diff options
author | Daniele Palmas <dnlplm@gmail.com> | 2022-05-04 11:49:03 +0200 |
---|---|---|
committer | Daniele Palmas <dnlplm@gmail.com> | 2022-05-24 09:22:06 +0200 |
commit | 654c5f5014f90df7eb239b83ac88a1065e169731 (patch) | |
tree | e3b4ae95e450acdcd5d62fd93d12ad734bd253c9 /src/mm-device.c | |
parent | ff5840c3c7cd6b9de8881d4c081dfa9bc5e43b11 (diff) |
base-modem: add subsystem vendor ID property
Subsystem vendor ID can be used for identifying PCI modems,
so expose the property.
Diffstat (limited to 'src/mm-device.c')
-rw-r--r-- | src/mm-device.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mm-device.c b/src/mm-device.c index c9fa5d05..33528946 100644 --- a/src/mm-device.c +++ b/src/mm-device.c @@ -66,6 +66,8 @@ struct _MMDevicePrivate { /* If USB, device vid/pid */ guint16 vendor; guint16 product; + /* Subsystem vendor ID for PCI devices */ + guint16 subsystem_vendor; /* Kernel drivers managing this device */ gchar **drivers; @@ -241,6 +243,9 @@ mm_device_grab_port (MMDevice *self, self->priv->product = mm_kernel_device_get_physdev_pid (kernel_port); } + if (!self->priv->subsystem_vendor) + self->priv->subsystem_vendor = mm_kernel_device_get_physdev_subsystem_vid (kernel_port); + /* Add new port driver */ add_port_driver (self, kernel_port); @@ -363,6 +368,9 @@ export_modem (MMDevice *self) mm_obj_dbg (self, " vid:pid: 0x%04X:0x%04X", (mm_base_modem_get_vendor_id (self->priv->modem) & 0xFFFF), (mm_base_modem_get_product_id (self->priv->modem) & 0xFFFF)); + if (mm_base_modem_get_subsystem_vendor_id (self->priv->modem)) + mm_obj_dbg (self, " subsystem vid: 0x%04X", + (mm_base_modem_get_subsystem_vendor_id (self->priv->modem) & 0xFFFF)); if (self->priv->virtual) mm_obj_dbg (self, " virtual"); @@ -515,6 +523,12 @@ mm_device_get_product (MMDevice *self) return self->priv->product; } +guint16 +mm_device_get_subsystem_vendor (MMDevice *self) +{ + return self->priv->subsystem_vendor; +} + void mm_device_set_plugin (MMDevice *self, GObject *plugin) |