aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kerneldevice/mm-kernel-device-generic.c55
1 files changed, 39 insertions, 16 deletions
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c
index 32ac5ed1..f3ab8b22 100644
--- a/src/kerneldevice/mm-kernel-device-generic.c
+++ b/src/kerneldevice/mm-kernel-device-generic.c
@@ -127,11 +127,18 @@ preload_sysfs_path (MMKernelDeviceGeneric *self)
g_clear_pointer (&self->priv->sysfs_path, g_free);
}
- if (self->priv->sysfs_path)
+ if (self->priv->sysfs_path) {
+ const gchar *devpath;
+
mm_dbg ("(%s/%s) sysfs path: %s",
mm_kernel_event_properties_get_subsystem (self->priv->properties),
mm_kernel_event_properties_get_name (self->priv->properties),
self->priv->sysfs_path);
+ devpath = (g_str_has_prefix (self->priv->sysfs_path, "/sys") ?
+ &self->priv->sysfs_path[4] :
+ self->priv->sysfs_path);
+ g_object_set_data_full (G_OBJECT (self), "DEVPATH", g_strdup (devpath), g_free);
+ }
g_free (tmp);
}
@@ -255,12 +262,13 @@ preload_physdev_vid (MMKernelDeviceGeneric *self)
self->priv->physdev_vid = val;
}
- if (self->priv->physdev_vid)
- mm_dbg ("(%s/%s) vid: 0x%04x",
+ if (self->priv->physdev_vid) {
+ mm_dbg ("(%s/%s) vid (ID_VENDOR_ID): 0x%04x",
mm_kernel_event_properties_get_subsystem (self->priv->properties),
mm_kernel_event_properties_get_name (self->priv->properties),
self->priv->physdev_vid);
- else
+ g_object_set_data_full (G_OBJECT (self), "ID_VENDOR_ID", g_strdup_printf ("%04x", self->priv->physdev_vid), g_free);
+ } else
mm_dbg ("(%s/%s) vid: unknown",
mm_kernel_event_properties_get_subsystem (self->priv->properties),
mm_kernel_event_properties_get_name (self->priv->properties));
@@ -278,12 +286,13 @@ preload_physdev_pid (MMKernelDeviceGeneric *self)
self->priv->physdev_pid = val;
}
- if (self->priv->physdev_pid)
- mm_dbg ("(%s/%s) pid: 0x%04x",
+ if (self->priv->physdev_pid) {
+ mm_dbg ("(%s/%s) pid (ID_MODEL_ID): 0x%04x",
mm_kernel_event_properties_get_subsystem (self->priv->properties),
mm_kernel_event_properties_get_name (self->priv->properties),
self->priv->physdev_pid);
- else
+ g_object_set_data_full (G_OBJECT (self), "ID_MODEL_ID", g_strdup_printf ("%04x", self->priv->physdev_pid), g_free);
+ } else
mm_dbg ("(%s/%s) pid: unknown",
mm_kernel_event_properties_get_subsystem (self->priv->properties),
mm_kernel_event_properties_get_name (self->priv->properties));
@@ -295,10 +304,16 @@ preload_manufacturer (MMKernelDeviceGeneric *self)
if (!self->priv->physdev_manufacturer)
self->priv->physdev_manufacturer = (self->priv->physdev_sysfs_path ? read_sysfs_property_as_string (self->priv->physdev_sysfs_path, "manufacturer") : NULL);
- mm_dbg ("(%s/%s) manufacturer: %s",
- mm_kernel_event_properties_get_subsystem (self->priv->properties),
- mm_kernel_event_properties_get_name (self->priv->properties),
- self->priv->physdev_manufacturer ? self->priv->physdev_manufacturer : "unknown");
+ if (self->priv->physdev_manufacturer) {
+ mm_dbg ("(%s/%s) manufacturer (ID_VENDOR): %s",
+ mm_kernel_event_properties_get_subsystem (self->priv->properties),
+ mm_kernel_event_properties_get_name (self->priv->properties),
+ self->priv->physdev_manufacturer);
+ g_object_set_data_full (G_OBJECT (self), "ID_VENDOR", g_strdup (self->priv->physdev_manufacturer), g_free);
+ } else
+ mm_dbg ("(%s/%s) manufacturer: unknown",
+ mm_kernel_event_properties_get_subsystem (self->priv->properties),
+ mm_kernel_event_properties_get_name (self->priv->properties));
}
static void
@@ -307,10 +322,17 @@ preload_product (MMKernelDeviceGeneric *self)
if (!self->priv->physdev_product)
self->priv->physdev_product = (self->priv->physdev_sysfs_path ? read_sysfs_property_as_string (self->priv->physdev_sysfs_path, "product") : NULL);
- mm_dbg ("(%s/%s) product: %s",
- mm_kernel_event_properties_get_subsystem (self->priv->properties),
- mm_kernel_event_properties_get_name (self->priv->properties),
- self->priv->physdev_product ? self->priv->physdev_product : "unknown");
+ if (self->priv->physdev_product) {
+ mm_dbg ("(%s/%s) product (ID_MODEL): %s",
+ mm_kernel_event_properties_get_subsystem (self->priv->properties),
+ mm_kernel_event_properties_get_name (self->priv->properties),
+ self->priv->physdev_product);
+ g_object_set_data_full (G_OBJECT (self), "ID_MODEL", g_strdup (self->priv->physdev_product), g_free);
+ } else
+ mm_dbg ("(%s/%s) product: unknown",
+ mm_kernel_event_properties_get_subsystem (self->priv->properties),
+ mm_kernel_event_properties_get_name (self->priv->properties));
+
}
static void
@@ -347,10 +369,11 @@ static void
preload_interface_number (MMKernelDeviceGeneric *self)
{
self->priv->interface_number = (self->priv->interface_sysfs_path ? read_sysfs_property_as_hex (self->priv->interface_sysfs_path, "bInterfaceNumber") : 0x00);
- mm_dbg ("(%s/%s) interface number: 0x%02x",
+ mm_dbg ("(%s/%s) interface number (ID_USB_INTERFACE_NUM): 0x%02x",
mm_kernel_event_properties_get_subsystem (self->priv->properties),
mm_kernel_event_properties_get_name (self->priv->properties),
self->priv->interface_number);
+ g_object_set_data_full (G_OBJECT (self), "ID_USB_INTERFACE_NUM", g_strdup_printf ("%02x", self->priv->interface_number), g_free);
}
static void