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: 13970420 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 4E450C021A1 for ; Tue, 11 Feb 2025 17:42:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=X+wmjn3Ooj5VhzIXDGYQYJcMPzWBN27MXqZUlaRZvac=; b=sf/e6Z4mAgXiCk fpf4FxBuFV1sDl1OWVT5FKnSyZu24Z4NEJtATmAz53vbY0Iw719CGtSS9TcneKF5u9tZzYSwiawxx 6o9G5XRJZm1r9JvazDh1R7ev0p1Z9le4WiWFPiDf5WohtrFnU5TMIEhDG2Luojk8DvU3vQCceLCP6 hj/QzDc/rhDWZvEEqQtDAc3eSEuEOjPEATFnhAkB3gezZ9912UYS8taOE6SRxZWCmnyOXDeExbaZy 5IXs6rDx303RgY+g5q7vSlHzRDGZKBTHSD8N5tyfV2LPxWJDl5/f56nBabfUaRB0OXVebh0TO50yj UP58dCeI+5B/2HRdTCSA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHa-00000004iH4-3hDE; Tue, 11 Feb 2025 17:42:50 +0000 Received: from mail-wr1-f45.google.com ([209.85.221.45]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3h-00000004fvP-2xd7 for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:30 +0000 Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-38dc5b8ed86so2581162f8f.1 for ; Tue, 11 Feb 2025 09:28:29 -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=YDDOMi165sg/FU//Bq2fak9k1qJ2VrbbXzLRC4UCoQMOpUsMURw64060lpOqNBF7vN B5u3ycrr++5qb5XmTftCbvD1fuuzVwI+qW4wV9P9+UT3krrGQ41MJ7/dJqEHIvFOtsr1 UKxgket6w1umg6aGN6kFtXRFdWn6RC9okaWgy1l9d3sx2kYh39Mc2x6Ee7SwI6HVDUc9 39GkKSt5W36CtKmDAfswt3wBidU668s6p5OSkQD2GkLQU9dnXhmq587NHD5oxJBHVRFq opb6PCPlPhC9eGj10as7R/MrwN23z5DbhO9TdkZGbf2qX8Vbm+Gvrnea9daFjv25Z3ll FS/g== X-Forwarded-Encrypted: i=1; AJvYcCW8WVcyEeBX0GEtTGHmhzAmFZ3ZgbO83g4q+gZfi9pafIl3nOfBPEWy8Vu17YRNBtrOpnbdPcEpde6hxbrv@lists.infradead.org X-Gm-Message-State: AOJu0Yw7UXUbR+ZfmwOY9XuW3/b8pUqU5W81cMUKa6Jq+bE55fBYF8dx NrD8DZoNjiIYecc7xkmJ5I4r8RRwYcRMmOU7Gw14X8AqjDDH6GJrqSlgCseqK28= X-Gm-Gg: ASbGncskcCBEywc9nnVxKqvKdEEU8joiBoJVONHhkD8GmC8zLhsWUWvireYSjaMdCmo WNZXFF1XUwjetgZTTjsLk340MCt07sgMw+f3ek+n0Y3QZ6ubwTg/Dgy0ECBPSHQ2lv+7HYvgmpZ KYAnxawBCGDwfU2s0Xlw0nwm8DsO6MnhWmKSTJuaYCXZ4s22HaV/NTsjeNA0CMsj3gTyxEOv43S UxIT3kfxBIbWWFBsGpUWnJtyJTFJNnb8MowWsMI94l4pgtLMk6/hRdxUV4LQZbL3EiK4lmopHq3 olOCRcb6ce0YqZho1w== 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_743290_3340291D X-CRM114-Status: GOOD ( 16.48 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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: 13970421 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 D4A13C021A2 for ; Tue, 11 Feb 2025 17:42:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=Skdvc3EjCrcrcz8UELEerCiucLT+/rdXKsSdfncz52g=; b=trIsBitRWL0bWM 0rjPGWkyv4gYsxmiKvqVGeV2kosv4Ilk/Oel1NHYuB5cUWj6kvr0yRU1cG/oRk538dlm3izIbU/Wc rhgUHzTvWC5hrBrCI1993DQT5ZKxBQ7PGbaXbrUuuFDm4OsHFCcGlhc1NldZEiVWQscsVHtCDkYsD S68AYZx63K3VjTgHMp31AevZFPRdehzCNItCTYv3AvmxOBz4dT9skcEjujqEjhyDqD8Qh12CTCUvp dVRri43oxB3TrvmgoSx0xuM0Nu6eq0KtI7sQK2y4KRlnfVMzGREESoN/LJCmIGMBF8DVo1cQn9Qfy UrIpwAPiB3em4kWmjbrg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHd-00000004iJe-3HNA; Tue, 11 Feb 2025 17:42:53 +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 1thu3o-00000004g1v-1oW8 for linux-amlogic@bombadil.infradead.org; Tue, 11 Feb 2025 17:28:36 +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=vS3u0ChTSEKOd8+Sz6F6ngUlw65dB3dACQW1SqE48AI=; b=EPwR7r4axWfcjdme7ls0LdiRjx tLKye8R+JEh4Lh7MZf5pK6ccKYCcneBwOKl5uBh6Af2R1fs1Z5mBhbId5kXtxzZqdsYGqfPg1nFBq QrhdgtrZcx/P3dVsvEBqkRIXYqL6SlkOGYcZ5qEyegs3LXx1MC6RMHEPrPQBmTq/dz/KXubUJ3jtb pYTOiwsj0nwPdxA5u8ARDAeS3ChvuA44DzTmevmK5gbEh5Q+aDI3x1Ag1YrTtm2BiauJYTq3sll2L mato3fbU0UPzJ+D6YupZptLevttf+ULXGav2e7os/SN1CfIoB9fsajALlNmMymNmCKK8cpT342zzy TXbYQTMA==; Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3k-00000000eLX-2XTp for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:35 +0000 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-4362bae4d7dso39192935e9.1 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=cd9SHJY72XGRG0zh0dismw27d2dupow0TshEVwpy9kQ2w9JV/z/0tzLx7ez+snwWvD vkoyfVpz8vrmkBYhD2kuraEc3//yx7JAsRjW+dFxRuswifPc6dyKJFfFhwtZSzIMN7dz oC5nxs6LvF29KmRP9LnvVbLAP9T/iMwrSis/yf3IO4ZOVhFKLZrTuI1Upl4PdeCqE/lz teC4puHT8KOjJXdE4vf/PlWDXDPdv502zUT1YbPoU9WWszhzZKJxdG40lN7ByXv3Nk2o Hzdqx2bAavk6U7XW4QAePCPx8bFWAJ3L2l+Se/fcw3DJ5aOaPT3Qtl/cPJZdfGtvsQD0 mJPg== X-Forwarded-Encrypted: i=1; AJvYcCVtInfJJufMObmL3zlgMl/gPDF/+QDwYEaKrOot0SETpszdoUsapVuqvrhGGBFZZUwIc3GUxnGaJ+CkKRrj@lists.infradead.org X-Gm-Message-State: AOJu0YytzIjx/q6czEaKJxfoOHfm68/TLs8CEpbosGlXbXhg4ZviB6tQ IE70V0YVrGo5EEPIgU5l24thFdymBL2Yr8PFprHWMSWcxHpDZ63X4G20GA0Z8jo= X-Gm-Gg: ASbGnctwzMghsO9xEEyrCqMxM41sDTwnIRCjvHgsI6LX6LnJ/UXr7ZH09Sj/iBG2opI NzhIBuqhvxjbOrqw1R49YPAIDFKS4XOz1yzo/dDCUWQn9cyRAyYb5kggIruQT8PbtDz8e/2xkKq oJ2GxGWxYVWykWupTYaID0bryjVgAHveiaaLpJ1LCOUQO7G0k8/W5q0TK0NZTvMtmEiy0r7RO4L V2hHikPwtIm8fVyyN6Uhx4nUP8SyF5+kYzA4jeuE4IXk4STrRBgNMrXq28vjY070NHQ/Hfd0Tw4 cjUZpk6tocn4ktLcAA== 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_172833_032672_5821C801 X-CRM114-Status: GOOD ( 12.00 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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: 13970423 X-Patchwork-Delegate: neil.armstrong@linaro.org 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 7BD34C021A5 for ; Tue, 11 Feb 2025 17:42:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=J7Ry+xkt71Lf1oGsi6A5CUWn91rvSEdxsM4mYT4EuHI=; b=czc4tt/GCKU7Q6 1ubxkMFs5uCaVKDRwKRl1A9BTDmukI2JMs3OeDOHDZIy28e3Qi9PSvB6cLxqL1dlYS8BC7h8SMerI 8EgRF7K3plx2HS/M6Dwmsl2+3f+Td+paY9ynS3iVP4kRB2HgRo2kzqCib7oXnAhmhOA4zWBt4VCIi SKWh69ndWi9wAsSh3IlG9OJiNiQHEXkfQNb9VGDv3qRza6G5WH3fjuQHpIoKFkxxO28mJTtI+Ky/K U2VGvQQx3IvYFuZ3usOvfss6c//BHCF/ByEpp4uK7Zo+dZ08ghiO6dZn/wkAbJZhqfN+zn9mbLw9E Y7Z2WTUWSc+y1vsYIT8A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHe-00000004iKY-3Q6z; Tue, 11 Feb 2025 17:42:54 +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 1thu3p-00000004g3J-2pQ1 for linux-amlogic@bombadil.infradead.org; Tue, 11 Feb 2025 17:28:37 +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=O2biH2pTKEoyD3yCVVt7sf7r+6yC9eORZimpeabOUGQ=; b=fFqCn8pZ/MlYwtszB4oMT9Pg05 R1DNqe6iVjao7rZiiEYO/NXcLEOimfTx/OxWhw1/yx7RPtel4dTNaakivVuutXDn33vDQiu4mqGKo /p4urnfXTpbRGYLCwBvDkkLEXaOlAboEvYgq1XnfpLH8ddOz1c95SXqtApFdbBJ2RFop7Q4qtfMYD Kr2JoSmBJR90MIf/aHj4u8QW9OY/w2mCVvdVexMOWaHJVNDQss9cvHSHo3kA0OPs4nlogqc233z9a stnZ45RIsPbiFvjnQKjbHrWioc+fYvXqGZErt4e9w2Mn1ILuslNBG9zJvaewKquhZaCP7L68P3uiq aqBEnOWQ==; Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3m-00000000eM5-39ho for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:36 +0000 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-38dc1dfd9f2so3886152f8f.3 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=s6SkSVQKyLtOR9M9Q/xgttBbWo3UCJZy/iKbzufu5oYFYKgTpM/wVcJFCuGvyQ70zW uePZ+i7if+dVZySLxEonlsZwcyMrLElxxROGUoWJt7UjoGTtVsQjRdRJOEL7y8PQQ3nh xlLCVDnsYshvhSFZiCy5KQ6Bs/kxnHAz45ml78pFeqd9J8ruYhZ0Z3aJrGySdxMUYW0T 5sdohmBUFWu2/OHKVqQxFO5ghhoCOELHN1oPlxLWjct/87GF2AtivA9vN8tvcUDHmdxc CQIED3KpWsZlMReuIe58r7P6pWlnd/GuvvDv7MTDkKi/svFsSaKBhlM/JmJHDXYGLcmW it9Q== X-Forwarded-Encrypted: i=1; AJvYcCUl3KPPYnmlrTgsIkpYUaZ5CWQaIaiTzKuXXLISyw57nV1b6NheWVLRrinST+A9gs805m6pNbMoDFeOYeAl@lists.infradead.org X-Gm-Message-State: AOJu0Yy/b2sHTAbUGPZVhzEzdHuguuUXgXSAAtNfstm/PKeCQqQtjDOa u4C9czWnaqUp/VpG/Zs1BNbwi9vcQ4liXk4yRfZ+f37Cnqk89kFcKiMIBbi5eL4= X-Gm-Gg: ASbGncv21w+j2SwTeweJmvpnahnrAKTr+gLS8zx7sq1afdYCCo1VjzxJRmXdM8u0Mxj sO7Gm0M0M3c4jIICMtQu1aXfPfvqygp0FNTr3aAwv+BrTxtQMcTJNPuNvWyXOys6Za8XGdAOFOM Y+eZhZWVj9x9E7Nv9HQ2VKfYEF/IWwGpV1HCy1I7Y4CUDAv1M6QiBQ6/dZ/ypUR489gdfMMSzG6 U4Ii/nxEZ4hupbbxrJJn8T+t2jHFjVGOWqgenKPfaJWX8MUEkFyoquG2wrN3gy6JPiZbj8gW7dU VjRcz+KHFq0+os3e+g== 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_172834_896814_D9F3F55B X-CRM114-Status: GOOD ( 16.25 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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: 13970422 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 5500DC0219B for ; Tue, 11 Feb 2025 17:43:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=BINfTwZzVfvkgDqdV2RH2flf/YdeHwQZitgWcwwdbYU=; b=XR6o9NDNoTpaWQ a0ReHwtMy0GpJEqsjim23nvspt5t50NBgR54rLGGtY/uitonm3lFwEAqCSo5hLCyO9tV5oQqQhzNw Kau5GTuleBEkaDi1pem6rI/TmfC2mlBKWxFAiNuaiFfys1wZ81TmP9lMsJsnooarD1DR9fawMRB+L 8+ER19fJhfNLqHvKtJKrMy7UVf8MUQoPZGJ4c5FzelU7XC6CKrapJnPWrRCG6jInWMPjn9Z+q/YBr 5kc8C8eyXmLWQTQR84cUpuRKiDaj5YI50NS/kam4u3Fb0Rp6GBhcU6iblIO4vFQCteI1+EAgDj5GJ 27sC+zTYrTj8We/0Fh/Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHf-00000004iLG-0ojc; Tue, 11 Feb 2025 17:42:55 +0000 Received: from mail-wm1-f49.google.com ([209.85.128.49]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3o-00000004g1o-2NkY for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:38 +0000 Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-43934d41730so31987885e9.2 for ; Tue, 11 Feb 2025 09:28:36 -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=UGYuelu+4Lv9PciRc4afA6kGW3tazIQqLe72CLPB7AhpP+gf3QtmR0EEl8Qd5Qr3fS khslhMUTPudjPNDh772L2MM2467d7qIiD/Hoth5NBNVR2rt50heotBl0skz8NKD+aTvB WeP461CypZnxkD1J9SnKySF7nWt6OnajwOV8jgrRapCEOR3dXqg9hLDsRNPvnsiONNDL +JR56MNJRblThi2MKymgE6+/3oEZNjNXuJCV6EEdNqRaCFri8QqIymSHl8+bdsry6xH2 84HwWRPW6LBzsulbivRZAM55Ea+n7B9c29qQUH4YHUIUNvDoiEIUVxE8st0xlP/5ESB6 0mxA== X-Forwarded-Encrypted: i=1; AJvYcCV/EAM7/l/QTvLKXTNMqAsKvEsfbTocnB4cTcHqqtQqoBb9CyR3v9/K2s2F8CtvtbdEKebDcu4pOYfrWIVq@lists.infradead.org X-Gm-Message-State: AOJu0YxnGBQk2blxjR4tWdzDgIAy3aaWHGCuvKOKBnj6kszliSajlZAH viVxTAftj2Z06wko+37Ey3/U1rYtJA2wlZ0s7rd/08DldIx6TOgLrcX24IZ/EWQ= X-Gm-Gg: ASbGncs2yiJD3AGQkT8+LTtSmt7xelV3DQvSIHVTexl3riVdqvxhLCW2EN8xqA4EnzX AHEIqYNe0I6xSIAK/KyO7xfO/nA8wt7J/UInPPnQ9GIifHaIAgcTrREFmu/fNaaX8zwOtDnERHc KZzV6GFV66LZghmNcRdbd/VvU+iyn40YfY7Lwmh7DICSL472NlwxO2DiFVS716M+Cmjpwp96nD+ lfiVuAt17oKKEd1E9S21JB2IMoKASyEfNl32U0kQ/Y+leX6VRzf1fRfd8In2G8XSKcpCY78nL+3 IVZJsaoCbI5ScK/rxw== 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_092836_641085_5300D81B X-CRM114-Status: GOOD ( 12.26 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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: 13970424 X-Patchwork-Delegate: neil.armstrong@linaro.org 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 EA99AC021A1 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: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=czjrqrhl47gPLNBrRAmnRvNPqvV4XoGVtK4t6TV7WKE=; b=hU7fTO5DJ3fV8v tM8KdX4RecsMlUaho4xo3THk/KWn1NaKRZldPTkCKDM4ydwBp8oHlrs6oJwnpiK0d/EpIjiauj6yn JHcMQ0WXPlLkxCi0IX7psz1pnmnDn+WbOEs6wnK3P9/e0B9i0xE+Caz4hSqDmMrJSmAy5FZnwm1CG WF66XonKg6VpiK75GcP5wYfk+WrOJm1e3CcYmtAhC0XUhaNoy9N1qKWghtDwwfc4BZivgEIdauSEP nWq27VzqgSc/9k/we3DkPzhFCSPgOPwQfV53quKsabykUnp3cGEqlD2UdcvoTdcUfwlv455aQmq9v n2xFa7FLERPTgZGQ3M6g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHg-00000004iMw-2Y9e; Tue, 11 Feb 2025 17:42:56 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3q-00000004g3T-2DRk for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:39 +0000 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-43956e3863eso4843595e9.2 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=byOgN7Xy8jlT5LceQD825Je1Xmxm50uruCECvNZ0TqfB9nbdT9ki/Z8O5kzRRuwJfy iYbAhNRwbMJvl7C6d9IbgcZG7bt66c8VpF8CEvkV19npw4gAGWgE4pbUVx03NxWccOyr hInGlrDXBAhEV+7G3BEMDL0a1g8HGXFHdSA2ZW5tjMQYFSNMJ12evH//h9XfHF3tPQna z0Ea50yDE53f0FHPvN5P8Z2E4xwmg3916F70KEbu9tjet4JLUullIQFBgxo6iivl4lOs mbdTymCTlzoRVEZWsOakRzID1dgVYuJ0TZl9LuLEcai6UChLYxsHMBomJNOA4OeSjcis CDtw== X-Forwarded-Encrypted: i=1; AJvYcCX1Py0U6ViTMYnu4jTPOPG/XiQfLFVukHXsZuH/B9ad/YhwFMCgmtnsv9P8Q33QQujx1Elg3lEhPt91pLIG@lists.infradead.org X-Gm-Message-State: AOJu0YwaMWeylTEYSedxa9bYU38gjlE7cod8EMH+pMWX3NOuDG3umN0o FNUPqbWtZ9QaJTogjIIcOQuANjYGMe7X5qG9wUJf/aw+bffSWQtRKiaTmGMXo0o= X-Gm-Gg: ASbGnctYD3H6i0znvgvEyoqyDKhOWkbGuPQze0qkzyd3xeKc1I+empwGVYg38TDN6jc QOd7LZFwF9/c//kSCga0f9UCp16q9Bx5fYlny6dWnfAepdmgUq70UXCjtlorMx3dKtwOEvvHS7k 0JG3K1kcYm7rqAMIJV/pwqegu+msytVf9XhQgap2JINbG4Hf2jIi0DvOvbbmgWgHH6g9gpaBzsn BJau+yU9VxfGG7N3fC7Z7sF8UH2B0s1TpNaQpcUlae7szzVva46ocGHVRb9mmrk4tcboPNfSbAc TUaGgONzWwDbzVHkHg== 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_571317_9CB78BD2 X-CRM114-Status: GOOD ( 15.52 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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: 13970425 X-Patchwork-Delegate: neil.armstrong@linaro.org 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 9492BC021A5 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: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=fL9VtsftJz8sB2dK8LHN8HrrKnKQr02DzkIZFuU6/Bw=; b=0snri42JoWvdMb zjB/e+PGna0eGsVcA/0C1aUv7Vj0k0voTScR0RnuKTYlnN5bl9eqvKXbThoCGUCoQZYcDFyFA4dTB 8rdAOMW8v7Ztu5G1nvgdD5VyKJPqcQ2nwwtQ9wB+6utP6+X6dEJvL4FWpezEj5/0OVrmgcturFzTy LaNJDR3soyVmMojJ6atXPc1Slka0OCQeNK+D+7LX6iBINcjkWBzKlRC3HdqDlScrEmmkIoV7z2Sbs 4MZ/wVMtSrQhJahZit0+b1riD6tSIzKooSPETsRbrcjqydnaJzzL11+aI/ujyqvXa6LTFMweq7qM+ ulPTRg2xz6Hdxg8qnZcQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHj-00000004iSG-3joD; Tue, 11 Feb 2025 17:42:59 +0000 Received: from mail-wr1-f41.google.com ([209.85.221.41]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3t-00000004g5z-0GSe for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:42 +0000 Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-38dc5764fc0so4463724f8f.3 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=vB4bysCiOLTdZGAv3Yb296iepwW/pDD/H02ng5t17/5O5eOXHUI3nAzP0ipg5wcRlK tVh26hhraye4WIAeirm8mloZongSEhp+W9fcK0z+GL9N8Hmp8c2qKz/4v3vxVs9dpES0 hnrMHnpLIxJ+/mb3GqH+ea7HztFuNQ3Nzyzva1SAFt7Pf9GPVhAuG4XAujrrT4Fplltc q7w7QA709S62lSEQEeYZMFvgVXDWwv4XyyHFgsIvcf/tR2T2BcOG8+dXnSkkgZ+sf3Pm 4vwx559plGnsEH7mWz1HL+CEEhjY3IR4CgrCS2NAmnwVWdBSVkjuostD7GMa2n2TbALa BfDQ== X-Forwarded-Encrypted: i=1; AJvYcCWJ3Myu3FjMNmRlIa5HSi2LOLLAbpC0iflo6oXKt23eMpYCWvzTqw5f+970Ia6ErDVE3BW4IhmU2c0tJDzn@lists.infradead.org X-Gm-Message-State: AOJu0Yzi6JrS4fTbT+LV26PeS94CL/tDKK0Z3tIGbeT9fyATvAoaXtpC 7hNWAPXQFxuhk24iO2rZqe+HP4nyeYx8YY0qlmWuGdPPrf8f8zjWOoE3wizmjZA= X-Gm-Gg: ASbGnctjaKEg5Ee2xMjYYLnM+k9IDr9P2ASIIt4Cs8nmoheKBca03zDH9BLwKEcQP6/ A0PY7XPn38i03YlrdTWtUlF4vPKGzZzShxZxMk76qENPz9kH0q5lu+aK324aX6jIuFST4PBaQQQ EIB63+tCdnWm/FhsTluEbykDp+uFRRvZTQrt2rYZOyxvGZMvNNwRAYml7eguks9gC4qD/v5GQ+e unRpbSHpkFw1Yh4Usy4Ch6KB7saYaWRvfZzj6LGqRUvgto8u4gafgCphht+J3oVa9htCEMZ16ei btpOAVOy8h+jhnXYaA== 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_092841_102051_6B1BE2D9 X-CRM114-Status: GOOD ( 14.67 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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: 13970426 X-Patchwork-Delegate: neil.armstrong@linaro.org 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 86885C0219E for ; Tue, 11 Feb 2025 17:43:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id: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=+3HQDJJbzER82LiYRfEmX2NeqT9w8y/BKh2FUCMtzzM=; b=zMYIEqP4WTx9dn XBKaBbxYLDDeRLv2AvCiMQUgdLgLmvBJa86sWFWeconRfDZuVm8baGaXoBEgvXp3GYAgptu6qJjXD Bi3Rp5KlAhYygcAQd1KlgcXatIcIYfm6/QCrm54EChF2dhyxub13rT2c5pq0Di69I8UFGXW7fgoLe 4ZrvYnaq0Xzn6fAAmVeyrEMVipP55fj3Z6krnAMEwOUqfNUbK8NfRSd6nIBQemI1hd5wqYc9+oIWk +qnFPnA4D53PICrBkAF59gz2oy8adC9j8+1bg1JnaPT4iUyiQVJWpnZMOgqsGG1hBH7xL2U6biRdI eClGLGt2R0muluWsSLXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thuHo-00000004ibX-3du6; Tue, 11 Feb 2025 17:43:04 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thu3v-00000004g7Q-0GPH for linux-amlogic@lists.infradead.org; Tue, 11 Feb 2025 17:28:44 +0000 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-38dd006a4e1so3096499f8f.1 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=K20JhoUMqDw1B3j5XaTOPSyeUmxJj+Vk6/czEZ0siDOB4bR7zessXwfDovP6cRaa01 l+6/kitDgRmc3Wp2G53ucZcvuryVb405UGHUtU7elongUA4NPCfWpwOgRje7oWk+Oh4c 6pnXW4UKSlI2fCi0VKdVfCXEzdwNJRCJ0oOt9GAEH6FeJtMHqihdI+q64yIKKF7ZOj4W r2FOtJrKLMCYODbDyCDFYx8wwtQB7H8luJgUueSt2886MIXpeKjiSkJZYN9CsPMzALB7 cYLz7XSHa9J1+xWdCP47sIumY2IHMoPqFUwFDP4BtWoD96IQc2/6d4+xkoAHqADVvhnp aMiw== X-Forwarded-Encrypted: i=1; AJvYcCXpiuBIo9W5xDg4YPb9kb8wIKL1v6AN9gVjMVYOVee5QjRgekPYcZx5na4Y7WzEULgr3Zg8QjInGE8MPp19@lists.infradead.org X-Gm-Message-State: AOJu0YwanDNWdm75LkNZkoHb/pzw+pnkgSLbEnQY4K42FweEpyKD7Iim dyV8Pwjn/TSuMKjdfmiJW6DcHJz4k+kte2yOOBJGtGsWo8BVEi3S4zLil7/axX4= X-Gm-Gg: ASbGncsXeyLmEFexIsraUm+W+byi8VTss2SupQhVHy0YgZ/KlYpUr+gVKMEANo4c9h4 pji8Zsz8M2jryTQmwORGnvaBTp2VCpFlWNNPHhgPT1nJnwMB1J5Do5ss8AWV9N8cc4LYH47Gmw3 45CVaVJnia1t358G9WdS9AeLZrEfLoQIt7pj2tjqMBYGzuVHHiaM7NpU5H6Y4NjjLIoTQJEN5fl fQ+aetQIvMXdAAR22EBeILTiBKYHt6x/wAeBxXpDz2Ynd9iccnuzDXFkhxbncC88ptcKuOFvCsz VL1jLTQvLKm4b/8spA== 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_092843_103584_6CD761EE X-CRM114-Status: GOOD ( 28.92 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=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, };