aboutsummaryrefslogtreecommitdiff
path: root/src/kerneldevice/mm-kernel-device-generic.c
diff options
context:
space:
mode:
authorBen Chan <benchan@chromium.org>2017-09-19 22:25:34 -0700
committerAleksander Morgado <aleksander@aleksander.es>2017-10-07 10:05:40 +0200
commit3a0d658b5d8eef55fdc5ad8c07dcb2c7f2e86453 (patch)
tree04e149b543131b895c963300bcac05e8f535b6c8 /src/kerneldevice/mm-kernel-device-generic.c
parentbee3f063b44ef4e1476663a30ec673d69b47a442 (diff)
kerneldevice: add method to retrieve manufacturer information
A USB device may report its manufacturer through the Manufacturer String Descriptor. That information can sometimes be useful, e.g. MBIM doesn't define a standard command to query the manufacturer. This patch adds a method to MMKernelDevice to retrieve the manufacturer information from the underlying physical device, which can later be used by MMBroadbandModemMbim to report the manufacturer of a MBIM modem.
Diffstat (limited to 'src/kerneldevice/mm-kernel-device-generic.c')
-rw-r--r--src/kerneldevice/mm-kernel-device-generic.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c
index 500afb83..fb4c7fac 100644
--- a/src/kerneldevice/mm-kernel-device-generic.c
+++ b/src/kerneldevice/mm-kernel-device-generic.c
@@ -475,6 +475,14 @@ kernel_device_get_physdev_pid (MMKernelDevice *self)
return MM_KERNEL_DEVICE_GENERIC (self)->priv->physdev_pid;
}
+static const gchar *
+kernel_device_get_physdev_manufacturer (MMKernelDevice *self)
+{
+ g_return_val_if_fail (MM_IS_KERNEL_DEVICE_GENERIC (self), 0);
+
+ return MM_KERNEL_DEVICE_GENERIC (self)->priv->physdev_manufacturer;
+}
+
static gboolean
kernel_device_is_candidate (MMKernelDevice *_self,
gboolean manual_scan)
@@ -1054,21 +1062,22 @@ mm_kernel_device_generic_class_init (MMKernelDeviceGenericClass *klass)
object_class->get_property = get_property;
object_class->set_property = set_property;
- kernel_device_class->get_subsystem = kernel_device_get_subsystem;
- kernel_device_class->get_name = kernel_device_get_name;
- kernel_device_class->get_driver = kernel_device_get_driver;
- kernel_device_class->get_sysfs_path = kernel_device_get_sysfs_path;
- kernel_device_class->get_physdev_uid = kernel_device_get_physdev_uid;
- kernel_device_class->get_physdev_vid = kernel_device_get_physdev_vid;
- kernel_device_class->get_physdev_pid = kernel_device_get_physdev_pid;
- kernel_device_class->get_parent_sysfs_path = kernel_device_get_parent_sysfs_path;
- kernel_device_class->is_candidate = kernel_device_is_candidate;
- kernel_device_class->cmp = kernel_device_cmp;
- kernel_device_class->has_property = kernel_device_has_property;
- kernel_device_class->get_property = kernel_device_get_property;
- kernel_device_class->get_property_as_boolean = kernel_device_get_property_as_boolean;
- kernel_device_class->get_property_as_int = kernel_device_get_property_as_int;
- kernel_device_class->get_property_as_int_hex = kernel_device_get_property_as_int_hex;
+ kernel_device_class->get_subsystem = kernel_device_get_subsystem;
+ kernel_device_class->get_name = kernel_device_get_name;
+ kernel_device_class->get_driver = kernel_device_get_driver;
+ kernel_device_class->get_sysfs_path = kernel_device_get_sysfs_path;
+ kernel_device_class->get_physdev_uid = kernel_device_get_physdev_uid;
+ kernel_device_class->get_physdev_vid = kernel_device_get_physdev_vid;
+ kernel_device_class->get_physdev_pid = kernel_device_get_physdev_pid;
+ kernel_device_class->get_physdev_manufacturer = kernel_device_get_physdev_manufacturer;
+ kernel_device_class->get_parent_sysfs_path = kernel_device_get_parent_sysfs_path;
+ kernel_device_class->is_candidate = kernel_device_is_candidate;
+ kernel_device_class->cmp = kernel_device_cmp;
+ kernel_device_class->has_property = kernel_device_has_property;
+ kernel_device_class->get_property = kernel_device_get_property;
+ kernel_device_class->get_property_as_boolean = kernel_device_get_property_as_boolean;
+ kernel_device_class->get_property_as_int = kernel_device_get_property_as_int;
+ kernel_device_class->get_property_as_int_hex = kernel_device_get_property_as_int_hex;
/* Device-wide properties are stored per-port in the generic backend */
kernel_device_class->has_global_property = kernel_device_has_property;