diff options
author | Loic Poulain <loic.poulain@linaro.org> | 2021-07-26 16:08:40 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-07-26 20:43:24 +0000 |
commit | 2f38ea0155d7e9dde8b7ed7f04a89e5945c4fca6 (patch) | |
tree | 2857d2e950c5a04a8a5cb24589938bc37ec2c8db /src/kerneldevice/mm-kernel-device-udev.c | |
parent | 97ab5173482d0c6f37029191796c545c99d01fe5 (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.c | 22 |
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; |