]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tee: Add some helpers to reduce boilerplate for tee client drivers
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Mon, 15 Dec 2025 14:16:31 +0000 (15:16 +0100)
committerJens Wiklander <jens.wiklander@linaro.org>
Wed, 17 Dec 2025 17:28:27 +0000 (18:28 +0100)
Similar to platform drivers (and others) create dedicated register and
unregister functions and a macro to simplify modules that only need to
handle driver registration in their init and exit handlers.

Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/tee_core.c
include/linux/tee_drv.h

index d65d47cc154e34cd02037525b68a640b8f5ee99f..51379f7fc5d5442b7d7645fd0b55e63d93d6fef8 100644 (file)
@@ -1405,6 +1405,22 @@ const struct bus_type tee_bus_type = {
 };
 EXPORT_SYMBOL_GPL(tee_bus_type);
 
+int __tee_client_driver_register(struct tee_client_driver *tee_driver,
+                                struct module *owner)
+{
+       tee_driver->driver.owner = owner;
+       tee_driver->driver.bus = &tee_bus_type;
+
+       return driver_register(&tee_driver->driver);
+}
+EXPORT_SYMBOL_GPL(__tee_client_driver_register);
+
+void tee_client_driver_unregister(struct tee_client_driver *tee_driver)
+{
+       driver_unregister(&tee_driver->driver);
+}
+EXPORT_SYMBOL_GPL(tee_client_driver_unregister);
+
 static int __init tee_init(void)
 {
        int rc;
index 88a6f9697c890fe1e8e7ef11b8936b341a99b7de..850c03b2cdeac0bd64ea7f65016d2a5b4cc0344e 100644 (file)
@@ -322,4 +322,13 @@ struct tee_client_driver {
 #define to_tee_client_driver(d) \
                container_of_const(d, struct tee_client_driver, driver)
 
+#define tee_client_driver_register(drv) \
+        __tee_client_driver_register(drv, THIS_MODULE)
+int __tee_client_driver_register(struct tee_client_driver *, struct module *);
+void tee_client_driver_unregister(struct tee_client_driver *);
+
+#define module_tee_client_driver(__tee_client_driver) \
+       module_driver(__tee_client_driver, tee_client_driver_register, \
+                     tee_client_driver_unregister)
+
 #endif /*__TEE_DRV_H*/