summaryrefslogtreecommitdiff
path: root/include/linux/device-id/tee_client.h
diff options
context:
space:
mode:
authorUwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>2026-06-30 11:24:20 +0200
committerUwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>2026-07-03 07:37:43 +0200
commitad428f5811bd7fb3d91fa002174de533f9da94d7 (patch)
treeaee60b8200d3570af5afa3a007a27cbd0e92e5d8 /include/linux/device-id/tee_client.h
parentdc59e4fea9d83f03bad6bddf3fa2e52491777482 (diff)
downloadlinux-next-ad428f5811bd7fb3d91fa002174de533f9da94d7.tar.gz
linux-next-ad428f5811bd7fb3d91fa002174de533f9da94d7.zip
mod_devicetable.h: Split into per subsystem headers
<linux/mod_devicetable.h> is included transitively in nearly every driver in an x86_64 allmodconfig build of v7.1: $ find drivers -name \*.o -not -name \*.mod.o | wc -l 21330 $ find drivers -name \*.o.cmd -not -name \*.mod.o.cmd | xargs grep -l mod_devicetable.h | wc -l 17038 The result is that even when touching an obscure device id struct most of the kernel needs to be recompiled. Given that each driver typically only needs one or two of these structures, splitting into per subsystem headers and only including what is really needed reduces the amount of needed recompilation. Implement the first step and define each device id struct in a separate header (together with its associated #defines). <linux/mod_devicetable.h> is modified to include all the new headers to continue to provide the same symbols. Several headers currently include <linux/mod_devicetable.h>, those that are most lukrative to include only their subsystem headers only are: $ git -C source grep -l mod_devicetable.h include/linux | while read h; do echo -n "$h:"; find drivers -name \*.o.cmd -not -name \*.mod.o.cmd | xargs grep -l $h | wc -l; done | sort -t: -k2 -n -r | head include/linux/of.h:10897 include/linux/pci.h:7920 include/linux/acpi.h:7097 include/linux/i2c.h:5402 include/linux/spi/spi.h:1897 include/linux/dmi.h:1643 include/linux/usb.h:1222 include/linux/input.h:1205 include/linux/mdio.h:835 include/linux/phy.h:733 struct cpu_feature isn't really a device_id struct. That is kept in <linux/mod_devicetable.h> for now. Acked-by: Danilo Krummrich <dakr@kernel.org> Acked-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> # zorro Link: https://patch.msgid.link/41400e323be8640702b906d04327e833c5bdaf4a.1782808461.git.u.kleine-koenig@baylibre.com [Drop "MOD" from the header guards] Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Diffstat (limited to 'include/linux/device-id/tee_client.h')
-rw-r--r--include/linux/device-id/tee_client.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/device-id/tee_client.h b/include/linux/device-id/tee_client.h
new file mode 100644
index 000000000000..ed81f4228185
--- /dev/null
+++ b/include/linux/device-id/tee_client.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef LINUX_DEVICE_ID_TEE_CLIENT_H
+#define LINUX_DEVICE_ID_TEE_CLIENT_H
+
+#ifdef __KERNEL__
+#include <linux/uuid.h>
+#endif
+
+/**
+ * struct tee_client_device_id - tee based device identifier
+ * @uuid: For TEE based client devices we use the device uuid as
+ * the identifier.
+ */
+struct tee_client_device_id {
+ uuid_t uuid;
+};
+
+#endif /* ifndef LINUX_DEVICE_ID_TEE_CLIENT_H */