aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-01-17 14:51:16 +0100
committerAleksander Morgado <aleksander@aleksander.es>2021-04-14 11:27:27 +0200
commit591d904f5ca7567a91156cfdf9823ba735a1c38e (patch)
tree62b9d736804801dd63df5c71ef498d1d4952f80e
parent2b126725bff51752ce586be8b7ff03de87e5aef9 (diff)
kernel-device,qrtr: common physdev UID for all QRTR nodes
Add a common physdev UID to all ports in the Qualcomm SoC, so that they are all bound together to the same modem object. This change assumes that no external plugged device ever exports a QRTR node in the QRTR bus (e.g. that no PCI or USB device would ever do that). This assumption is likely wrong, but given that we're currently limiting the QRTR support to the Qualcomm SoC plugin, the assumption is valid for us for now.
-rw-r--r--src/kerneldevice/mm-kernel-device-qrtr.c9
-rw-r--r--src/kerneldevice/mm-kernel-device-qrtr.h6
2 files changed, 7 insertions, 8 deletions
diff --git a/src/kerneldevice/mm-kernel-device-qrtr.c b/src/kerneldevice/mm-kernel-device-qrtr.c
index 298d30ca..a352b972 100644
--- a/src/kerneldevice/mm-kernel-device-qrtr.c
+++ b/src/kerneldevice/mm-kernel-device-qrtr.c
@@ -112,14 +112,7 @@ kernel_device_get_name (MMKernelDevice *_self)
static const gchar *
kernel_device_get_physdev_uid (MMKernelDevice *_self)
{
- MMKernelDeviceQrtr *self;
-
- self = MM_KERNEL_DEVICE_QRTR (_self);
-
- if (!self->priv->physdev_uid)
- self->priv->physdev_uid = g_strdup_printf ("qrtr%d", qrtr_node_get_id (self->priv->node));
-
- return self->priv->physdev_uid;
+ return MM_KERNEL_DEVICE_QRTR_PHYSDEV_UID;
}
static const gchar *
diff --git a/src/kerneldevice/mm-kernel-device-qrtr.h b/src/kerneldevice/mm-kernel-device-qrtr.h
index 7b163004..26ad0748 100644
--- a/src/kerneldevice/mm-kernel-device-qrtr.h
+++ b/src/kerneldevice/mm-kernel-device-qrtr.h
@@ -31,6 +31,12 @@
/* Subsytem string reported for all QRTR nodes; not really a kernel subsystem */
#define MM_KERNEL_DEVICE_QRTR_SUBSYSTEM "qrtr"
+/* Physical device UID string reported for all QRTR nodes; equal to the UID
+ * used in the 'qcom-soc' plugin, which is the only one supporting QRTR nodes
+ * for now. This UID must be equal for all ports on the same modem, and so for
+ * Qualcomm SoCs we use the same plugin name as common string. */
+#define MM_KERNEL_DEVICE_QRTR_PHYSDEV_UID "qcom-soc"
+
/* Helper to create a unique device name from the QRTR node id */
gchar *mm_kernel_device_qrtr_helper_build_name (guint32 node_id);