tee: Add some helpers to reduce boilerplate for tee client drivers

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>
This commit is contained in:
Uwe Kleine-König 2025-12-15 15:16:31 +01:00 committed by Jens Wiklander
parent 8f0b4cce44
commit a707eda330
2 changed files with 25 additions and 0 deletions

View 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;

View 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*/