aboutsummaryrefslogtreecommitdiff
path: root/src/kerneldevice/mm-kernel-device-udev.c
diff options
context:
space:
mode:
authorLoic Poulain <loic.poulain@linaro.org>2021-07-26 16:08:40 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-07-26 20:43:24 +0000
commit2f38ea0155d7e9dde8b7ed7f04a89e5945c4fca6 (patch)
tree2857d2e950c5a04a8a5cb24589938bc37ec2c8db /src/kerneldevice/mm-kernel-device-udev.c
parent97ab5173482d0c6f37029191796c545c99d01fe5 (diff)
kernel-device: Add get_wwandev_sysfs_path
The wwan subsystem is a new bus agnostic framework exposing wwan device and its components (ports, netdev...). It can be useful to get the wwan device a device belongs to Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Diffstat (limited to 'src/kerneldevice/mm-kernel-device-udev.c')
-rw-r--r--src/kerneldevice/mm-kernel-device-udev.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/kerneldevice/mm-kernel-device-udev.c b/src/kerneldevice/mm-kernel-device-udev.c
index e2707c3a..19389f66 100644
--- a/src/kerneldevice/mm-kernel-device-udev.c
+++ b/src/kerneldevice/mm-kernel-device-udev.c
@@ -348,6 +348,27 @@ kernel_device_get_sysfs_path (MMKernelDevice *_self)
}
static const gchar *
+kernel_device_get_wwandev_sysfs_path (MMKernelDevice *_self)
+{
+ g_autoptr(GUdevDevice) parent = NULL;
+ MMKernelDeviceUdev *self;
+ const gchar *subsys;
+
+ self = MM_KERNEL_DEVICE_UDEV (_self);
+ parent = g_udev_device_get_parent (self->priv->device);
+
+ if (!parent)
+ return NULL;
+
+ subsys = g_udev_device_get_subsystem (parent);
+
+ if (!subsys || g_strcmp0 (subsys, "wwan"))
+ return NULL;
+
+ return g_udev_device_get_sysfs_path (parent);
+}
+
+static const gchar *
kernel_device_get_physdev_uid (MMKernelDevice *_self)
{
MMKernelDeviceUdev *self;
@@ -780,6 +801,7 @@ mm_kernel_device_udev_class_init (MMKernelDeviceUdevClass *klass)
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_wwandev_sysfs_path = kernel_device_get_wwandev_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;