From patchwork Tue Feb 11 17:27:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970417 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C1194C021A4 for ; Tue, 11 Feb 2025 17:43:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=XRpmne0VBcJf7jZbKVrpAIB9gKqtJmCGDdvQHW0V2jE=; b=FQy2F9ul/sOl5ljPnUokmiMjhH /QQ7WKLwCx20mC0LcDy1Tfq9V9NRqX25sNVKou/W1PrSGqFmqV+ourx9a7HnnMEqYSh1Pj2Gy9clY pzWk9FRQtn6wYxb5fejK7/RKog2sAuGsMD3mrWaxwnT5SKFOOjo0ONd1Nsgu7N1wh2TDfAtWIjoLI iaF1MwZuj29AyC66R4T0WDsM70Ai4JoYrwumCbPtYFxIJ/gh/JMRk9RNwv1z8Rny9YtejgR7Y+422 eKutLuMFbyieHGV8mp7YVKn/iWMwVktOTBFXf9rNYnLq3hu2GzcbYX474j21haSi/skNc0SK7tRLm tEgV/YHw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHa-00000004iGv-1Zzz; Tue, 11 Feb 2025 17:42:50 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3h-00000004fvB-1Hu9 for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:30 +0000 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-38dc5b8ed86so2581160f8f.1 for ; Tue, 11 Feb 2025 09:28:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294907; x=1739899707; darn=lists.infradead.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=XRpmne0VBcJf7jZbKVrpAIB9gKqtJmCGDdvQHW0V2jE=; b=1y++KU2NkQaKLpDyz2gNYp5cL48Ar1k7CKk3NhzfVfjDJ5isTxzfVAONJq3wsFOZDn iZthoOys1geYFN63xVNffAF0MbZgKCFMJ8vP+VPKo3G3IIeZWA6qZTrjn/SNN0oxOc/T pgjSbL0miPF07fEDa+yCY6YDGviFfcaxthU0sB8NyZZv/WAXo70l3Qg6VHLqCp2jFW2E hr0PJ4r5ViiuX+uPINH3mDyRFn/6QXgkPmkp3R7r4u5aLtPwsXqROR+gIQaAVzZnuoRG k/Gmfw3ikpl/S3W4rsaImN6oJwOnX5V1SRq40cW8A8puvR4sb8tQ9DDtRLi3LhjhbDqb k+ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294907; x=1739899707; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XRpmne0VBcJf7jZbKVrpAIB9gKqtJmCGDdvQHW0V2jE=; b=U+KpYU/V7foXDu5WSR80oVKAjDf2tQ17KO1AK5cxNTIyVdB9cPw9wiFeHNUTBnQf5j 6JbUNJ9It7AYPQwdVjLcUNw6bMBsw1G49gSsQVxbxuoLeqrgNigdiEAGORAPw44KC3tt b6zl8nHefnVHjWjEbFFLtyE5Hh5tS6trSARI/eWUGMinQM/9/HLX1XpNekHHJhsKvN2t IG5sn1u5DKZTm0xIZIh8Fi976JDPV5UNcvhd0bUzw9qvyLrLE5FUJiaCoYAY/JRykWKE C40hHYG07wQmiV0d4ufWyE95X4s9TpdDvSkp7+LV27k42GIgdn8Q72j5sOK+FYrpT2RJ hccQ== X-Forwarded-Encrypted: i=1; AJvYcCVWJtPpUwLKXWKAOAD117d1bVM02VQqnKsHaWopmw/Ol4+vNpiFu9TAS2+oEc9JoJjbI8qZOz41OSga+lcyq1Og@lists.infradead.org X-Gm-Message-State: AOJu0YxwRN0ep/I5ggUeEU6jIoUdQmqK/2rhYlF7sgvNPvU1A/zz1qML O9FIB5kNFxHlwQi3jSc6GJPp99n8XoHWc1DyqQX1uXTrgokCKyqAXZGQTGHqo1o= X-Gm-Gg: ASbGncv1LN/A9BDg52JLq1dCZ0ISwrFn2ePraCAbrqxSIpwPu6E/+VwiF8smMhmuTtl Fxlj+VRiz12eGWXQZ0mg2mzAOLNVemm5B773Ubo6WQ27WPioqDQrMV4F8C7ZfHkhfH3oOuNwCwR NWwtpdiaVzfmMqtq5v6gMNKhM39TfBGPzVx9BBm9N20WivCn5IeNl+SFWB3qKOwGReNjibgnteE Qgq0jSI7sVIEbqT0X5gc1m9M9xlD+VY6GQ7Gm0BRV85i9J55B5Le7TYZ0m5EDXKmAbi6tZmfJKF CHP+4yfawJnL3hGwng== X-Google-Smtp-Source: AGHT+IGy2T23PgwDmJGcN14Q/mCFh4UYzD0ptO9o4GXW666CumGfNzzI0RhLancAMnBStTnS1c8Jkg== X-Received: by 2002:a05:6000:1f82:b0:38d:e1b1:be99 with SMTP id ffacd0b85a97d-38de4193da8mr3997996f8f.23.1739294907528; Tue, 11 Feb 2025 09:28:27 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:26 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 1/7] driver core: auxiliary bus: add device creation helpers Date: Tue, 11 Feb 2025 18:27:58 +0100 Message-ID: <20250211-aux-device-create-helper-v3-1-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4290; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=L2mc7++2m+KbwXPJfmeanEsMndjpINIhEyR+p/vnM+0=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g2Jb64zhGo4nYo4f11I5GNQZEAzlSZ9Yo5d ngkcisRo/6JAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uINgAKCRDm/A8cN/La hf93D/9ySJRRpTfhwXJWNiKfMhcJCrBwzYVVixaTTNiJUGMkApqchMSmB0zNWhrawPaDlId3Qiv auxx3nD/C8QUQGOe3pmyimoKTtJX68sya3tWzYS13H4Sa0H9qFl2RM0zYZ2KeIfFaB5bXjAyZbp 8AafPJDeusV3rANuFGpxeUk8OJf2I26NERiAMf4JIeYfEk+DdUX/qaaekow/K+zX0friJeeHzfS n3nNP0mPksNRZ70HmTScJgvfPOEIO1hH8exi8I+Ge5RadGPr4ZAvrdduyqDrUcI+eC7Vw/vJkNh sW2YMStxssdA3V4ydPTzpH9vn+vlpXW1isL2h2lNUHHsZ6qQneIycJfGJCCYP1GDRky2C6AtPib l71wFmbfhXQPTnOmW1byyhQNUf2DG0Kse6unCPxWmU2O+bBwnBvUp3XtMEU/LOPI0MGCpZctNwz teda+aTYeFlWq/IRpLHb256e0QTj8OwBd64Y8+cWTJlY3OJswpzqv3zklJ0nKa5VDXQDUjv8dE/ 3Z3LHSVu21jO5GhGjKjzeZeJVnbohnbeTurbB9m0HLLQkVNy1b6qdMD98Y9uIm1F0V6fv5ak8Ji vqYRsnbb3UUjcLUi7RMxyNaRwF7lp8opYquywNB5WMkoWzbD21tWKnQOr6ID3hMTihGNxCRzIyH O4UjCmzh9bo+k5A== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_092829_346299_5A1C8337 X-CRM114-Status: GOOD ( 18.01 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add helper functions to create a device on the auxiliary bus. This is meant for fairly simple usage of the auxiliary bus, to avoid having the same code repeated in the different drivers. Suggested-by: Stephen Boyd Cc: Arnd Bergmann Signed-off-by: Jerome Brunet --- drivers/base/auxiliary.c | 88 +++++++++++++++++++++++++++++++++++++++++++ include/linux/auxiliary_bus.h | 10 +++++ 2 files changed, 98 insertions(+) diff --git a/drivers/base/auxiliary.c b/drivers/base/auxiliary.c index afa4df4c5a3f371b91d8dd8c4325495d32ad1291..0f697c9c243dc9a50498a52362806db594345faf 100644 --- a/drivers/base/auxiliary.c +++ b/drivers/base/auxiliary.c @@ -385,6 +385,94 @@ void auxiliary_driver_unregister(struct auxiliary_driver *auxdrv) } EXPORT_SYMBOL_GPL(auxiliary_driver_unregister); +static void auxiliary_device_release(struct device *dev) +{ + struct auxiliary_device *auxdev = to_auxiliary_dev(dev); + + kfree(auxdev); +} + +static struct auxiliary_device *auxiliary_device_create(struct device *dev, + const char *modname, + const char *devname, + void *platform_data, + int id) +{ + struct auxiliary_device *auxdev; + int ret; + + auxdev = kzalloc(sizeof(*auxdev), GFP_KERNEL); + if (!auxdev) + return ERR_PTR(-ENOMEM); + + auxdev->id = id; + auxdev->name = devname; + auxdev->dev.parent = dev; + auxdev->dev.platform_data = platform_data; + auxdev->dev.release = auxiliary_device_release; + device_set_of_node_from_dev(&auxdev->dev, dev); + + ret = auxiliary_device_init(auxdev); + if (ret) { + kfree(auxdev); + return ERR_PTR(ret); + } + + ret = __auxiliary_device_add(auxdev, modname); + if (ret) { + /* + * NOTE: It may look odd but auxdev should not be freed + * here. auxiliary_device_uninit() calls device_put() + * which call the device release function, freeing auxdev. + */ + auxiliary_device_uninit(auxdev); + return ERR_PTR(ret); + } + + return auxdev; +} + +static void auxiliary_device_destroy(void *_auxdev) +{ + struct auxiliary_device *auxdev = _auxdev; + + auxiliary_device_delete(auxdev); + auxiliary_device_uninit(auxdev); +} + +/** + * __devm_auxiliary_device_create - create a device on the auxiliary bus + * @dev: parent device + * @modname: module name used to create the auxiliary driver name. + * @devname: auxiliary bus device name + * @platform_data: auxiliary bus device platform data + * @id: auxiliary bus device id + * + * Device managed helper to create an auxiliary bus device. + * The device create matches driver 'modname.devname' on the auxiliary bus. + */ +struct auxiliary_device *__devm_auxiliary_device_create(struct device *dev, + const char *modname, + const char *devname, + void *platform_data, + int id) +{ + struct auxiliary_device *auxdev; + int ret; + + auxdev = auxiliary_device_create(dev, modname, devname, platform_data, id); + if (IS_ERR(auxdev)) + return auxdev; + + ret = devm_add_action_or_reset(dev, auxiliary_device_destroy, + auxdev); + if (ret) + return ERR_PTR(ret); + + return auxdev; +} +EXPORT_SYMBOL_GPL(__devm_auxiliary_device_create); + void __init auxiliary_bus_init(void) { WARN_ON(bus_register(&auxiliary_bus_type)); diff --git a/include/linux/auxiliary_bus.h b/include/linux/auxiliary_bus.h index 65dd7f15437474468acf0e28f6932a7ff2cfff2c..c098568eeed2a518b055afbf1f1e68623a2c109a 100644 --- a/include/linux/auxiliary_bus.h +++ b/include/linux/auxiliary_bus.h @@ -254,6 +254,16 @@ int __auxiliary_driver_register(struct auxiliary_driver *auxdrv, struct module * void auxiliary_driver_unregister(struct auxiliary_driver *auxdrv); +struct auxiliary_device *__devm_auxiliary_device_create(struct device *dev, + const char *modname, + const char *devname, + void *platform_data, + int id); + +#define devm_auxiliary_device_create(dev, devname, platform_data, id) \ + __devm_auxiliary_device_create(dev, KBUILD_MODNAME, devname, \ + platform_data, id) + /** * module_auxiliary_driver() - Helper macro for registering an auxiliary driver * @__auxiliary_driver: auxiliary driver struct From patchwork Tue Feb 11 17:27:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970413 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F74DC0219B for ; Tue, 11 Feb 2025 17:43:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vS3u0ChTSEKOd8+Sz6F6ngUlw65dB3dACQW1SqE48AI=; b=jJJMKU7iqaK4xHi3xr4HRUt0DJ NpzQVSYIv7BvKivTcXQhOv0y0dtuOaLj0Mjl1NevlRsCE5qrNHQlaFMzrvwgzn8BxzlHDvR+DZCR+ 83G8bqdzPyIShz/AJD7D7JcsRvKJq0f+Aqhp5urWpk5UBtTHmVAvlVcsZcXqbX9BCSkZN9oD5mXyn /dUXh2Hs5SZsi31lDL5+UkGX0+7r7WdO/LPQRx59yeg/xVSHG5iApbV/0K5VS8QA3zpEK/evpkLc1 dw4zR5NlwCgtUwInbEIq2NVV8FVC03D2UL5m19EFpQOjy1CQhhT1E0B9gOjcNRP7vBp+Yjo560EnZ R1sZiYEQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHb-00000004iH8-16o6; Tue, 11 Feb 2025 17:42:51 +0000 Received: from mail-wr1-f49.google.com ([209.85.221.49]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3j-00000004fx3-2kmB for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:32 +0000 Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-38a8b17d7a7so3055047f8f.2 for ; Tue, 11 Feb 2025 09:28:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294910; x=1739899710; darn=lists.infradead.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=vS3u0ChTSEKOd8+Sz6F6ngUlw65dB3dACQW1SqE48AI=; b=Vf6708KxMBuOYhp4MzlCvuFAAvfmx6Hl1lyakOEneefJf81zUM69HxoQDyEkqrdokY hC9upITaqcN5gRM7+mFYyYbqLrmtFoc0A74Xn4gELiTVIOdmi9V0pwEBZT4PrKAMBdUv c0E2kRh6bbRf8Q4dH6zlWv7XYjELx+eEQc3CS1yKvkZJgC7CpuOdsupw4bX3XoSlmrDC gWqwFlv212qe5JQeLH9HM98XglcaYKoAHiZlfcV3roK1H/b1mVZfqelQ5KzoD+Na2JZA kG5KpZphiWHA3Ayd22fdE4cdvVd+veHgMF+D9GsYD9+paqmZ9I+O/pS7SuyYvYjLxYAv RtRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294910; x=1739899710; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vS3u0ChTSEKOd8+Sz6F6ngUlw65dB3dACQW1SqE48AI=; b=Q16pke0jiAMVLtkKK22FcSCCKTMpDCCb+a2QZdVTRBWCM1L3bE80bIZvvLY4m0XI/X Ngjk9ErsPqul0Pran+1yogprgQjOOkpMi4NIRvz7b1S6FvuVOhD0dyt4VEEykLpM3GJv lLskB+dcw3LUGUaglXbXEpDobU7q7dPsjzy9Srfl6XPREasLh7pbiB1HMDTdhGLYEQVI 57S87leyoD+v1U6uoOLHdJZhJB8CzhrwnRQUyvJyFPMtfwa23WbFyli7eEQK9b797sSp Wqj1jRlJcqSAA0/7H1LAFharhnii6sjsUlm2B1USGm6BLM2rtbdf3jFgXH5odSjF2tf9 mIRQ== X-Forwarded-Encrypted: i=1; AJvYcCXhX5rBhza2VImw6QsvsRXQtgxpjocjeagDrFxU3k44zZ6fqvfrUi9/+hExyKgBPcwOR5pmlFJjxpWb5/WS4MOo@lists.infradead.org X-Gm-Message-State: AOJu0Yw8rlu8BAzQ/eODIA/zLPdttJAiaZpK/7L0jzADPIUduFeF/NDh Ev6bufVkDKexOH0o+Fm/3jrmuXLtBturcJ4mWI0H0mOv/MNIP/AwK8WgSg7WxHE= X-Gm-Gg: ASbGnctosggcnM67I4aBbvB9/DUr+psnp3/vjNuPX9p+B9HCcsDbVAVN4XozjvTp4Qs e5+WpNJKpd72hiAa3sDrlNLmHxqBHbqk8ShEw0GibEeuALCSWGxO+juac8a5g0tW7dlYDSHHFTG Oie82DzQ94SybX2U+aAhS8ij+0Cb1f4sp+g3PXl9nRcz6J3bH9PL2/91cqYhwItP3v0MQnKChYl 5S0GyVfMJxE67mzjMJ0b822LRlgigowni366iUOVhsJRv0K21QrVFs0rf9dqdLiaK3GDU01LQBG +ia3+vPviIwEhGDgFQ== X-Google-Smtp-Source: AGHT+IHqQL8DP1JxgbD5VCseSPJliBuud4+TKe0/7TKQBN2dXAAu4cWiVWufhhODSvakeasxOn/B7w== X-Received: by 2002:a5d:6c66:0:b0:38a:418e:1177 with SMTP id ffacd0b85a97d-38dc8d9202dmr13638587f8f.11.1739294909768; Tue, 11 Feb 2025 09:28:29 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:29 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 2/7] reset: mpfs: use the auxiliary device creation helper Date: Tue, 11 Feb 2025 18:27:59 +0100 Message-ID: <20250211-aux-device-create-helper-v3-2-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2220; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=JaT81TlS5JMrK8kOZ5IZdpgPZCU4QD/jFNP5Hu5Ari0=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g2b7ztdhzPOxtPtSHwTFX2Q+o4rv+DEa9t5 h6A3WVIiOaJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uINgAKCRDm/A8cN/La hfOYD/99mpDDUk+53d/ZanCMbwJ18FpyC1UiheDU5tolp1TjYQ6xJZCD+FUPxTFT7MftJJcmhYU ppgXsxWu0vXkLiqwtls3vqypBiQP+/Br9Qd5XQWkcZy/dc3ZG2zA3FYPdrfq+GhBMRIkGuLuHTL o7EuhQ8gx6YcEgqWCA6gSH/AN/YL2kOG6F+B5JEBMrI37awyyaz1Rygwhyl0qItpoUOWJamW9JV wIpocIeEtV+MlTG1Kbg1WF84EI6JwAjfM5JOZjn65GDvReg9Ar7nhjkfw9C+PcnPZH0HZyY/RsO 2nb7YpQYtDrCuTOtHOVSR7fA8CD/QL0C/aSz1PBFOUFaQHD5znSEvuNqIZ9MPROPDFGwWQTygho 2baf6O6czt8zk+qqtahPDzlgKfvfXO6FmH4Hb1xyCFSAyBR2DoZV+W2xJP1brfagyAH+hw0+twD 635z1DYFdgPAGxz2iXJxZK24JpVoR9CrB33x3a2TEwdc/KaNUt7ax6Lt2f81O587Z+7O8L6/JP4 XoAxgdGRTcmsl4S9zAEnByChdEI4wOcGAX/bdK2ZG0vy8N1L3IoKJnpRT+bFUN4v+dlR2ppl9wt u0Jd4hipB0voUxKyhN6Eu4LjGycuGC96lmkrjExZld1DdDEdciaO1sLFUKFZ592SZ9dz1emyXb5 8Aak+H6IrmLmDhg== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_092831_699880_13F538F0 X-CRM114-Status: GOOD ( 13.68 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The auxiliary device creation of this driver is simple enough to use the available auxiliary device creation helper. Use it and remove some boilerplate code. Signed-off-by: Jerome Brunet Acked-by: Conor Dooley --- drivers/reset/reset-mpfs.c | 52 +++------------------------------------------- 1 file changed, 3 insertions(+), 49 deletions(-) diff --git a/drivers/reset/reset-mpfs.c b/drivers/reset/reset-mpfs.c index 574e59db83a4fcf30b60cb5f638607a2ec7b0580..bbea64862181877eb7ae51fdaa9e50ffac17c908 100644 --- a/drivers/reset/reset-mpfs.c +++ b/drivers/reset/reset-mpfs.c @@ -155,62 +155,16 @@ static int mpfs_reset_probe(struct auxiliary_device *adev, return devm_reset_controller_register(dev, rcdev); } -static void mpfs_reset_unregister_adev(void *_adev) -{ - struct auxiliary_device *adev = _adev; - - auxiliary_device_delete(adev); - auxiliary_device_uninit(adev); -} - -static void mpfs_reset_adev_release(struct device *dev) -{ - struct auxiliary_device *adev = to_auxiliary_dev(dev); - - kfree(adev); -} - -static struct auxiliary_device *mpfs_reset_adev_alloc(struct device *clk_dev) -{ - struct auxiliary_device *adev; - int ret; - - adev = kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return ERR_PTR(-ENOMEM); - - adev->name = "reset-mpfs"; - adev->dev.parent = clk_dev; - adev->dev.release = mpfs_reset_adev_release; - adev->id = 666u; - - ret = auxiliary_device_init(adev); - if (ret) { - kfree(adev); - return ERR_PTR(ret); - } - - return adev; -} - int mpfs_reset_controller_register(struct device *clk_dev, void __iomem *base) { struct auxiliary_device *adev; - int ret; - adev = mpfs_reset_adev_alloc(clk_dev); + adev = devm_auxiliary_device_create(clk_dev, "reset-mpfs", + (__force void *)base, 666u); if (IS_ERR(adev)) return PTR_ERR(adev); - ret = auxiliary_device_add(adev); - if (ret) { - auxiliary_device_uninit(adev); - return ret; - } - - adev->dev.platform_data = (__force void *)base; - - return devm_add_action_or_reset(clk_dev, mpfs_reset_unregister_adev, adev); + return 0; } EXPORT_SYMBOL_NS_GPL(mpfs_reset_controller_register, "MCHP_CLK_MPFS"); From patchwork Tue Feb 11 17:28:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970412 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AEF6FC021A7 for ; Tue, 11 Feb 2025 17:43:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=O2biH2pTKEoyD3yCVVt7sf7r+6yC9eORZimpeabOUGQ=; b=q2FO2WLGz9ow6WxilDggvz4DJc wSM9nVYbFKAs233J7xXYz0aHimzJ5v4j2kgYGUyH/u2RHSW9G8I93zkmSP8oDb36KBnR2Ttozm+JZ /xR61yM0Yq3dgFDu1f/xmRXcMTQv5Nktg3+goqkZm83LyDH03AwVK6fI8x+ZPKDq8r/oe7GSavDPl qczZ6Ke8o+CUblSQpC5lwHLMBTCXqwJa5fg6vSMWyGsBFfl9ll9IOW144B1mynBO0+1tzgk7WrEgw nsXbCwAATyQvzmFxeJvs5j2Jwxb7N1ZYZnlDpPg2JXbeHX3La6WENjKbGlVhe0KNrtYFRN6V+TX4+ la/zsR5g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHb-00000004iHM-3ZyH; Tue, 11 Feb 2025 17:42:51 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3l-00000004fzy-3ri5 for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:35 +0000 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-38dc9eba8a1so3722664f8f.1 for ; Tue, 11 Feb 2025 09:28:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294912; x=1739899712; darn=lists.infradead.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=O2biH2pTKEoyD3yCVVt7sf7r+6yC9eORZimpeabOUGQ=; b=wmfNEeu613nVUguogghTfBjsEKMWvNt3hKwHcEc2gJsriYa4ZWy+uI8hN83/NdWiQa lk9L2OB/OCssRUiTqHxKfZOLFUbejzQb5J6oxowfkj9B48tRHswSqRFE0vM1O3NrY4Dn a6ZTaFiM8g0NaVVMed6O+eu1LRv9fFxqIzj42vhxpappW9r5OlCQ4iE6QyHCVon5Yoaj zLE6wV/bvuWEh+hXZkyotgZ/gZaC9VOEpwCDJDYeYvxoAme447pUL8Muco34gY5dX8Si R0ztwU5lA6FCDElOHCVfVkDKlCL6N8A/RY5Y6X6i9uXWpJC0OeTKmUCHHMHBtt6zqO8V XC6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294912; x=1739899712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O2biH2pTKEoyD3yCVVt7sf7r+6yC9eORZimpeabOUGQ=; b=PWKwfTvS5hYmT4S/wbKtbbCtveMUdo+1rW6CcMJ5BXqSaMCoKQQWr10MuNxAPUY9eG 2+JnMIuvKxNJZ65OHW+mPjO2wR1HuHAD9QmTIC1b6k2yqr9+W/hmf5wAeuNw1qjTGV9x zsg76o31zoR/bdgqKJFfWHyAIKNO8ih9dFURgvb6jXNC0tOCAuzZbA38Lu0SkANJVD37 m8hLBzn2uvJM+QWMBncjz1r1lHUMRX1FX9+1bOVl8yF2v+z3eyc2HzvEWi9yPbzXeCme bTYBIykzOXHda3jdFc7An3hi3ztla2+BuSnfus8VYM7mjgiUxR1MBPnYW2KBix/j9wK0 5Psw== X-Forwarded-Encrypted: i=1; AJvYcCWgnTsZXYUsKnN6N3mrTkFkVkb8SL22bDTK39zqEFBPBl+6Y3JeIBPOKggI2tMfJhbcHPA7iZX12Ochqu6d2Kmk@lists.infradead.org X-Gm-Message-State: AOJu0YyLoaxFGYz/Yyl8sJiBfN3mRrk3N5JMblBydLconIsnWg2DKZxj T0IL312wfehrvmRyXaMD/ha5zS813E75S2yhSLv6oGTuwWFxhKOprdwcAcYH7u4= X-Gm-Gg: ASbGncuiX72e7qCQt+Ce16JFkxzHv0dwpc6btUpg60fvSp2g5IuMgFVDKuhuwkpxI7a GWrWNsiiKAPpne2jZe2Dg4S5rVXrX1K4VjmKqx+mfx2l6dvQb2n/o/5KnIXnT84RHmKxlPnUnCQ i+AxvwALOiUNPFHyXDakdogJLqFOn+7tTdACj9Y6aVGI5vlyKYf3PcukO19IJeSWU8XgnB+x6UK hqhZnvWXCBn5b7cgffwYSKiBZiJPywc/++DCYbKbNDSKhNtEQRFP8RWY2ud8D+hCMBV0D9+O/WU rjHbrQT3XM5MmTh6yA== X-Google-Smtp-Source: AGHT+IE/lWpaI6pWVO8Sv+YQSGH06MG0caNle2AbW37wTjANlrKJ9s7lqNySg7B+IZ8uIOLB+l1Tjw== X-Received: by 2002:a5d:47aa:0:b0:38d:d69e:1314 with SMTP id ffacd0b85a97d-38dd69e1ba1mr9007347f8f.9.1739294912415; Tue, 11 Feb 2025 09:28:32 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:31 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 3/7] drm/bridge: ti-sn65dsi86: use the auxiliary device creation helper Date: Tue, 11 Feb 2025 18:28:00 +0100 Message-ID: <20250211-aux-device-create-helper-v3-3-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4038; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=4I/YUW3hUfV7LW4vqIimfK2wLippJhEosTDRns8e2Tk=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g3KBrsjz/YbGJrLq2rlkWwu0SsOmQVpTCXu VtviTS8naaJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uINwAKCRDm/A8cN/La hV5wD/9CJGF/RCRwHbIbJXrKSWU73Zd91U9+X8P+nRRrN2lbOiILtbHRZF2AXs7l2tOiLDUVf4G hypCmzHSVFVgMR06Q7kXrEbTRx0O2Ul1Q07H0IFD4k0xt58ug/V7ezrJ8lMEcM/FcwImcVkoYJ8 lwmjvrONgcgoZBExdOnJlv1UD+Dddr4Wi+sWDLmDALlFjbDYuQrfZjHc4L2zc9ve8rHjnU0pC6f YMm6EjEhHMcFgsbKge/+kkfDcTqsuk4jfLytI2sF2jHT2cwesgQfceYXMsqKePtNCuHTv8Tpp1b 5nWhj/l8S+yLfIAiVNy2nxba00yx5R4v4NoCPZCX05JCtquBC2WB4CNUzhQYHyHMMQ+ePGN7JKm NVtRFVPUx9oJOjGRhqWRi88hiSwNg4QPj+OFtWuOs7D51J/yTJdD5XMgYgADimBsSrLGtGB/1r/ IorMXfmpkm0xw+RREwA4WKwLMT/KLgfShgDVdmOk4Kbnh4GrUvX/Rspym/xjVfg9es+PgegGjWK rCix4SNzCGiSAgOwWvJGJDOCAjzpvnzAHYXnvgCoFs75RSMC9B2KvyOk+IQ1l+9g5tLRkthUfJX P2X8n0M0gtdsistRrOtkv7GakcFOKAF6ZmIzmj/mW2xQRBXpnMf+sa95bdok5/LFdpbKMw5knAN dqVQqlnz7A0W1ig== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_092833_982436_505C3D6F X-CRM114-Status: GOOD ( 17.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The auxiliary device creation of this driver is simple enough to use the available auxiliary device creation helper. Use it and remove some boilerplate code. Signed-off-by: Jerome Brunet --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 84 +++++++++-------------------------- 1 file changed, 20 insertions(+), 64 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index e4d9006b59f1b975cf63e26b221e985206caf867..e583b8ba1fd4f27d98e03d4382e0417bbd50436f 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -454,62 +454,6 @@ static void ti_sn65dsi86_debugfs_init(struct ti_sn65dsi86 *pdata) debugfs_create_file("status", 0600, debugfs, pdata, &status_fops); } -/* ----------------------------------------------------------------------------- - * Auxiliary Devices (*not* AUX) - */ - -static void ti_sn65dsi86_uninit_aux(void *data) -{ - auxiliary_device_uninit(data); -} - -static void ti_sn65dsi86_delete_aux(void *data) -{ - auxiliary_device_delete(data); -} - -static void ti_sn65dsi86_aux_device_release(struct device *dev) -{ - struct auxiliary_device *aux = container_of(dev, struct auxiliary_device, dev); - - kfree(aux); -} - -static int ti_sn65dsi86_add_aux_device(struct ti_sn65dsi86 *pdata, - struct auxiliary_device **aux_out, - const char *name) -{ - struct device *dev = pdata->dev; - struct auxiliary_device *aux; - int ret; - - aux = kzalloc(sizeof(*aux), GFP_KERNEL); - if (!aux) - return -ENOMEM; - - aux->name = name; - aux->dev.parent = dev; - aux->dev.release = ti_sn65dsi86_aux_device_release; - device_set_of_node_from_dev(&aux->dev, dev); - ret = auxiliary_device_init(aux); - if (ret) { - kfree(aux); - return ret; - } - ret = devm_add_action_or_reset(dev, ti_sn65dsi86_uninit_aux, aux); - if (ret) - return ret; - - ret = auxiliary_device_add(aux); - if (ret) - return ret; - ret = devm_add_action_or_reset(dev, ti_sn65dsi86_delete_aux, aux); - if (!ret) - *aux_out = aux; - - return ret; -} - /* ----------------------------------------------------------------------------- * AUX Adapter */ @@ -671,7 +615,12 @@ static int ti_sn_aux_probe(struct auxiliary_device *adev, * The eDP to MIPI bridge parts don't work until the AUX channel is * setup so we don't add it in the main driver probe, we add it now. */ - return ti_sn65dsi86_add_aux_device(pdata, &pdata->bridge_aux, "bridge"); + pdata->bridge_aux = devm_auxiliary_device_create(pdata->dev, "bridge", + NULL, 0); + if (IS_ERR(pdata->bridge_aux)) + return PTR_ERR(pdata->bridge_aux); + + return 0; } static const struct auxiliary_device_id ti_sn_aux_id_table[] = { @@ -1950,15 +1899,17 @@ static int ti_sn65dsi86_probe(struct i2c_client *client) */ if (IS_ENABLED(CONFIG_OF_GPIO)) { - ret = ti_sn65dsi86_add_aux_device(pdata, &pdata->gpio_aux, "gpio"); - if (ret) - return ret; + pdata->gpio_aux = devm_auxiliary_device_create(pdata->dev, "gpio", + NULL, 0); + if (IS_ERR(pdata->gpio_aux)) + return PTR_ERR(pdata->gpio_aux); } if (IS_ENABLED(CONFIG_PWM)) { - ret = ti_sn65dsi86_add_aux_device(pdata, &pdata->pwm_aux, "pwm"); - if (ret) - return ret; + pdata->pwm_aux = devm_auxiliary_device_create(pdata->dev, "pwm", + NULL, 0); + if (IS_ERR(pdata->pwm_aux)) + return PTR_ERR(pdata->pwm_aux); } /* @@ -1967,7 +1918,12 @@ static int ti_sn65dsi86_probe(struct i2c_client *client) * AUX channel is there and this is a very simple solution to the * dependency problem. */ - return ti_sn65dsi86_add_aux_device(pdata, &pdata->aux_aux, "aux"); + pdata->aux_aux = devm_auxiliary_device_create(pdata->dev, "aux", + NULL, 0); + if (IS_ERR(pdata->aux_aux)) + return PTR_ERR(pdata->aux_aux); + + return 0; } static const struct i2c_device_id ti_sn65dsi86_id[] = { From patchwork Tue Feb 11 17:28:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970414 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 65701C021A1 for ; Tue, 11 Feb 2025 17:43:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gDYe4zVCJHl1J7zmO8YwQPUsImFhukXxkzdj3E5Ja/8=; b=BLUE408SRUeBJxguuWh6olaj05 gRZssvQSBfFZ9I5TNCHdrK7QBGvNdzUCwwai/cC7y/j+yiB/KXss9+z6oLVEe4zLWAvrXlgWF7suL wWdRY0dSSHD+tcxTSYrgPtJDiB5/R86UzSZWz8thDdvyyA5eeTnIkPd/9se1cqxgJwrEwRNTwx75o qkc/MfwfhHjCLfNYDsQ9GEtW3HgWe9eZhx8gkmKTZQqPBjmrSTy4xqyQ9PdoPAenvClTjqCyeKPMr DKEp7CRFvGKYjVX4PQDSHE5MmeXMnslzHIgHyvupctLo3pbctcLwJzev+EgrSicYkiVtlDtj/CcHe 4d79JW1A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHe-00000004iK1-0pod; Tue, 11 Feb 2025 17:42:54 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3n-00000004g1P-3o5R for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:37 +0000 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-38dcb7122c1so3788768f8f.2 for ; Tue, 11 Feb 2025 09:28:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294914; x=1739899714; darn=lists.infradead.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=gDYe4zVCJHl1J7zmO8YwQPUsImFhukXxkzdj3E5Ja/8=; b=pH4t7sq4Y0TeOoc8wSeymrHIvLWRkUXSjdvDRlUWydnvJ1IFJaVVP3/mNsdg66BCrp 3SicsHB8O4NqsOhZjf9E4xIEhbsM+Cx7w0Cy1RQGIw0LxZXOuZS/3hg/crWoT1/rEaci 5+TR7dTQgCaM/DmMneGkVRutUKldGubeAKrLSiSHNI8tDGXqSSVYRhF4KzFP798lQV3L 4IHQJfKIJVGhqZ5eo3uW9lCuNaJks3/qZpN7Wd3q/7zGDxk4a+rxE4H+FdbDEctHM/xg JuDXd9J42dxyeszymfVQc5kqdjdiLoclQmq7F8Jb3LZZfYzFro2NQ/3LgmSL2GcyC1li tbgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294914; x=1739899714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gDYe4zVCJHl1J7zmO8YwQPUsImFhukXxkzdj3E5Ja/8=; b=uCMlgfInszAD+E7fkV+2RQGq9Jvue5N9tRxIYA15ItJzOFjFzX0hiUsPaWoQlsuVEe xgv38WbQM7qWsr5UdUMsCQPFEBjEB3a3FQUZtDYbXGM7vmnVaZ6Ctv3fqU/OBIPY21s9 EMR7IHfPhybeQikwLxfnuFtJPA5ctzeTlgxauZ0hgFQOFpPWWHyq3FKemtusJxEVFS9X cM98AZ5KYf1eNSA4U958VmlJVP5KwAg5WNmlZyeeZe2Kqt3E6DnDKs+Bp/lmxycW+FU2 WBbk+Ykn4VCy0aicQTtUmMIp+IaNb+3PnPaOM4oqMjYgVXCWQ0QwaOfulxp6SsPjxgRl XpnA== X-Forwarded-Encrypted: i=1; AJvYcCXqnQLj+n94LOGcgeQEt2AJPMnbAFVDi4r9CumDcocwXdKF95OXvz1LYaZmHa3tcA11+Sq4mKEGOP4ThIDx22pi@lists.infradead.org X-Gm-Message-State: AOJu0YzzYgu20SQ9mvsz12WpBTJq/G127vmHPDnp8J5NtJDTtg9Ix6qA itpMMJYCiKQeBxqQzeiTbsjELEpnF4dkTWpO5DxxBduuumzOfGCsuJ3qANfMA5A= X-Gm-Gg: ASbGncu37qECy5TLzpfHpIqUsIc8nbpRCQOgPe+E0x1sdS3AVk9imO5/gkepfyc1rRw /KCV645QkvzlcOJfQwaoCxZvYMSRuO0Ueb++BETVQQZRRD/AHxXam6FKx8oH07MKWFEO4uDM/eV NuLODxoltUUkNN6wULDc40v5daew7n6M4pTEfCrGrX8STNQLHY8P6TYJEzw0vtF+rn9cFxgIRlf mtF/qp8rjfv0ce2j5xVw+NxUPy7Gy8NlsF9olPvf5XLU8v9Ak1as5VOm/aBArVFKbkLXlJlThZ4 N0UUSwy+DX2Fuq4ZSQ== X-Google-Smtp-Source: AGHT+IHFkzaOXapiWN4/SxKHetf09scMUxofFapehDhsYxM6Mf+yjBALSpgOHKp7OlGFg6yNQWYZRQ== X-Received: by 2002:a5d:5f8b:0:b0:38d:cf33:31a1 with SMTP id ffacd0b85a97d-38de92887dbmr644098f8f.23.1739294914574; Tue, 11 Feb 2025 09:28:34 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:34 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 4/7] platform: arm64: lenovo-yoga-c630: use the auxiliary device creation helper Date: Tue, 11 Feb 2025 18:28:01 +0100 Message-ID: <20250211-aux-device-create-helper-v3-4-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2003; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=qoSrX8iU6ZsOmDdt2vcxpMmdn8e+H5V+wLsqMb+WXTw=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g4/dIaY7N0MjawcCtYO6owHszhAtyjcgr7D 3Gd3AdMv6qJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uIOAAKCRDm/A8cN/La hR9uEACtV/xHFmThUeYWuRuZeLIZDjRSGPPZEm0NF1IUEyqMa+/w0GkdSU2I/GhBRDekpL969e+ flE7DvZyypim/I0FZ9+E91BhWYhmSRaSfH/9/AKcVVKiogJILw22nAQLwHQAU4pI9XrwljjuAbt MSgI6Qhm5jlq1GlYCQ/hou9AbHVR9B2Oe4/YFrBkUNxEblpZLIcnrsPVO2FY5baXHpZvJ2k5CAZ MSpgdClj9yIkdl580XYiAPYYvwvjElVhwesa1zzt/XSJ1Idm/YRnZRAjDFe/uief6LxhKmzn8Cq PTKk6exeDtcsIhy2ONXg2237HCo0rho1EMRdeb/E1B5sDTqLMLKfHFYyvFYva/imfWDg260QPE8 SB0ucc4PEGbCTcI28Hh+JdOrNP9ChRaJgfsOqR+3qLLQgWYBJ5ScIXYmp0UW91AvMrtqrwf9ySl UBWBVpazEhLxSaE9ItQoc2xzaUOqL71se/uZnoCaqvztP8gDdl+8GXSP2/fps5dhBhhCYQi0gi2 n4q1VatCARnM9Gq2nM8qG9+sE/r+6AOa9faLGrXdf3ZP5y7Z1f9I1TqXigFb/dco4k7vTWAFo3Z /tSZVYtq1SnEy4BRJqk9nLxSPeko3sbBy6g+ly8JaELAzWpBynghDBX7iUt8qUwY3k22TI1x6Zi chvp+TE0JiJbh2Q== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_092835_965957_6E6B3CB7 X-CRM114-Status: GOOD ( 13.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The auxiliary device creation of this driver is simple enough to use the available auxiliary device creation helper. Use it and remove some boilerplate code. Signed-off-by: Jerome Brunet --- drivers/platform/arm64/lenovo-yoga-c630.c | 42 +++---------------------------- 1 file changed, 4 insertions(+), 38 deletions(-) diff --git a/drivers/platform/arm64/lenovo-yoga-c630.c b/drivers/platform/arm64/lenovo-yoga-c630.c index 1f05c9a6a89d5ee146144062f5d2e36795c56639..921a93d4ea39ac54344cc964e2805e974cc7e808 100644 --- a/drivers/platform/arm64/lenovo-yoga-c630.c +++ b/drivers/platform/arm64/lenovo-yoga-c630.c @@ -191,50 +191,16 @@ void yoga_c630_ec_unregister_notify(struct yoga_c630_ec *ec, struct notifier_blo } EXPORT_SYMBOL_GPL(yoga_c630_ec_unregister_notify); -static void yoga_c630_aux_release(struct device *dev) -{ - struct auxiliary_device *adev = to_auxiliary_dev(dev); - - kfree(adev); -} - -static void yoga_c630_aux_remove(void *data) -{ - struct auxiliary_device *adev = data; - - auxiliary_device_delete(adev); - auxiliary_device_uninit(adev); -} - static int yoga_c630_aux_init(struct device *parent, const char *name, struct yoga_c630_ec *ec) { struct auxiliary_device *adev; - int ret; - - adev = kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return -ENOMEM; - - adev->name = name; - adev->id = 0; - adev->dev.parent = parent; - adev->dev.release = yoga_c630_aux_release; - adev->dev.platform_data = ec; - ret = auxiliary_device_init(adev); - if (ret) { - kfree(adev); - return ret; - } - - ret = auxiliary_device_add(adev); - if (ret) { - auxiliary_device_uninit(adev); - return ret; - } + adev = devm_auxiliary_device_create(parent, name, ec, 0); + if (IS_ERR(adev)) + return PTR_ERR(adev); - return devm_add_action_or_reset(parent, yoga_c630_aux_remove, adev); + return 0; } static int yoga_c630_ec_probe(struct i2c_client *client) From patchwork Tue Feb 11 17:28:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970415 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6FD51C0219B for ; Tue, 11 Feb 2025 17:43:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=q9bx0I47Tn6bEo7jRo7TyxG1K/HAB+sHkf2wm2VOOzI=; b=NJ6V0WwLa1WThYiw4+eZrukR7g LZR++NZh19ZIsmiVG4GBbvdYQkKwyTSB/guyG7XsuflcheZ7c80PElvfVN3X9M7Q7TJHE2tYqBVKa KVHO/zNCRwkXY8sUebRp+giDwoTg3Lf1DvDmdM+sz7sc8PtynljbpeYhm+Kwsc9FsMBMLVvsyJmBi Re12nyUt+cmcQ1SBUUOIP9ltGKMKfeMtq6AK3zJNzHZiK+5m+Ni7MTwMdJp0jDN4/7ZWKbfm1DumC x/PhRwIjD9XEDgtMY23CkhuA2NWdqUJW6ZrWH41uCRYOapu0oiWbQ6dVMvhFdToeRe/WFCNjGd0Sn F8kX7IDQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHi-00000004iOm-02Pz; Tue, 11 Feb 2025 17:42:58 +0000 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3q-00000004g3U-2C4S for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:40 +0000 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-439554db49dso8471485e9.1 for ; Tue, 11 Feb 2025 09:28:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294917; x=1739899717; darn=lists.infradead.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=q9bx0I47Tn6bEo7jRo7TyxG1K/HAB+sHkf2wm2VOOzI=; b=M9eslVNiuSWjDC6qyh+ekVKLJnkNY5lvm4kSXg0GJxjjfJAaR7jbHKogInq5flS+cJ rbFqIeLot5PI5JMrXjGT1hpmOpzejJ0trjkacm+MJn//vKoRYb1AcuW6Ql0BXgMSXfRG IfiETNmSdMMlcZov96DbLQXT/boYE52yYwXW40cXq+mBTQEENlavqgikIBYdcDwA1uqs 3GRUnU2rFthkMrsRNWaPxjOw6YngEHkrkn2lZrHWOMbjgm/kB1UqadkYcONK3GhxBP8Z 9I828T8jWT2jBZcGfUfz0e7o2XFeXqlfjzB7/I9q6uAbs70IxNUX9/AE6KbsgtTboMaP JShg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294917; x=1739899717; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q9bx0I47Tn6bEo7jRo7TyxG1K/HAB+sHkf2wm2VOOzI=; b=J6wBq4Ex9NfCkGQf3UU+UdW7m/pnXEWjpoyWXw+qqRjFX/qlyDrUdlRK9hCJbZZbdQ c9i+ZCbC36YmzZmO9ptUd0WqVYupT6P4K2JyTdJNy48f13fJvS9OcUPdgvU6ycsBNiFk YtudkoI3xqsQIibpjjw/H0BTigxSx7rtMLdXkKfBwh7dA7rNn0dKC7ZK2YPlgR6gkLEP xlp1EdwHXlxwlov6jbttAPDTEXv66m7MGyplGT1lFwSpCf+SfHctEflO8pzemSBIfiot dF42d4kXr755bPfCpoCmiuIXugDvIUI7o9ZK3Zu7tUwxpHxm4peoNqCZPMnYphAQPk/q gMPw== X-Forwarded-Encrypted: i=1; AJvYcCXB9sFqvtPLK1Nn7TLQ79GQyIqKrrpIMM3BI2T8AmLh5qIS3eyhEpagRpoFh1mxaJ2RkGeclLbefEY1yiJvP9J8@lists.infradead.org X-Gm-Message-State: AOJu0Yz2EZiNNOlVoqriWpWIcQUpVkZ04Spf/bboCxlyC+wFVpIvtG/V 1+48IFmdn/2MOUNcv2YKUp1ayhXyRS44+MeXhn6+XwQ3YvvF6X2hFP9nfoZfSJ4= X-Gm-Gg: ASbGnct3RP7G9kqTAlL6Cs+/T8G7309vnF8MpPugXdUlfzkW50s0LbnmEpnnYiksvfb 4xAwiDfhngZ8UJeinoYaaXC8KBhMOZ7wjqbU8usU0Gw9XWt5dqsUYmUx6ATmt8kBH2TVNl0vaaB hrmtwgyiuJpvbbVdO9OeI2BZ775ZOWETS0li9xPDZsOOEt3ipvVljn0dTwf1fnU+ApRjjpu5xto wvdaSyhiDLM/vol2dtaAumFiEGbndYpfc7ABREwgM6TOFr/gFs5hODfjLP9QElAIMAtUnuiN08Y VsKMJh4y9vrLuRVreQ== X-Google-Smtp-Source: AGHT+IFtn7cTk53CsXLOs0ym8l94Gy0ie7XH6W8nO4K/ObG+5/+lrQBGQ0HbQ/z1Qw6bfBt122n8Rw== X-Received: by 2002:a5d:5887:0:b0:38d:e3a9:d655 with SMTP id ffacd0b85a97d-38de3a9d75bmr4402306f8f.15.1739294916823; Tue, 11 Feb 2025 09:28:36 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:36 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 5/7] clk: eyeq: use the auxiliary device creation helper Date: Tue, 11 Feb 2025 18:28:02 +0100 Message-ID: <20250211-aux-device-create-helper-v3-5-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3038; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=aFYZ6uitcWrrRO3QpVWn0nNaiQ1LXsJLRLMMtNT53bw=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g5lkk3cqWgHMP3CCG4BuwFe5C2F3wDshnNy Adoe13MMYqJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uIOQAKCRDm/A8cN/La hfxOD/9Ov3vQy2nAixWu6Lno5OjamDl9bupksGzUtMDHc3Xnbgp0ZK8iN2OFHVZlt0w267iS/4d 7BXXIUjw9uPxlI6NadJ92+0lsfL6O0LWMo9OmvzB1/x5pZBA+YEREunOSpce9nC20sikciEBxTi rAxg8rwr8ZbHZQdXySHjwnBJQwZC/iPPASuRiiFLp/ifq/OFA4BnF7OEQskN0iU7hG3dGoppKWP bWpN0Ij+Lrk15oMjG8ab6kxJlyfgfETay2YsUbcEO0nXWQ+5USk4ckRfYMdt3al182sK+D3FrRE PFFDpVNKveSTOJEVtRnW1eESzOqeg2fE3VkPAei/faQ0lwxcbDbLcY0UxsCoCxGmYLHN6hhgC5U XuMNecOSpFOMeKJO6vJFQQ0A3eACqbzTC6C3syS5lCJmD50uYrnc9EgYrbePOD3pbuhz9xpuNys ZvepVJNwvwaxXq/ouY7OWTUNzROguqe6owYkGT5o8Bzx14gpbHkorKDg8Yv007gSfVQPEra2XqZ SQ/E9ifTm3uHKHiGZjfpCIQNSXD38akhhCAtt8XKGlSYC11IsLi73ZRanAiq5Exj4o8s3iA/rg0 u6tC0ZB/l5f4rEl3yzKymgSCtpn/VsM2fgBmzvPeQsj9wqGXJ4L4L6xeTkVUpxcrmqImB9uxOse KsRdlOtx7sxXS6g== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_092838_574975_BF787813 X-CRM114-Status: GOOD ( 17.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The auxiliary device creation of this driver is simple enough to use the available auxiliary device creation helper. Use it and remove some boilerplate code. Signed-off-by: Jerome Brunet Tested-by: Théo Lebrun # On Mobileye EyeQ5 --- drivers/clk/clk-eyeq.c | 57 +++++++++++--------------------------------------- 1 file changed, 12 insertions(+), 45 deletions(-) diff --git a/drivers/clk/clk-eyeq.c b/drivers/clk/clk-eyeq.c index 640c25788487f8cf6fb4431ed6fb612cf099f114..37e76ad3fbe95ee2dea7df8f6b02d28f19f1d5ef 100644 --- a/drivers/clk/clk-eyeq.c +++ b/drivers/clk/clk-eyeq.c @@ -322,38 +322,18 @@ static void eqc_probe_init_fixed_factors(struct device *dev, } } -static void eqc_auxdev_release(struct device *dev) -{ - struct auxiliary_device *adev = to_auxiliary_dev(dev); - - kfree(adev); -} - -static int eqc_auxdev_create(struct device *dev, void __iomem *base, - const char *name, u32 id) +static void eqc_auxdev_create_optional(struct device *dev, void __iomem *base, + const char *name) { struct auxiliary_device *adev; - int ret; - - adev = kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return -ENOMEM; - - adev->name = name; - adev->dev.parent = dev; - adev->dev.platform_data = (void __force *)base; - adev->dev.release = eqc_auxdev_release; - adev->id = id; - ret = auxiliary_device_init(adev); - if (ret) - return ret; - - ret = auxiliary_device_add(adev); - if (ret) - auxiliary_device_uninit(adev); - - return ret; + if (name) { + adev = devm_auxiliary_device_create(dev, name, + (void __force *)base, 0); + if (IS_ERR(adev)) + dev_warn(dev, "failed creating auxiliary device %s.%s: %ld\n", + KBUILD_MODNAME, name, PTR_ERR(adev)); + } } static int eqc_probe(struct platform_device *pdev) @@ -365,7 +345,6 @@ static int eqc_probe(struct platform_device *pdev) unsigned int i, clk_count; struct resource *res; void __iomem *base; - int ret; data = device_get_match_data(dev); if (!data) @@ -379,21 +358,9 @@ static int eqc_probe(struct platform_device *pdev) if (!base) return -ENOMEM; - /* Init optional reset auxiliary device. */ - if (data->reset_auxdev_name) { - ret = eqc_auxdev_create(dev, base, data->reset_auxdev_name, 0); - if (ret) - dev_warn(dev, "failed creating auxiliary device %s.%s: %d\n", - KBUILD_MODNAME, data->reset_auxdev_name, ret); - } - - /* Init optional pinctrl auxiliary device. */ - if (data->pinctrl_auxdev_name) { - ret = eqc_auxdev_create(dev, base, data->pinctrl_auxdev_name, 0); - if (ret) - dev_warn(dev, "failed creating auxiliary device %s.%s: %d\n", - KBUILD_MODNAME, data->pinctrl_auxdev_name, ret); - } + /* Init optional auxiliary devices. */ + eqc_auxdev_create_optional(dev, base, data->reset_auxdev_name); + eqc_auxdev_create_optional(dev, base, data->pinctrl_auxdev_name); if (data->pll_count + data->div_count + data->fixed_factor_count == 0) return 0; /* Zero clocks, we are done. */ From patchwork Tue Feb 11 17:28:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970418 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6ADECC021A1 for ; Tue, 11 Feb 2025 17:43:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=YiUH4lqEkZUY+Ysux6Yiqp87vOhypZIO5pd5GZP5Rxo=; b=OfFbNpLU3QsqOM12s3FttKdax8 qo+ZE+6e2cRw8PMdm38zHQbKxM/t3K8BRywyOuxAXVojttRlgpFpYuxm9c9gs3epGdpznNnJflw3g Ekm88OfgINGikmJZ7r2LHQH3a23GO+AkTwRFUKUHWvYbGxooZD380w2g9xXv1+FQhLU/jbwzaL5M3 kynu4mxy1MnPZjmFLLm2V8C8akDcquJkgAQf3ra8XEiBLi0e0Vi3/NSgUlCs/k8+N59K7rhdpimgg uFGuoq+b8FZ2uafQWo1R7gQXdtC9O+JzlPwiPl3fpkm9bHOObuKM0+gkrVAfPxF7Gj/0TUERs5k/F wqI4Z6Eg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHn-00000004iZ1-1ITx; Tue, 11 Feb 2025 17:43:03 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3w-00000004g90-0WYT for linux-arm-kernel@bombadil.infradead.org; Tue, 11 Feb 2025 17:28:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=YiUH4lqEkZUY+Ysux6Yiqp87vOhypZIO5pd5GZP5Rxo=; b=Dr6QQhdoPDFqtF63DvFOdzg4b9 gNoIvXh/krYVHW7Di4WNgVf1CEH4riGi9RVo1Qtc5IEG5oJ7KhuMvU2BpKBVk9xVjogZO3h1cpXiN 6aW98NYqnOp/0iHbydcHu1+7Q6Tbbg7xqHh2IUZDaNc94HDYn0RfXWfmsNtGyPv1DJoxY8NLIB7bF lGEecggCS+0IwpVb6sBUvTTJ5zWDl7AGxk/vDA/2eY3TfilbKUkNStzKJkEO5BSo5/vxMY4RDznJs ValP83MQrDm6ImTj0Z4clZDYyKaPXj9vYoqVem9iBLbFuN/sNqzlUZD3jpjKVn/vSbgbp7Lktf8+B 1uzGfWgg==; Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3t-00000000eMv-1HiQ for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:43 +0000 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-38dd935a267so2392415f8f.1 for ; Tue, 11 Feb 2025 09:28:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294919; x=1739899719; darn=lists.infradead.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=YiUH4lqEkZUY+Ysux6Yiqp87vOhypZIO5pd5GZP5Rxo=; b=DwFiIFthXd166YWDwsiSvS2hdx3/ha3YjZ/ZP4U+YhYypNcTa0gi1vgYJATMBdenUj aOeM06hBEZ9fuDzH2HsoVbyZjzsCOoynGW7q1UVa36OQ3bbcd1mz8pEIet2rw0t2wd6C fLNI2Q3MzvTp6PmCAdvt3jgXGOjX/eh5FFpfvWdMyv/FTfoW6QI8qhzY8HjIsnjwt6tv a+DiZrqJ7ru3w9S5Dwh7ROZ+YRjOeFoLoK4bNidu2JFDcqVVhspdIEjxa6om9glW7d2Q OHlcobFD6UaMjd0C5F30MrSHk1zZK6P+nsGL9j8+xQnCGYSWZA/cLd1zVG7+1fPHPFFW Qk9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294919; x=1739899719; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YiUH4lqEkZUY+Ysux6Yiqp87vOhypZIO5pd5GZP5Rxo=; b=OkFfgwFjay5KzF9ws/Qxy8RM0xezMxwlIhUQuC3jnlBdPTIeurnTtE+olbPZID0MoU p304polpilVbG3l7kuZyiPHkI24cHBrmu3AqP2jG/5m5kUX3oLcOncZQhCNdGjhT88bS 7Rpm0+RB/4PannQNIQs58MY6OBBij2V4z3CFc9e9ctNZ/F4A0dWpjobI/EwOaU2PYoKC M5W/7AX1TqUdGg6voYv0NT6bGONkFI9E+FEJjip6JJmoVftNGa/AdR7Hli5Jw3tjT/7L wDoNqv/IPkRy81QId4aJ8THcWRxaS2f6MrvVSzI6LtwV/Sjmd8aJtSFJi3B7svFtfuel mbsA== X-Forwarded-Encrypted: i=1; AJvYcCWHMcYe89DL99aQRKIs1G0uCNo26zxuhIHyMJWOz3cN7ZgcFRSD+zOyX32zMweqPsvCKcMU1b/U0L5Yqs8zQdtw@lists.infradead.org X-Gm-Message-State: AOJu0YyuPGMHWH3bn+Bcb2AO+SnRSwTf27eMEyKbqdqO331PabXDfXPW rOVIRs5ExFEodo4DgDY7wLnT7HJuUZH6FrUbbq+mEZorzgTAawHh1X8xPWdvtHg= X-Gm-Gg: ASbGnct2CNzNrQlzSGPc5LDp1Gzq9T4iwjSq4QAeIg/0hQOPhS8whm+9vk0KdKQ2muC hET4aT7O9KIU3ECXBnd8INJpd79aeUH8lIp0RlRmNJM+PpuPow6TXH9lprxbImGz+0oZgpny0mm Ath8czsn7EeGSxWy7+dfiYuGzgUrt050aleEYKLhRDTtK/1SH6IPKNxXNOzb5GvmYeBhNaD7Gji JGG5CCm1w8BuzHt/ZEt3VeCcIcy965dlYsoJtkzf0VJ0hNzW8Twq+FxaxyXsY5Qj2Tp+l0Gj24i V4ZMaeVnSbtkshGxcA== X-Google-Smtp-Source: AGHT+IGWxF7f1yWAujS2u+KdxRxs6BCZ2vWSSXW9ul24NRbBrNVcf/bzFVrq/LcbH1iHWIudtU2p/Q== X-Received: by 2002:a5d:5f42:0:b0:38d:e250:d962 with SMTP id ffacd0b85a97d-38de937cef8mr592405f8f.30.1739294919069; Tue, 11 Feb 2025 09:28:39 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:38 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper Date: Tue, 11 Feb 2025 18:28:03 +0100 Message-ID: <20250211-aux-device-create-helper-v3-6-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2845; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=yh1X3NdDCdUsA9BLxtXchkn9/M7vIhxyVwRqzsjlThI=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g60PKNni6dfU5BjvUnV/GlJm8Z/Gp+nsWrU 9ZnwgOS2NiJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uIOgAKCRDm/A8cN/La hbC0EACdDyfv4ruNFNCmp9zrJN9GhUKhduy0uDZfmX9xFwkj19yNB791PVovwlCxBtsVN+6iC4q rwLI3P4vdZ1EwlqCmVrmNdGoLnghwRNHwHALo5QxefOPT4NljAxW1vZtixroQfv2C49vYyO6W4P kJzYPrSQ5gCAhV9vK40Lrk3hKz6idlpK6fP6E452DnIlVkMEuBRhoWIYcW3UYiHeM8GZVGnhBCD gSJilnljJ5OTQH+GOh4JJ+ljp3eDNfLB8W4KHF0CAyQTUEMe8AcjK03WlL/wYkVKOkgcGkEcQp9 BIY3F82Fe2CRnNyNNI0avHJK4Dow3qn7iDNJJpC3ovn48iYglF/d0jXmcEMhXhQpSbeKMeTqa7J fP6G9puoFGrvGncXPPVDyslRM/0C+t+9jrKuXcFKpUC6JEFDzD6J5ZEVwY4UiSURMnLq30q2O/b Ji2uLCAtXuMOhYX2lnsQA5d17uDRDdwUJp8XCH4Oz6Dnb2S55Fsz9tvBGlSUODkUiKV8l+xyrVc 1dbrvgTF+WDlDaLoybOYZRNVsuxR6nnuPg843dEMXQ4KBAAvubECmtqd3Rp4YaM5ppqsxBeoFzV cuZaX5kv0Po8QUX3SAVM7K3Fpx7ZYg1fo5142KlYv+iDGalSNmwxlsLmgMTIAr8JL2LCqw+Y9jn uIY7Dp1qPMaPorQ== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_172841_460793_A78DD329 X-CRM114-Status: GOOD ( 16.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The auxiliary device creation of this driver is simple enough to use the available auxiliary device creation helper. Use it and remove some boilerplate code. Signed-off-by: Jerome Brunet --- drivers/clk/imx/clk-imx8mp-audiomix.c | 56 ++++------------------------------- 1 file changed, 6 insertions(+), 50 deletions(-) diff --git a/drivers/clk/imx/clk-imx8mp-audiomix.c b/drivers/clk/imx/clk-imx8mp-audiomix.c index c409fc7e061869988f83c7df3ef7860500426323..988a5fffeb4e0e481ec57038d9d1f1b43432fc98 100644 --- a/drivers/clk/imx/clk-imx8mp-audiomix.c +++ b/drivers/clk/imx/clk-imx8mp-audiomix.c @@ -228,64 +228,20 @@ struct clk_imx8mp_audiomix_priv { struct clk_hw_onecell_data clk_data; }; -#if IS_ENABLED(CONFIG_RESET_CONTROLLER) - -static void clk_imx8mp_audiomix_reset_unregister_adev(void *_adev) -{ - struct auxiliary_device *adev = _adev; - - auxiliary_device_delete(adev); - auxiliary_device_uninit(adev); -} - -static void clk_imx8mp_audiomix_reset_adev_release(struct device *dev) +static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev) { - struct auxiliary_device *adev = to_auxiliary_dev(dev); - - kfree(adev); -} - -static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev, - struct clk_imx8mp_audiomix_priv *priv) -{ - struct auxiliary_device *adev __free(kfree) = NULL; - int ret; + struct auxiliary_device *adev; if (!of_property_present(dev->of_node, "#reset-cells")) return 0; - adev = kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return -ENOMEM; - - adev->name = "reset"; - adev->dev.parent = dev; - adev->dev.release = clk_imx8mp_audiomix_reset_adev_release; - - ret = auxiliary_device_init(adev); - if (ret) - return ret; - - ret = auxiliary_device_add(adev); - if (ret) { - auxiliary_device_uninit(adev); - return ret; - } - - return devm_add_action_or_reset(dev, clk_imx8mp_audiomix_reset_unregister_adev, - no_free_ptr(adev)); -} - -#else /* !CONFIG_RESET_CONTROLLER */ + adev = devm_auxiliary_device_create(dev, "reset", NULL, 0); + if (IS_ERR_OR_NULL(adev)) + return PTR_ERR(adev); -static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev, - struct clk_imx8mp_audiomix_priv *priv) -{ return 0; } -#endif /* !CONFIG_RESET_CONTROLLER */ - static void clk_imx8mp_audiomix_save_restore(struct device *dev, bool save) { struct clk_imx8mp_audiomix_priv *priv = dev_get_drvdata(dev); @@ -408,7 +364,7 @@ static int clk_imx8mp_audiomix_probe(struct platform_device *pdev) if (ret) goto err_clk_register; - ret = clk_imx8mp_audiomix_reset_controller_register(dev, priv); + ret = clk_imx8mp_audiomix_reset_controller_register(dev); if (ret) goto err_clk_register; From patchwork Tue Feb 11 17:28:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Brunet X-Patchwork-Id: 13970419 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2027FC021A4 for ; Tue, 11 Feb 2025 17:43:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=kX3ghmSADof/fdYKGzDtB/q8+rQu9IUcD4dmFIXduMs=; b=KAIot0fVfy5mxKhjYC7vfATXsk vyQThdo5uYsDtNn2gXTph9932GOSE5NmYWGadPF0shV0wSEYT0JrSEahS95zBZ9DsdKrC84Fpc1mt 8uLFngLRw/7886Qqgimzz6pXgOOaqET4VDiWC6RF4CFkpNbbpV6xnwcpb8WvEyIDbUdpQvWs4Kl43 T12nRpqd6GZXeEHIcInMS/BVgh4CxSCfjM3oFQcUPkD6Wodv66ha/b+kiJqlTIbTsmzn8H1A4JNHL xbip1f4FXl9BhrhfPC2O5ziSOKKgHCeGR/X2EDbD5P0rw4jI71U0lVuUlNZYzbsvDvxik6oUl6vxJ y6JPXbKw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHl-00000004iUF-09BQ; Tue, 11 Feb 2025 17:43:01 +0000 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3u-00000004g7N-39NE for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2025 17:28:44 +0000 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-38dd93a6f0aso2178495f8f.0 for ; Tue, 11 Feb 2025 09:28:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739294921; x=1739899721; darn=lists.infradead.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=kX3ghmSADof/fdYKGzDtB/q8+rQu9IUcD4dmFIXduMs=; b=YiAJsWd+HCulJZwgeyfxeb01pAQnQdwIKH3gOwx/7ULtH3yN9nEyoMqtg66nH1FxxP KSgowKoUVoSyTAGU/DfoQgyJMf/rwJduWlRmZmbncCsO6UIeuNDU7y2evUqG7akasRP1 4fn3le4Bk72sx7rYDuGtGRTPxYI4FX4rSf7cwM3OlputMAf6seJAgV7Vo6jsnki4WRx0 m7FBnbxBjc4CjRxMNZUWPiGTTdAMpHK5pb30aPc56k2vzaAb7cN9zlZmH0pTn50uZaHG sFS/u35c4//H6GQ60O3GazZyn9XWu2APlQL34dbAKtjKpH0bRpVpl5W+Kh5fQVy5PG/s 3B5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294921; x=1739899721; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kX3ghmSADof/fdYKGzDtB/q8+rQu9IUcD4dmFIXduMs=; b=Q/G1uWXvCtEL7u77a4dLcSo746wSKcItwDZl78jbLgKzL8+qsLJ5Trd3w6msKGDeWb y2EZT3UQO3+fcMJSaRgGxvEMCgpnjeOPG5OpKsn5RkmrW9KzRCNwIdQ49QG1TKar9O8t 8R3orkLR5gILaxeGSnJAlxFC5bltBExJH7LECOJYlF6PgGZ3eHBGlEzb7YlNs5VeouR3 psiSSSmfcjxv7Z1KPTM1L9Fa9WjF6hDO6Z3EDSSBXQhu6WvJMtpQMS6cTRUVPbMGryXi 3ceaT7lwVMwQpPS6A9nmYO+dXz3WJHkEZMYRgqhBmCuMnoKtzI0sLk3GYMWEy0m65F5O zzrw== X-Forwarded-Encrypted: i=1; AJvYcCU9g/vJtGznTpkJ7Cm32yITLAAchESVDEUZGg9wiSzaKauR1dZKh/Di/dT3UnHBhLLiF0iVX0OIOXMUb/s56dMu@lists.infradead.org X-Gm-Message-State: AOJu0Ywq1oTbNuvuMeVR+oeOo3QjjJSUPnkGI951oTPoiRMdKjmfRSVB UlCxQFp6SzLrLSQ2hBXa30VzvO+geviVG5+hZ+10nOaKbZUvQLYZlsLvz1LpLIg= X-Gm-Gg: ASbGnctvMwCoYNWT+agsptK+QiTwsZFM2my2uaDph9wZGYh59rUdVJv6lFc0fz/jQje PyUGeGgpTkWQoLvk2Hy6gWwDDgEwxFMR5fKlxt1QHMjDuVYSdmvYibN07DX2ika1F99WteUAbRF jOiZPhbBrW8LotRjepf2GpjqqNYXPftRyo0Tkyd57Q4KhafENaQ4tdgdam5JjlbtbBVQRpC2svG z1dq0zJufU9wHz78EpX2YM/nqLFrnR8IMkT8Cdqj8zPi33az6s/LnuNDsjNaItrU1kIhtL+tnZp bd49hiaHYLHPR3gpnA== X-Google-Smtp-Source: AGHT+IHNZKomgYXqcV4iueNtMWjdqrJCqK18R/l4YoIndkgvWwENIn/juV5TQLvLjyHtq/y8uwbzbg== X-Received: by 2002:a05:6000:154d:b0:38d:e481:c680 with SMTP id ffacd0b85a97d-38de481c6d6mr3134750f8f.18.1739294921265; Tue, 11 Feb 2025 09:28:41 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:fc0c:6c04:7ae0:c5c2]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-38dc6c80df2sm13691082f8f.18.2025.02.11.09.28.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 09:28:40 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann , Danilo Krummrich , Conor Dooley , Daire McNamara , Philipp Zabel , Douglas Anderson , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Vladimir Kondratiev , Gregory CLEMENT , =?utf-8?q?Th=C3=A9o_Lebrun?= , Michael Turquette , Abel Vesa , Peng Fan , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Kevin Hilman , Martin Blumenstingl Cc: Jerome Brunet , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, dri-devel@lists.freedesktop.org, platform-driver-x86@vger.kernel.org, linux-mips@vger.kernel.org, linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org Subject: [PATCH v3 7/7] clk: amlogic: axg-audio: use the auxiliary reset driver - take 2 Date: Tue, 11 Feb 2025 18:28:04 +0100 Message-ID: <20250211-aux-device-create-helper-v3-7-7edb50524909@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> References: <20250211-aux-device-create-helper-v3-0-7edb50524909@baylibre.com> MIME-Version: 1.0 X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5921; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=TI3PyQ4RBlsYvn/3ym2zOR51oxwz92ZVC/TIhelLgEk=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnq4g7rK2qbvDSMWo7y7IKYVc4VNag+NKBkBwBX 7AivAacwaKJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6uIOwAKCRDm/A8cN/La hbzVD/0aQSeKG38/WN0LzdAbQTHjP8c2dJCCutKqih2e3zHr0RKjaYamy5oVuPOh498VVAmF9cn JeAalYPQoR3MZ8oiPIpwNYFmdLz9SdTLYUF+PKdNWbORrKgBWRKu2ivLUtegcvaJUMhHO5Ix5bG CrQz74Dt9ScsD6/j3QRGph2BODHh8TbsywwrMIS5K/urLzgDSwanjOPXFfQzQfbJMYU09h3YUDs e3xEkGsqD9aIqFiYJHTVPTMJ/+vbqp334Lqc9hnPqgNJcOoDO193NJiXYa1yVU95vo/72i38MBq 3crANEecIqg7ti6Gz60LNk2WTZAFJ3gZqhxhQr/imfzRiZ7siLD3ZjmPJPZ1b4owNJscGsqQG2/ PswDJyFP788jPnd1LdniQrVQWuYG5yUzBu7jJyinlYAY+MgUcgelAC9bt7VKJNydWJLWbheq1O1 JVY2z1C35EIyV8hU1Gd4eAUofbzasGlOz8CjvwQrMAv+ip84NLLoqzvnvJGgRFm1igRtkHWw96X oHd1iR7mYoTUtOPuC+NQWLoZ7FhdSXsAbCawy/ai4kYIx0SwT/S8WQV+WfxcSxkir99fqoEjLso XAYvea00nIRJBgjfT5Kl03ruc1yRSK0CM6ZpO6eN7w1Kf14T+sfeD13r5XgO16wfSNJVWGktDas GH37TQ7hJz+6o9g== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_092842_915519_777FCEE1 X-CRM114-Status: GOOD ( 30.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Remove the implementation of the reset driver in axg audio clock driver and migrate to the one provided by reset framework on the auxiliary bus. Signed-off-by: Jerome Brunet --- There has been a discussion about the use on imply here. After re-reading the documentation I've sticked with imply in this version: > This is useful e.g. with multiple drivers that want to indicate their > ability to hook into a secondary subsystem while allowing the user to > configure that subsystem out without also having to unset these drivers. IMO, this is a pretty accurate description of the use case in this change. The pitfall mentioned in the doc does not apply as there is not link error regardless of the config of RESET_MESON_AUX. I also think this is more readeable and maintainable than a bunch of 'default CONFIG_FOO if CONFIG_FOO' for CONFIG_RESET_MESON_AUX. This approach also would have several pitfall, such as picking the value of the first config set or the config of RESET_MESON_AUX staying to 'n' if CONFIG_FOO is turned on with menuconfig. drivers/clk/meson/Kconfig | 2 +- drivers/clk/meson/axg-audio.c | 114 +++++------------------------------------- 2 files changed, 14 insertions(+), 102 deletions(-) diff --git a/drivers/clk/meson/Kconfig b/drivers/clk/meson/Kconfig index be2e3a5f83363b07cdcec2601acf15780ff24892..7cb21fc223b063cb93812643f02f192343981ed8 100644 --- a/drivers/clk/meson/Kconfig +++ b/drivers/clk/meson/Kconfig @@ -106,7 +106,7 @@ config COMMON_CLK_AXG_AUDIO select COMMON_CLK_MESON_SCLK_DIV select COMMON_CLK_MESON_CLKC_UTILS select REGMAP_MMIO - select RESET_CONTROLLER + imply RESET_MESON_AUX help Support for the audio clock controller on AmLogic A113D devices, aka axg, Say Y if you want audio subsystem to work. diff --git a/drivers/clk/meson/axg-audio.c b/drivers/clk/meson/axg-audio.c index 9df627b142f89788966ede0262aaaf39e13f0b49..6d798705c5fd1e6190192294783c955fc9be1e21 100644 --- a/drivers/clk/meson/axg-audio.c +++ b/drivers/clk/meson/axg-audio.c @@ -4,6 +4,7 @@ * Author: Jerome Brunet */ +#include #include #include #include @@ -12,7 +13,6 @@ #include #include #include -#include #include #include "meson-clkc-utils.h" @@ -1678,84 +1678,6 @@ static struct clk_regmap *const sm1_clk_regmaps[] = { &sm1_earcrx_dmac_clk, }; -struct axg_audio_reset_data { - struct reset_controller_dev rstc; - struct regmap *map; - unsigned int offset; -}; - -static void axg_audio_reset_reg_and_bit(struct axg_audio_reset_data *rst, - unsigned long id, - unsigned int *reg, - unsigned int *bit) -{ - unsigned int stride = regmap_get_reg_stride(rst->map); - - *reg = (id / (stride * BITS_PER_BYTE)) * stride; - *reg += rst->offset; - *bit = id % (stride * BITS_PER_BYTE); -} - -static int axg_audio_reset_update(struct reset_controller_dev *rcdev, - unsigned long id, bool assert) -{ - struct axg_audio_reset_data *rst = - container_of(rcdev, struct axg_audio_reset_data, rstc); - unsigned int offset, bit; - - axg_audio_reset_reg_and_bit(rst, id, &offset, &bit); - - regmap_update_bits(rst->map, offset, BIT(bit), - assert ? BIT(bit) : 0); - - return 0; -} - -static int axg_audio_reset_status(struct reset_controller_dev *rcdev, - unsigned long id) -{ - struct axg_audio_reset_data *rst = - container_of(rcdev, struct axg_audio_reset_data, rstc); - unsigned int val, offset, bit; - - axg_audio_reset_reg_and_bit(rst, id, &offset, &bit); - - regmap_read(rst->map, offset, &val); - - return !!(val & BIT(bit)); -} - -static int axg_audio_reset_assert(struct reset_controller_dev *rcdev, - unsigned long id) -{ - return axg_audio_reset_update(rcdev, id, true); -} - -static int axg_audio_reset_deassert(struct reset_controller_dev *rcdev, - unsigned long id) -{ - return axg_audio_reset_update(rcdev, id, false); -} - -static int axg_audio_reset_toggle(struct reset_controller_dev *rcdev, - unsigned long id) -{ - int ret; - - ret = axg_audio_reset_assert(rcdev, id); - if (ret) - return ret; - - return axg_audio_reset_deassert(rcdev, id); -} - -static const struct reset_control_ops axg_audio_rstc_ops = { - .assert = axg_audio_reset_assert, - .deassert = axg_audio_reset_deassert, - .reset = axg_audio_reset_toggle, - .status = axg_audio_reset_status, -}; - static struct regmap_config axg_audio_regmap_cfg = { .reg_bits = 32, .val_bits = 32, @@ -1766,8 +1688,7 @@ struct audioclk_data { struct clk_regmap *const *regmap_clks; unsigned int regmap_clk_num; struct meson_clk_hw_data hw_clks; - unsigned int reset_offset; - unsigned int reset_num; + const char *rst_drvname; unsigned int max_register; }; @@ -1775,7 +1696,7 @@ static int axg_audio_clkc_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; const struct audioclk_data *data; - struct axg_audio_reset_data *rst; + struct auxiliary_device *auxdev; struct regmap *map; void __iomem *regs; struct clk_hw *hw; @@ -1834,22 +1755,15 @@ static int axg_audio_clkc_probe(struct platform_device *pdev) if (ret) return ret; - /* Stop here if there is no reset */ - if (!data->reset_num) - return 0; - - rst = devm_kzalloc(dev, sizeof(*rst), GFP_KERNEL); - if (!rst) - return -ENOMEM; - - rst->map = map; - rst->offset = data->reset_offset; - rst->rstc.nr_resets = data->reset_num; - rst->rstc.ops = &axg_audio_rstc_ops; - rst->rstc.of_node = dev->of_node; - rst->rstc.owner = THIS_MODULE; + /* Register auxiliary reset driver when applicable */ + if (data->rst_drvname) { + auxdev = __devm_auxiliary_device_create(dev, dev->driver->name, + data->rst_drvname, NULL, 0); + if (IS_ERR(auxdev)) + return PTR_ERR(auxdev); + } - return devm_reset_controller_register(dev, &rst->rstc); + return 0; } static const struct audioclk_data axg_audioclk_data = { @@ -1869,8 +1783,7 @@ static const struct audioclk_data g12a_audioclk_data = { .hws = g12a_audio_hw_clks, .num = ARRAY_SIZE(g12a_audio_hw_clks), }, - .reset_offset = AUDIO_SW_RESET, - .reset_num = 26, + .rst_drvname = "rst-g12a", .max_register = AUDIO_CLK_SPDIFOUT_B_CTRL, }; @@ -1881,8 +1794,7 @@ static const struct audioclk_data sm1_audioclk_data = { .hws = sm1_audio_hw_clks, .num = ARRAY_SIZE(sm1_audio_hw_clks), }, - .reset_offset = AUDIO_SM1_SW_RESET0, - .reset_num = 39, + .rst_drvname = "rst-sm1", .max_register = AUDIO_EARCRX_DMAC_CLK_CTRL, };