From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6ECF5262D1F for ; Tue, 11 Feb 2025 17:28:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294912; cv=none; b=fmQSJZff5q4rfwjPpHDl56tByqec2ta6hQvnI04BkqkXI/EnsRhud+kF1gGRTJUWn+ibR6OPPbwO04hLYccoaF4q6gzyX7TsQ6ItBtUkS172/xtWnMzUS/sixd9cXe7sMSrkYi6w+uKhfOGvRmAXPUKU1xs0wgd5Rrddx2ZpWQ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294912; c=relaxed/simple; bh=L2mc7++2m+KbwXPJfmeanEsMndjpINIhEyR+p/vnM+0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=c9w0kxUrpTB3DYtkNtBsSi7gttKepZo6Q8KcXlmM3TL1WOBMJ2AoL8gjg6M1Q8rzpcnkk1d0nNRTQ+4eWA/qnxcQ8LxfR0ofGHCKyPCl+KQR9QlQuaoWSyOtgSy/fzzBQVJnrvm4h5nVYVx6Vigltkg3IbfFIeXIZDbqUI0nJ9w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=1lj36ybv; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="1lj36ybv" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-38dd9b3419cso1590737f8f.0 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=1739294908; x=1739899708; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XRpmne0VBcJf7jZbKVrpAIB9gKqtJmCGDdvQHW0V2jE=; b=1lj36ybv8ehI1EmP9POxGYUnJlpMgJ2VaxYYJ5C8O8gwUTksWJktowggU33wuMqWd2 uHm8AjFVEVAvznhkjiQ1461M0aya6oypcj0PRuUIOQNDKKv5qm5lHosuJhhD38oPL057 doixQVrvZL9jHcl0F5dwk7ikEC3ScZlle0H9DOs8r/3aoY8HgtneAb4MkaSFsc4f41a0 aaYwvkXmtNsVbYZjYx1FMYXOxbuD5CiYcL5S8s4QuzqNp6C0E5FWBY4B6EmvZmyHaaDM DqH0tN+ibGlDpjJG8ia6kzjGZSAdu8TVdrmc3r7rxsCYvEMRSM2pFxZ8fWBjqqjE8FQY bqqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739294908; x=1739899708; 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=QF/MldRa/SWx9xETyw146Iv4GhsOyH/B2DBiXwj/wBaoXCY7XaPDZLJzzzeXTsX9ro nLsA85RDUuXJHSMKvY2BIsj598wIkbWVfu2kyEZ6EhHAf+w4r+LOXznqHbdiaBG21RRh dEd+cUErNGZhrU8H2FtBf2okRkLqx5DnxPwcG+PN4niQeh30ze2TGLpx7cRXRZ9EPC5z DI2uAUOa3nT/H3xu/YPIdbWBLU3r5rZQvCBn972ebmt3zIntHrKlNbCMPt1SYpizs4dX vqWXPvnNSxzcCYsD2DXU5AZ/3lmncqoD96iDSeiHoozSeVMMpcn6e9ogMbVtKToe/V0z P4KA== X-Forwarded-Encrypted: i=1; AJvYcCXwHQYi1y/5KPdMPZVhJp12T3ERsMkXkej0RjsDF9L+r7wObTNKznIAytkj3ty9jvGbhX4NSOU+FqaKRIc=@vger.kernel.org X-Gm-Message-State: AOJu0YynRz6hoDLAPxW2mzFDPmoehn+Ro15Jrn0RIoBqlbQV3APbqmE+ Yhkh5THcGZtavsRXZ+T87Va+kC1bIjlF22qptOdjD4AZfTygFkUT/eNAdLD2lFg= X-Gm-Gg: ASbGncvcOYbolbpJy3Kd6XvFY2wzRxbdoL9DRLZnM4l3b5LZ/e7irwM1J6gl9jpM1wy tovQ5Dp2MEub4fk5tb1pUCuDAEjvlHAWmZo3P1Zrh1fuCnibipqla9p+48qyFNIp3pl3t8kC8D5 apz39vR5E/KpOej/8+Xe+rIRHr7IHzLeqE9MnV7N7xcWMJhk0ATsCKqHyoSee4fWTxDcTCsHwG4 npOziF/duWM3mGBcQnBi43NzNu3Fjh+nW9exe/1MXwC0hNfXMP846LNmSioJKC95/vUY3or0d/D H0nXLFK1aHh5P21FBg== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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..0f697c9c243dc9a50498a523628= 06db594345faf 100644 --- a/drivers/base/auxiliary.c +++ b/drivers/base/auxiliary.c @@ -385,6 +385,94 @@ void auxiliary_driver_unregister(struct auxiliary_driv= er *auxdrv) } EXPORT_SYMBOL_GPL(auxiliary_driver_unregister); =20 +static void auxiliary_device_release(struct device *dev) +{ + struct auxiliary_device *auxdev =3D 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 =3D kzalloc(sizeof(*auxdev), GFP_KERNEL); + if (!auxdev) + return ERR_PTR(-ENOMEM); + + auxdev->id =3D id; + auxdev->name =3D devname; + auxdev->dev.parent =3D dev; + auxdev->dev.platform_data =3D platform_data; + auxdev->dev.release =3D auxiliary_device_release; + device_set_of_node_from_dev(&auxdev->dev, dev); + + ret =3D auxiliary_device_init(auxdev); + if (ret) { + kfree(auxdev); + return ERR_PTR(ret); + } + + ret =3D __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 =3D _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 =3D auxiliary_device_create(dev, modname, devname, platform_data, = id); + if (IS_ERR(auxdev)) + return auxdev; + + ret =3D 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..c098568eeed2a518b055afbf1f1= e68623a2c109a 100644 --- a/include/linux/auxiliary_bus.h +++ b/include/linux/auxiliary_bus.h @@ -254,6 +254,16 @@ int __auxiliary_driver_register(struct auxiliary_drive= r *auxdrv, struct module * =20 void auxiliary_driver_unregister(struct auxiliary_driver *auxdrv); =20 +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 d= river * @__auxiliary_driver: auxiliary driver struct --=20 2.45.2 From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60C2D262D2A for ; Tue, 11 Feb 2025 17:28:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294913; cv=none; b=VzHq49/w06rkCMuio0sfVelVV1jQybYDN0kLFIzx2b0wZyoYdlQ5gzShWJxHcZyCH7V4t5z7jfPj33pFXuBWOoXwaSoRnxMDDjIsBml0mOVJDWhKYKLwBZzJ1Z7aof0r2lVhY4qqCBgfq6yIGNAnHHDTlh4vEuFLrMtRGRoQbS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294913; c=relaxed/simple; bh=JaT81TlS5JMrK8kOZ5IZdpgPZCU4QD/jFNP5Hu5Ari0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HWcZgGJMZwioWFkpXuGmguc7jyy3IVUfl6OAGnpM4ngMlZbTsmZbslpWIb63LVBffAUsn0ooFmXK/ElQPqviX0IkYhUwmdesqrkoKO5Dmo/Fg1a7GJtnrXXuoQEU/lE14rxxVpvIr06cbSyvLnKQSuH4LixXXTAf/p9EORzOhKg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=dzKp9Uga; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="dzKp9Uga" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4394036c0efso17633105e9.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=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vS3u0ChTSEKOd8+Sz6F6ngUlw65dB3dACQW1SqE48AI=; b=dzKp9UgamZyHG5RUuhYq6yRHit9jyAS3eReyoagIqHpO4CBGPhdGThhQB3bUehmaQk y7XZn8rHeNIeHXU1P65sc5N7C2E88qcF+aeCTC9JUzFYGvPpsNg9tV9rhIAg+vRMiEyY uT7gkfdCcDON5VKnse5dK+i27Gle+zxgENMjS3z0KMbZm0/LSbmW2q+ysIu63kc5/LAy h5zFyR9sVEmkWyF6E2IXpEIlgrN5RbmwcnSXl5T+7VHDH3Gr4Km0eLvxFUKnnLTuXpNa o6yIt20gBHmiF2rXQ6J91AYIrMdyGOI7vIGOQeCW0gkxxtCuWxbmWZsej6fhCgTdPqo1 y7Ow== 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=oTvA9H9n4sBO8tQ45KqMYc52gCd5ctmmSndV1vicbQOX1OH7onpjOvFyj8a76NfQR2 0UsZePn+Bi/S9xolz6s+fkQVy3Fgrg2t/9R3IxXr+BLN5iAvGIUCjxeeHzJert3pf1ek wZjSillRuNycrkrUKf3ndR0bdSd+4QQl3mWCG5fDQq5CtBvaXpBqFcV7fHXI3/MFrPjf xDwjEOeEMHxxx7RX4VVinWJLdfePz96QjZeK32C+Poeaw5UqdptZBEifa0ZxOaoQyvXv POLkAxuIi14FsGBZnV7RgGUU9nulgs7M5ho93Mm+ToMA0qBc3PjbS5+EMav8mbXV3m9u fiig== X-Forwarded-Encrypted: i=1; AJvYcCXqECFmhVfl8oK7DSGP7Tk3Egxvm8MLJV24K5jiTgSASJl6RIaDzxpvJhFc6nog0yTtp+oRXOG0oH9THi0=@vger.kernel.org X-Gm-Message-State: AOJu0Yze36mfuQJmRqjP5aEKapgyu6nSYxehVV2oDQaBN9aEPZJQQPzs yuKRgjl81KxxBK1/5I3ERjePxi5J59/KzAIt9yO3PGJirECgVg8zfGr5FyrCFgc= X-Gm-Gg: ASbGncsNFhXjl8qkinMo2sk1DVmExDTFKWZgg1oZrjt5II6rEeapbFsybdHaRVEvqmI zAswqmmp3MsMi4SH+JLlC/OXH6t/u7/ikDeAhOestVFC1tZkKU5MPsgm3PJjsErdVJVAtWXhYzQ pAXZvO1/zRDrB1iLUWUL5Eu05f6dYSvIbsPcqOiEy877aE92889A9qL3b3zZE74emNFK4yJjZ/K 8sRxuw6GrD9cajwaj8Y+aqFgbMnwwbwP/UU7jCNWU56fqncuyR/rXPF9628QayhTSRYX4KAjiT6 zMO1cwUTnKCyn7gndA== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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..bbea64862181877eb7ae51fdaa9= e50ffac17c908 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); } =20 -static void mpfs_reset_unregister_adev(void *_adev) -{ - struct auxiliary_device *adev =3D _adev; - - auxiliary_device_delete(adev); - auxiliary_device_uninit(adev); -} - -static void mpfs_reset_adev_release(struct device *dev) -{ - struct auxiliary_device *adev =3D to_auxiliary_dev(dev); - - kfree(adev); -} - -static struct auxiliary_device *mpfs_reset_adev_alloc(struct device *clk_d= ev) -{ - struct auxiliary_device *adev; - int ret; - - adev =3D kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return ERR_PTR(-ENOMEM); - - adev->name =3D "reset-mpfs"; - adev->dev.parent =3D clk_dev; - adev->dev.release =3D mpfs_reset_adev_release; - adev->id =3D 666u; - - ret =3D 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 *b= ase) { struct auxiliary_device *adev; - int ret; =20 - adev =3D mpfs_reset_adev_alloc(clk_dev); + adev =3D devm_auxiliary_device_create(clk_dev, "reset-mpfs", + (__force void *)base, 666u); if (IS_ERR(adev)) return PTR_ERR(adev); =20 - ret =3D auxiliary_device_add(adev); - if (ret) { - auxiliary_device_uninit(adev); - return ret; - } - - adev->dev.platform_data =3D (__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"); =20 --=20 2.45.2 From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D22D2638A8 for ; Tue, 11 Feb 2025 17:28:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294918; cv=none; b=b8wcai2MB9QQPw8eUMgzCwE0uY35fzxmjCaQvRSyts5uD0WSEKRyZDyaBVBHRmDZVf4qo+uH6Rl1m0FcfIjrRsFin+bhwnEP/2793UCpb/81ZzdXdQt/dBYe1gGOJs2Iv63msP0xQcTVIEw1S0ZK2t4mLCLg3rG2J6UhnLmChZU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294918; c=relaxed/simple; bh=4I/YUW3hUfV7LW4vqIimfK2wLippJhEosTDRns8e2Tk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=skO6ZpTEXN/3KGDvr4l/uM/JWK0xGOKCfAGN+R35NAfgWyv5++juRneAkcuLFjZXCB4nW9dr0udxIWIlolwuUwU3vxjoQBsg7SYGca8fFxy73zZ8SEecmKqQezBmZOPVcCpbX4i+4kQGKdg0sYbmQXTU9UQyzUIfLeb4KHB35zQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=SjDKsjlf; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="SjDKsjlf" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-38dc9eba8a1so3722663f8f.1 for ; Tue, 11 Feb 2025 09:28:34 -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=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O2biH2pTKEoyD3yCVVt7sf7r+6yC9eORZimpeabOUGQ=; b=SjDKsjlfU7ysmQrydqCMPSMIAFoaCWi42m3TnHTHDXbczuHFXOhJ9c9T1xTF4JPir5 pjuF1oWC7teFQEWPpEn7EqmA6gathLcDqWc8tMLxXSzJqukyN1dpWiddaE2hqC/DsoMp GasDLhsFKLcCuvdhz5O6/gHuh3QF8uzuymwC9jnBqhOVHsv6jmGB+sh3Mq2wMceHNaMl 0JPKe6mIAH5y38qwmMK5Yv3IB7fN8aRf8/i4VBIRxjkp3v92BstRt6oeb2b7jHsKzrAl 6uIWggib/y2fBAvYsyZORLryQ2P3QOnfRVn2rxf6cwfUIUsd5E5ZOm7N8DdINc565jJu v1pA== 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=GnOFsTeQ1JJIpl+qopjJoGxqcLdT+3M3OsvnMp/x/QDyJSXi8lguoYTDHbya+a2eJH xtJWFb+6CyUadA96KNsDljp5P7SNuVP2vwyWTQmABWkRabB8IMiELesMXeAIUH2S6/cA XsdJfUk+SrkKKaL60Sq7ubA1I0aHCWPXPqUXRuGMo2p8mKCdeuBUiZaREidbYtOCsJfO L60yyQDs/PMrSRsoB6dbpNLX/D56UfDJcXIoxK9l1Mm1eO4eEuQ7zwURtIwqnIcAydrt PULOAqqyFk0zCYnVWOB5SWO/wPDPi6GzJvDzDwqAGWKgrbWcyMUX/yk8Od68b2V2oFOQ sJuQ== X-Forwarded-Encrypted: i=1; AJvYcCVH1WKe8oqUV2A0BGsccLB90Ee45TrZufRvHyNzlADiO4zbSGfCiisYuasMM7u/8ZdPcJ8Iy8EhwlxFo9c=@vger.kernel.org X-Gm-Message-State: AOJu0Yzvwz9pR3sonIw71ecRFB/OjPHEOyRALgNhOeoNLFYgkMCBI56x 9KuYdKV7rKlTRpmhdPMi/njQ4bovnRFmnf7sPIPiVgu1PmZAbmrV81Nxdp36IRk= X-Gm-Gg: ASbGncvx5qmkYhA0nhwaazgSGoG9i+/m1PAyc1QVfD3F7HQKoSyPQjikoh3m1COQGau kK0O/HXDrJsCU7EoiTlAh19EV5rYvC+9GoMa1k6Dptk7vn5sVJG4uVwTnRnI0dgZBadaun1UC1+ iteWfabazYZFx+jIqlMHXeECVyDf1mNGvhgAzBFVU7pv/JNhjgFNQDvd3QwDOJIfrUIY2ycFikd ETZp3xusObLOckDUYTdgIojbJMRt9SaHBDs+gsasUWbVqGSrhJOA3lwcJP78BGvV0Bq2Qjr7951 4pRptrebUOHRRK9sPw== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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..e583b8ba1fd4f27d98e03d4382e= 0417bbd50436f 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_sn65ds= i86 *pdata) debugfs_create_file("status", 0600, debugfs, pdata, &status_fops); } =20 -/* -----------------------------------------------------------------------= ------ - * 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 =3D container_of(dev, struct auxiliary_devic= e, 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 =3D pdata->dev; - struct auxiliary_device *aux; - int ret; - - aux =3D kzalloc(sizeof(*aux), GFP_KERNEL); - if (!aux) - return -ENOMEM; - - aux->name =3D name; - aux->dev.parent =3D dev; - aux->dev.release =3D ti_sn65dsi86_aux_device_release; - device_set_of_node_from_dev(&aux->dev, dev); - ret =3D auxiliary_device_init(aux); - if (ret) { - kfree(aux); - return ret; - } - ret =3D devm_add_action_or_reset(dev, ti_sn65dsi86_uninit_aux, aux); - if (ret) - return ret; - - ret =3D auxiliary_device_add(aux); - if (ret) - return ret; - ret =3D devm_add_action_or_reset(dev, ti_sn65dsi86_delete_aux, aux); - if (!ret) - *aux_out =3D aux; - - return ret; -} - /* -----------------------------------------------------------------------= ------ * AUX Adapter */ @@ -671,7 +615,12 @@ static int ti_sn_aux_probe(struct auxiliary_device *ad= ev, * 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 =3D devm_auxiliary_device_create(pdata->dev, "bridge", + NULL, 0); + if (IS_ERR(pdata->bridge_aux)) + return PTR_ERR(pdata->bridge_aux); + + return 0; } =20 static const struct auxiliary_device_id ti_sn_aux_id_table[] =3D { @@ -1950,15 +1899,17 @@ static int ti_sn65dsi86_probe(struct i2c_client *cl= ient) */ =20 if (IS_ENABLED(CONFIG_OF_GPIO)) { - ret =3D ti_sn65dsi86_add_aux_device(pdata, &pdata->gpio_aux, "gpio"); - if (ret) - return ret; + pdata->gpio_aux =3D devm_auxiliary_device_create(pdata->dev, "gpio", + NULL, 0); + if (IS_ERR(pdata->gpio_aux)) + return PTR_ERR(pdata->gpio_aux); } =20 if (IS_ENABLED(CONFIG_PWM)) { - ret =3D ti_sn65dsi86_add_aux_device(pdata, &pdata->pwm_aux, "pwm"); - if (ret) - return ret; + pdata->pwm_aux =3D devm_auxiliary_device_create(pdata->dev, "pwm", + NULL, 0); + if (IS_ERR(pdata->pwm_aux)) + return PTR_ERR(pdata->pwm_aux); } =20 /* @@ -1967,7 +1918,12 @@ static int ti_sn65dsi86_probe(struct i2c_client *cli= ent) * 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 =3D devm_auxiliary_device_create(pdata->dev, "aux", + NULL, 0); + if (IS_ERR(pdata->aux_aux)) + return PTR_ERR(pdata->aux_aux); + + return 0; } =20 static const struct i2c_device_id ti_sn65dsi86_id[] =3D { --=20 2.45.2 From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3370526216A for ; Tue, 11 Feb 2025 17:28:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294918; cv=none; b=aA1kcTtJvgJRwSRVxT28TixuWUEsfXIMjUU4qzwjQWSLjs7pL+rY1PBkpWifPVfphX7ECTSsumjvmvsUsvCvpIWVlUwjEOzmukKk8dYrCKzLZEiQlTVkXmyL44fdcQ6SsQ2wuAFIs77TffsqxnAuJu8T2H3/uMlWAUjB/Q+7+Oc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294918; c=relaxed/simple; bh=qoSrX8iU6ZsOmDdt2vcxpMmdn8e+H5V+wLsqMb+WXTw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SLTEMaWHp3QHe5N72n1tdxe8UCY2KUlGJd5G/KnYS4G/YYo4jXHqw3E49nufnRXbCvakhI9Ex9VHA2oPZYiFtHC+9L4AqqIpfkbOLw/4KuXJJNwihFO4aj6l59+4TIhtgs5q1AX9gbpZGIMd3FXUpdmOXTaHjPVBUvRqfOXTDho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=A5L3XSOE; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="A5L3XSOE" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4364a37a1d7so58130965e9.3 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=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gDYe4zVCJHl1J7zmO8YwQPUsImFhukXxkzdj3E5Ja/8=; b=A5L3XSOEaczVKW8AeMfejVaXZdguYtpi/ASfz7IMcWD320p4Y4/TWOMkA8s5UEHg2T 4T8t81j0xe+/6RPMMF+j5R2yLS97dc46a4F5r7b0w1gHitT7tdIBN0s/6rP8KnO/IXSv 2Ny/LiAN2dWspjN1+M+P6lOyWND23JYOcjIsw3w8dz4iPrmAwo2t5MsdHiQFlOdV9Wql hCjIcBoPjsWL/vk0vWqsyBCV5Xg9TxxU2t5OlMcloo2l6XQwyLhvyPl6iWWYvXXXopPj obYtH2pBgv0bd4Sa9bxHcEP/E/X/3/00kImO6x3SH+eH6Myk5+3a+RuSLvDjuoDAPdPF 9dsg== 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=aoeJAyIen5RAn50ch5aAwtYK4gYPFAOso3PhoD620KuqDKsxxdsTHY4TIpp0/YoG3A oi21zULe+SSLpy1LcKhikzlv6gb5GQU5V64YmliME2sKP6ZurT2qGFqIIDoIPY7x8bJJ e25xyEsaLCA9MKPxOwIvOzJ+15bqgTml8qRyJfqjByHxFE8x5hnBLQx8LZ+aR8O1ffLi EzUOuME4bEX1x1ZttFXLU+8SlBme2WCC1HppRyVJRsZE5eJyKs+HSWsZg7FC82sVXQ3m at1zX6BtRHGrtaZRDjZINIGMfficKuQxUl/X2fJG2i8Dhg5LdxUPIseTMagnFkduq3ZH vzGA== X-Forwarded-Encrypted: i=1; AJvYcCVhtt5nwMMk9XmFB9HzomaWv+TOgN9nSAv4+fLtWDabVkJzMac5zRDUhUqoQieeOFHANHiirmqCC5FqUFw=@vger.kernel.org X-Gm-Message-State: AOJu0YxwYLmyuADLGHxRfaKaBtrv1ryAiPUqw8yVQDxMMEpZ637mnBc1 h6BnHKFydYV8Jz/mEtxrCgP4ZXVrGT3EUj2zjaxFminR+EbkAxGnpLoMfi0JrJE= X-Gm-Gg: ASbGnctsYKQ+8wcerRW2JsTqzmmikH4ztusvfwy0xS2tqauRtbM6eM5UiyboeLubndQ XY4WIDZg6G9YM8TjpjJkF1P7/dSJcWClPBec/Z0jxsZbqDQn1f2HD3nKsiCk4ctGq5hMwULo5kJ P/+hrwXUgSYz+OQbBfJkQm3/4IS/3p9k9sDM08zXJVcYWN5iHnNm3ZtDG/ogepKannOGalIx25R Eha0UgKGt1FB3Tc6bbyMi3R7k3YpcJtYh5KgiNiUXcAAUYcwMuQbNGQi01Is0OvKBSxhmaj8RCQ Rmmm2c1Y/c6CBGJbaQ== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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/a= rm64/lenovo-yoga-c630.c index 1f05c9a6a89d5ee146144062f5d2e36795c56639..921a93d4ea39ac54344cc964e28= 05e974cc7e808 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); =20 -static void yoga_c630_aux_release(struct device *dev) -{ - struct auxiliary_device *adev =3D to_auxiliary_dev(dev); - - kfree(adev); -} - -static void yoga_c630_aux_remove(void *data) -{ - struct auxiliary_device *adev =3D 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 =3D kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return -ENOMEM; - - adev->name =3D name; - adev->id =3D 0; - adev->dev.parent =3D parent; - adev->dev.release =3D yoga_c630_aux_release; - adev->dev.platform_data =3D ec; =20 - ret =3D auxiliary_device_init(adev); - if (ret) { - kfree(adev); - return ret; - } - - ret =3D auxiliary_device_add(adev); - if (ret) { - auxiliary_device_uninit(adev); - return ret; - } + adev =3D devm_auxiliary_device_create(parent, name, ec, 0); + if (IS_ERR(adev)) + return PTR_ERR(adev); =20 - return devm_add_action_or_reset(parent, yoga_c630_aux_remove, adev); + return 0; } =20 static int yoga_c630_ec_probe(struct i2c_client *client) --=20 2.45.2 From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A883B267B60 for ; Tue, 11 Feb 2025 17:28:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294921; cv=none; b=d7OyHeXXoE+oQcO5aOMc+tOyVhv5LPS6fcTQQg9EywTRghDyE7Rd2U775DURn/dINsELmqi1AOinf3/ppxXKxP3yfmxa/9qEK3BJ+UfRU5bSkMQ5m641qDl2GfF32C87NuUUXU9eBDlpEsWYVt5TRFEk3D3+cs10A75k/9A1BhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294921; c=relaxed/simple; bh=aFYZ6uitcWrrRO3QpVWn0nNaiQ1LXsJLRLMMtNT53bw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ngylRGg0/MKW7Mu7qJIfEd/c8bsqrNxRiis9o8AG6j7BfvZp2yYwan0eAwXH+Jap9ZZRb7MyorpXHuKk7gcfOnJxOkzujUk8xns5Za+LwR+G6kl1Kk9ncCxB8q5QJaS1UuTFlvTQ2XLN1eYbvzZto2w0VrnVu6XrXTgXpYdbsbU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=y0kZ5zRr; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="y0kZ5zRr" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4395560cc13so8261645e9.3 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=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q9bx0I47Tn6bEo7jRo7TyxG1K/HAB+sHkf2wm2VOOzI=; b=y0kZ5zRrZbKjre6Af3KM9mVrGwD0XIhOE/W9GTa8GSTXn77L3dSbGLeTfyM06KDPT1 UXPCOthHeq8KynXbxiYlghVazAHp67pmdBvye/PRCShRZheQIRJVeAQkJQ9VRhkScgN3 iFF++vTdBI0t+UJQrmy9Ta7hpOO8mH0IJMrNIBWKNN5CoRHrs1KEeT9F0uwlgiph/v5o O3dX9hZs7k7o0sDnZBYsUM5RKUxMwwLjZ8RrHKNUnZeOqk3u/urPalIEOiPmv0q04O+2 W9mhyasJpW7ga8p5nLHvzPkWteuKo4ilNVVcsZhichvFb4jGHyesIogAPtJ1pK39puRY mSOg== 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=vPN9b9esXwDZtjecLyVwAEdP38KvC3t2brKakxx6x0cXaEWFbZYlbsDV3uLd3xJYLE ABAcXMk7Q5ZoyfGON8j0oTsRUoZ7tnr0z6GhrTYfGcCPaKx5E1zN0k4N1IUiMlvHm3bU oK81HHPaRzFYdIk3QtKE3030n/KkZaVwMiHYWidfYaetiVyV/LFLfPCe4dHqmPlzF4Q7 j7Qh7ZU/EQ58Hg3w2jejF1CgX7wNApavkxJ/ngVUPV5qopCAcFMGnaTc1Wxion/3vsJq Ht0UEB7vnunpdLuKLR4Nf0V7Yd+tae0xruvapVIX114TtR8xiJdIlpTTNolm5U721hup YFKA== X-Forwarded-Encrypted: i=1; AJvYcCUPNupTYGhTKhWomBcBnUIgB7Z6aF66RZTnN89g/6TIOKejipsy+RinR9sXP3R9StXv76U5sXOE/nVzl2M=@vger.kernel.org X-Gm-Message-State: AOJu0YzzbuDxcOHG8K6nJcZJNQtWzKsTl+8s32P1dVPHvqsqstHXlI9Q 2Wv4o6M34CGWuEtiqm6TITnYLweFSYO3redvIw5h0BUl6/fD4i4TwE8sU4cVGmc= X-Gm-Gg: ASbGncusmX1P7JqWv2LDXacKq9RosAoudtqMVkNiM3DbvXEgce9hJF6gbIhmYbsWw0Z kyrKIedV5baQpRMX9hTRrPdDoUNXDeYhPPEpWEYDsVS09O3d3ZJTjETrgabARD+Wc65AVktjbsX 5vbk2gv0wOJkO8h304Qbqp2YKgt7V9DKirGJsEJ7CGtHL+HaK7LsLwHsCdL1NHDzdHSiUF5Ip36 7odFe5EYhSligtwYB6QhoU2JMo0BF+fjO9OYV4YuAqR+fiLOP4hgkyCZI4r9du7fYHYEZfCbIyk ijL7TON96Q0/ceLkcw== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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=C3=A9o 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..37e76ad3fbe95ee2dea7df8f6b0= 2d28f19f1d5ef 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 devic= e *dev, } } =20 -static void eqc_auxdev_release(struct device *dev) -{ - struct auxiliary_device *adev =3D 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 *b= ase, + const char *name) { struct auxiliary_device *adev; - int ret; - - adev =3D kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return -ENOMEM; - - adev->name =3D name; - adev->dev.parent =3D dev; - adev->dev.platform_data =3D (void __force *)base; - adev->dev.release =3D eqc_auxdev_release; - adev->id =3D id; =20 - ret =3D auxiliary_device_init(adev); - if (ret) - return ret; - - ret =3D auxiliary_device_add(adev); - if (ret) - auxiliary_device_uninit(adev); - - return ret; + if (name) { + adev =3D 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)); + } } =20 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; =20 data =3D device_get_match_data(dev); if (!data) @@ -379,21 +358,9 @@ static int eqc_probe(struct platform_device *pdev) if (!base) return -ENOMEM; =20 - /* Init optional reset auxiliary device. */ - if (data->reset_auxdev_name) { - ret =3D 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 =3D 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); =20 if (data->pll_count + data->div_count + data->fixed_factor_count =3D=3D 0) return 0; /* Zero clocks, we are done. */ --=20 2.45.2 From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEDA7267B6D for ; Tue, 11 Feb 2025 17:28:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294923; cv=none; b=n6+17JIzw2Vmh/aV3awaPScQPHpvuVk1NiCQipmqQ02LU7B1aq9pZLQDw3IUvzDNgxvji323q1Vyv+6x/VjvjyBFXBpm+FQ5yN+hEPlW7E8XSqLtdVR9LVvVSMgONMkc0wVOlUZz8pMGpVnksV6aZF6hEZyiqwguj6iiDB8y+RE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294923; c=relaxed/simple; bh=yh1X3NdDCdUsA9BLxtXchkn9/M7vIhxyVwRqzsjlThI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Re4t1m3QPunPDPq+/dvoy3rNU82ScH+g14sevn2F1JD+PUNGo6SW8+HEXAHi38juyyiG5mEw8AO+65bWbXT5ZsPebECQN5xqEI952V6o/oAiGG1eYRWr4f5vNb+6Cb+w0R+O7G+6JdU6tpKqwZKah5CzcxRzEszP58bpjjSXwqE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=pmeYh9uc; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="pmeYh9uc" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-38dd935a267so2392422f8f.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=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YiUH4lqEkZUY+Ysux6Yiqp87vOhypZIO5pd5GZP5Rxo=; b=pmeYh9uchp8yX2jMeFdpbUwqUjaBVVWOjCLw1EuEcUpkPssllSMiZvn+MKEWW8GUth e/dmIBaHjqw0Qi7I7XCFudMl7N8j0cB7dBZoMrQ/m/uDJaywbKE2ziJFt4gM6BYktOsw nSTcRmnqtiT6jFQBZ9q3vsKdHWWCyCQkQD3vCHvA9Rgufxw/SCxVnp07go8eRCM6Ka3E vw8/t5URK58CyTPNlbnnOA2rFhktA2pQHx85CaJ7JpTbp2GFMQxjcx8Dx0N4znhYbijA 6uh6fLifTfFmj2C8SxeC63EaTIqptF8wmdHNnoN0tjqQbezzVYhRyh41w817z2TbgvcQ bVxg== 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=XSw9K+RfbzgiBXsTNb/qiP93ZqPMUQVGV/vJCFIHaVrhrTqo4UD9NTCL2+is/4j8ee 8B228lBFdq5xwbvLl4S8DWGDJ050bVzRHYzNQaKne3iNwF3hRdt53JcZJxXpuQ2YKGR5 9z3tMHBDWVzhY+AIEhBmjrdwhN4sq59IPo50elYuBMm4JR0eDAJm6cX+m9LealV0oyx8 5awgyksRneUlXJ1+01tHSkmEQlqMfaBvVC4GXpDmiDex+o+BVYSeYFiKZqXFZ+RVPDwC qvG9bDm10jZq8xY2FSRLRiSViI+ai6vUz39QiTSxvT2ARAseZNj6MuuL60SHwAgx8W6y /WFg== X-Forwarded-Encrypted: i=1; AJvYcCUnahn+YIAtooJFa+usGdyzHCHBLBG4gOCDvgd78MGSwOKXB3066QowngTOA2uGKyrV87rw1+jxsNcQ3bQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyYAZFnDEZCjEfdG9jeAX3Wd3qb/uAKZDLoHO3aS2obAm1jfvv7 JVtGFhOQ092arDMsswnKa7yI0x+Pd3/XdnRQN4ERy5Edk0A8mHqE2dz+wtMx2cA= X-Gm-Gg: ASbGncuD8SBDQuWXYAnwekpGEaXyM6emvnAO5fO+kytNrgo7niDrlz5FdewBVcttwzb ssWKVXit6UY7iMMHXwCw2enyMJldYjoYv9by9SGptssm60EPV+k0xrumxTX918Ew04nR1c2Tv2G ZO5Uj6ocuZ2J4I5S8T/7e+9l9f4wKSvgEzw4fn3e+DdnZlT6wfYImSFfZUJ+WcPWMo4J3Xl+/1l +ihK9mKZVYiFjX4SOKbiLQL8cp2F18AvcM929Zy1LUtuq1sA66aIjIPexI5KdHm3g23zuv7ZxHi e1fJKfC4iZx44HVv1w== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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-im= x8mp-audiomix.c index c409fc7e061869988f83c7df3ef7860500426323..988a5fffeb4e0e481ec57038d9d= 1f1b43432fc98 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; }; =20 -#if IS_ENABLED(CONFIG_RESET_CONTROLLER) - -static void clk_imx8mp_audiomix_reset_unregister_adev(void *_adev) -{ - struct auxiliary_device *adev =3D _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 *de= v) { - struct auxiliary_device *adev =3D to_auxiliary_dev(dev); - - kfree(adev); -} - -static int clk_imx8mp_audiomix_reset_controller_register(struct device *de= v, - struct clk_imx8mp_audiomix_priv *priv) -{ - struct auxiliary_device *adev __free(kfree) =3D NULL; - int ret; + struct auxiliary_device *adev; =20 if (!of_property_present(dev->of_node, "#reset-cells")) return 0; =20 - adev =3D kzalloc(sizeof(*adev), GFP_KERNEL); - if (!adev) - return -ENOMEM; - - adev->name =3D "reset"; - adev->dev.parent =3D dev; - adev->dev.release =3D clk_imx8mp_audiomix_reset_adev_release; - - ret =3D auxiliary_device_init(adev); - if (ret) - return ret; - - ret =3D 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 =3D devm_auxiliary_device_create(dev, "reset", NULL, 0); + if (IS_ERR_OR_NULL(adev)) + return PTR_ERR(adev); =20 -static int clk_imx8mp_audiomix_reset_controller_register(struct device *de= v, - struct clk_imx8mp_audiomix_priv *priv) -{ return 0; } =20 -#endif /* !CONFIG_RESET_CONTROLLER */ - static void clk_imx8mp_audiomix_save_restore(struct device *dev, bool save) { struct clk_imx8mp_audiomix_priv *priv =3D dev_get_drvdata(dev); @@ -408,7 +364,7 @@ static int clk_imx8mp_audiomix_probe(struct platform_de= vice *pdev) if (ret) goto err_clk_register; =20 - ret =3D clk_imx8mp_audiomix_reset_controller_register(dev, priv); + ret =3D clk_imx8mp_audiomix_reset_controller_register(dev); if (ret) goto err_clk_register; =20 --=20 2.45.2 From nobody Sun Feb 8 18:33:16 2026 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49D84269CE4 for ; Tue, 11 Feb 2025 17:28:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294926; cv=none; b=MZeufY1cQqkKuMWyFFfTqTv86s2uEQhEsl1cFJG3zkXADZxKhMITgmXTeGFUxUUnRgSliKSqmUh3C/S+iivVo3YnJk/FojBOxkK/4IJlfJBD3DUWxcZwhrIbdw3HomsI5OVPq1HAx9a1WOOm7UPeU2mX3GYjpqBdvTrZX8Bl1oQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739294926; c=relaxed/simple; bh=gtTXUBCRQBXsYqOe/++F6w9kWmBkT08mx5TkDgNzKIs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=k6SZPKaXSRdNSKW8TWNHwlGQjGHFmRq7OnDd1Aghdpre3heCUBv6RfQzvr+KlZjn4U67lK2JE8oH+lq8cjSkbHJQ9QOgdTRvUogVaD2N99uOAE0gC6FJeAqYro0FfNj8CPzMOq75O2x0Vy8P4x5cJqIRheKdfzgmWz5Eeo+3Hl8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=Bf5vE+q+; arc=none smtp.client-ip=209.85.221.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="Bf5vE+q+" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-38dd93a6f0aso2178498f8f.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=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kX3ghmSADof/fdYKGzDtB/q8+rQu9IUcD4dmFIXduMs=; b=Bf5vE+q+TaB9apdWcW0z7yfuxvW2t8JRMueh6XaLnzbghBrKyPFI485w9QZiXbviZ/ gMrT3wj0tEUFTBw7rsDs/g5G+Rhfu2U3hpz2X0XtgGWwNtEAOeSCi/74YBaH16j0otxW CqbLVIJMDqmzGbYKFOS5tBQieA0OQfVn3BZRff3MdzO2rvvxL9ZXg3sUxE3DnGNn3IHq cygNpCA1IKKWFf4zzl87yRT6puon0vHdZDtnotxNYp8zqjYk+ZFH1l+auFQILOQV8g0K fwiT1dGSosjTKZ381zcU6/Xj3ARxJL7d86gqoAAFlIUvNo7Z1McIKDD8JRiRmm5AE2jQ JlWw== 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=OqrHq+j/MWFfrzcJKU/vR64w45vA5j1o0QJXUI04rsWVoe0CrNxvk7XrsTMygA3D54 k/Edh9noTF/TRWR4YWCaC8xC3egId6BJbP5VOw7++cVMl++/zfzR4DTfpUYdh0ZAo4ZV 7s6ftSnzd8OkR9qg/I/TbsjBwzI39zz2dkOzEFP+xRFHEZgdJPygep7xdtSMTaTqdJfd TDcCW3GXsV+310vgzZw8CkEIhfFAkgPLwvtdleY1ToqKceR3vJjIQkJHSYxvoiCMjTZL 3UOvRfRqxUdZh50CFpvX/WXphas5AC2wRsA/V0V5btZrD9ZzFwGdomOxqR3nemG+8zkG WBZw== X-Forwarded-Encrypted: i=1; AJvYcCXJzC11YZe2QZR0fhRZFaA3Aa1YzZbVx1J36xYYRwFcVy7R2rRtwUlGcBZIkrlv7VffZVyf7MYS6wHmpoY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1iGwxw2uj1Qy2A4xdRlxBZHiWKo6q2LYuuY7LRYril8q7bRNz Mmg1N+WPX1zqbrnb/caH8D/fN2xgzS/U/jhvx1dQsweAGmGDu4Ks4i0AwdSMaDI= X-Gm-Gg: ASbGncvvA8qSrVx0wdFPiICdu7NSKAgutQw4oMRQmWJuvwje4udzWoU2xWT/7+bGcXO WIGEj2GDef/sYIJ1qMBWhMtvoGifMPS+BJDYt9AtIeSlO1OdRDArP26gLMv4MTnNGMVHYLQ6ktq ZURZ9SqHakIo4pktHg2IFnStwmJJ78IUSu7/8cZ2Ojo+mBCRsEcH0JtcKO/qyRLcsL1QefQipvZ 5d0f2BsmTJ8PLKTnOx2rNsBR/JdwU8CqeOAYxOwQRb21fCHGCGy+Twsclzahr7MuBLV+IC31ovj KhjQqPZ07VmuVUhByA== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-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 Content-Transfer-Encoding: quoted-printable 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 approa= ch also would have several pitfall, such as picking the value of the first co= nfig set or the config of RESET_MESON_AUX staying to 'n' if CONFIG_FOO is turne= d 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..7cb21fc223b063cb93812643f02= f192343981ed8 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..6d798705c5fd1e6190192294783= c955fc9be1e21 100644 --- a/drivers/clk/meson/axg-audio.c +++ b/drivers/clk/meson/axg-audio.c @@ -4,6 +4,7 @@ * Author: Jerome Brunet */ =20 +#include #include #include #include @@ -12,7 +13,6 @@ #include #include #include -#include #include =20 #include "meson-clkc-utils.h" @@ -1678,84 +1678,6 @@ static struct clk_regmap *const sm1_clk_regmaps[] = =3D { &sm1_earcrx_dmac_clk, }; =20 -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 =3D regmap_get_reg_stride(rst->map); - - *reg =3D (id / (stride * BITS_PER_BYTE)) * stride; - *reg +=3D rst->offset; - *bit =3D 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 =3D - 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 =3D - 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 =3D 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 =3D { - .assert =3D axg_audio_reset_assert, - .deassert =3D axg_audio_reset_deassert, - .reset =3D axg_audio_reset_toggle, - .status =3D axg_audio_reset_status, -}; - static struct regmap_config axg_audio_regmap_cfg =3D { .reg_bits =3D 32, .val_bits =3D 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; }; =20 @@ -1775,7 +1696,7 @@ static int axg_audio_clkc_probe(struct platform_devic= e *pdev) { struct device *dev =3D &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_dev= ice *pdev) if (ret) return ret; =20 - /* Stop here if there is no reset */ - if (!data->reset_num) - return 0; - - rst =3D devm_kzalloc(dev, sizeof(*rst), GFP_KERNEL); - if (!rst) - return -ENOMEM; - - rst->map =3D map; - rst->offset =3D data->reset_offset; - rst->rstc.nr_resets =3D data->reset_num; - rst->rstc.ops =3D &axg_audio_rstc_ops; - rst->rstc.of_node =3D dev->of_node; - rst->rstc.owner =3D THIS_MODULE; + /* Register auxiliary reset driver when applicable */ + if (data->rst_drvname) { + auxdev =3D __devm_auxiliary_device_create(dev, dev->driver->name, + data->rst_drvname, NULL, 0); + if (IS_ERR(auxdev)) + return PTR_ERR(auxdev); + } =20 - return devm_reset_controller_register(dev, &rst->rstc); + return 0; } =20 static const struct audioclk_data axg_audioclk_data =3D { @@ -1869,8 +1783,7 @@ static const struct audioclk_data g12a_audioclk_data = =3D { .hws =3D g12a_audio_hw_clks, .num =3D ARRAY_SIZE(g12a_audio_hw_clks), }, - .reset_offset =3D AUDIO_SW_RESET, - .reset_num =3D 26, + .rst_drvname =3D "rst-g12a", .max_register =3D AUDIO_CLK_SPDIFOUT_B_CTRL, }; =20 @@ -1881,8 +1794,7 @@ static const struct audioclk_data sm1_audioclk_data = =3D { .hws =3D sm1_audio_hw_clks, .num =3D ARRAY_SIZE(sm1_audio_hw_clks), }, - .reset_offset =3D AUDIO_SM1_SW_RESET0, - .reset_num =3D 39, + .rst_drvname =3D "rst-sm1", .max_register =3D AUDIO_EARCRX_DMAC_CLK_CTRL, }; =20 --=20 2.45.2