From nobody Wed Dec 17 06:13:38 2025 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 236CA299AA3 for ; Mon, 15 Dec 2025 14:17:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765808264; cv=none; b=I438TmN/GznJ/wSHzCIWrvi5Tpvn1Z5Ah5v83WQqj+yuKfoWaQFGlKND5WGPMKsJDYBDwhdls7Yzj2poAVCGg7hglK1NYBoTD4TS/wAwJ+q0U8DuLH6m8BfuDYv8On3t8NIbDq4ir35DwfJTz9CQtOrDfszQrFrt4JVUiDkT/o8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765808264; c=relaxed/simple; bh=xC2ltYeeueP5vlvmDoWPRSRk09PJusQKgFR+Yv8ms48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=j9ItLUuiTBXAqz6t3IXASyr4UApf83pntWoZ6X/03q6VgKRfsNFfn44dkebHabju9fIkzWPuWgcuBO1PWz/fFF0iXvMDrNFb6bNerP3YpExSzkIZ0YDB9z7gVKKgX2adrK8fkWHvtnsKBB9vXxZlWPWOdkgaGBf4Qqam1BKTMVg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=ss+QJ3WE; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="ss+QJ3WE" Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-b7bd8b170e0so399121666b.3 for ; Mon, 15 Dec 2025 06:17:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1765808257; x=1766413057; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TKLIW1Otm/CvIibORJ3xOD9U+OAfBBsE0DeO8Ciovak=; b=ss+QJ3WEYwn9hvtPHSUjb1AE2ohb4MfOD6mZ9V2gZdJzMIq4/9jLoNcDw50ufufZan m/1RwniFfNiHgBcMrcxjsWl19WN8nI3Yej918G3LOgT/AN5Mf+4o46P+qAd0DQR2Ysnc ACnF+TgMux2xF42iglvECzi6TlVvlPCvp1BlsNXk3W77uSP+CYhgtVFmJepVDTXvKbOu xIJkNMS01aSMuUeQt4wuja90vkanSZmKt19Bcb5graoo4e0d7w90YIWqpIypk+BgjeDR dwF/hY9YLG5PYbtwyMCU8vYOGZfR0XzsrpuwEleepZXGEApZbfgirRR9IPVhZW3OoVHH uBEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765808257; x=1766413057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TKLIW1Otm/CvIibORJ3xOD9U+OAfBBsE0DeO8Ciovak=; b=laAEENlHUiq/MlyE/wUiErW8iR56X3ckhHL0YMCd5e9VZLE+SKi/wS+z1yH3EkoK7m L0jSPwmblCQFhNanG83lQ4qpUtyBNSJft6TeyCym0OG5+xTK8tsANeAcEr9RH2mc3Glh 551jvXmNVmpwQ1U4iXQlZM6f+nwT2qoR5wOWjs8jnBJsSAgvXwp4EJoB1kYNvMAsjBMC lONixDohejmKBmwGv6Z8quIzKY94SE9PNPAxpg9tC3hUmHnsDBORoso9EGO89sIY/ozz M9UuR+lWfQrfnSAqnkEvGqON0Q+oxc8E16SnRUlUHvANDwbEldQ9ePF3lWs8lh/wcp0i VmAg== X-Forwarded-Encrypted: i=1; AJvYcCU9zZHrFIw4L3acXXemvPIZ1mzmbDQklictrj5B2jJ1dt8ew0CYh1jihsAHBJgBftKTf398bImM9+/je8w=@vger.kernel.org X-Gm-Message-State: AOJu0YyWlDqhkUfk2VhCRQZ9WGTsJz5UezosPdrYZRh8VDboFtSFubKD wj1068DwYvPyndIoYQBTmFYH89O9cQv/0DlJVF+qlewrpUEuaAdNkb5DmH2GmjQBf5rxkXS/MTu CUz+0 X-Gm-Gg: AY/fxX7A7+xJYXmDE8fvhhAxyT1XPFC12WFooQwG+4bNEMpJBdfB8rWxVgJ301Q9Ace 2QFo+vOkQTmw67hSVV6+qR8E/CHFp+cOp5jbGv2jwQf9o8r/8ftBuVGCod6ISZXVxdFgwrsztjm SIpUTNnzdKUoq/gep5pY7XtzpexazIUlrVQZ10qE6ODqhUo6SeCcCPEkMxLnQOx+oytA/kOBHFG dblfgTGupfe6Zi1MJQeR8omhVmM2+E3mFh8rXJGw426tQNbEkS1sg0fTPyYy5BObqI6+uvJUQ7M XHXP5H4CostOsr/MYGta4J6C/ClpS6R/z09N9xtnFSxdkFOHTXgHaepQsMlg3/rRQAkZekn52Hh qtqhHA+AvU+XsP7ysTT3xdPcVVi4lxqHBKREPxFFP4JXo8/84fn1zbQJxUFcL10lRb8nCVtA7Wi x7GP0uVz/kOoNDgFHtIdaxbyJKWhm7V9XOvSPJy3g0w1n2Rhw51Mtb2BrBNg== X-Google-Smtp-Source: AGHT+IGnIW9OB19xF3q3JCaHg3DeUHqEK/cfaz7GtvANmTVQUUPZGevLylhKSJajUN3cRj/4ocKrGg== X-Received: by 2002:a17:907:7f29:b0:b76:da45:e3d6 with SMTP id a640c23a62f3a-b7d2361d3b5mr1127857966b.16.1765808256517; Mon, 15 Dec 2025 06:17:36 -0800 (PST) Received: from localhost (ip-046-005-122-062.um12.pools.vodafone-ip.de. [46.5.122.62]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-b7cfa2eb9c6sm1427881866b.20.2025.12.15.06.17.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Dec 2025 06:17:36 -0800 (PST) From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Jens Wiklander Cc: Sumit Garg , op-tee@lists.trustedfirmware.org, linux-kernel@vger.kernel.org, Sumit Garg Subject: [PATCH v2 01/17] tee: Add some helpers to reduce boilerplate for tee client drivers Date: Mon, 15 Dec 2025 15:16:31 +0100 Message-ID: <563931b951a69d579fa9a00134b09354c346789e.1765791463.git.u.kleine-koenig@baylibre.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Developer-Signature: v=1; a=openpgp-sha256; l=2024; i=u.kleine-koenig@baylibre.com; h=from:subject:message-id; bh=xC2ltYeeueP5vlvmDoWPRSRk09PJusQKgFR+Yv8ms48=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBpQBhOzSbait71TPEiQwqVv/v5kQMZpHFWXZ8Ps k02jYgJGruJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCaUAYTgAKCRCPgPtYfRL+ TuA/B/91zsgbTlCB7AYsgezO8lNhWEqaKK+g6H4HGG/FHRWFJvHBuk4oEa++o0ppXtSFIhcrpLu X+oc2qjhsVTOj4eut2/IV2ryLVx+oYslFdhfwC6OgNY/46OzseFbHS6Hwxd/+X8SaB3y79Bq0mX jrK7V9egowQMft8t3TAN3lnrFq089sC3DSXFQto1+CNaw/RS3FXJ4MgVNUNY3jhu9ahxkB823Xh m7fplwCrqnwJ4UZi/5ZOUYQBLxxlhiHWvwycF3PEBZSn4F3oIfaDQumyGnbxf88klKXlhxl74c6 jkO8jPGoTfvRCKtX6KfA5rR5RiOU7uLq4JKcZt9CFKOhnMn4 X-Developer-Key: i=u.kleine-koenig@baylibre.com; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: quoted-printable 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 Signed-off-by: Uwe Kleine-K=C3=B6nig --- drivers/tee/tee_core.c | 16 ++++++++++++++++ include/linux/tee_drv.h | 9 +++++++++ 2 files changed, 25 insertions(+) diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c index d65d47cc154e..51379f7fc5d5 100644 --- a/drivers/tee/tee_core.c +++ b/drivers/tee/tee_core.c @@ -1405,6 +1405,22 @@ const struct bus_type tee_bus_type =3D { }; EXPORT_SYMBOL_GPL(tee_bus_type); =20 +int __tee_client_driver_register(struct tee_client_driver *tee_driver, + struct module *owner) +{ + tee_driver->driver.owner =3D owner; + tee_driver->driver.bus =3D &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; diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h index 88a6f9697c89..850c03b2cdea 100644 --- a/include/linux/tee_drv.h +++ b/include/linux/tee_drv.h @@ -322,4 +322,13 @@ struct tee_client_driver { #define to_tee_client_driver(d) \ container_of_const(d, struct tee_client_driver, driver) =20 +#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*/ --=20 2.47.3