From nobody Tue Dec 16 07:13:53 2025 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (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 7C6D71A4E98 for ; Thu, 6 Feb 2025 18:23:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866221; cv=none; b=g3QZJzyt6OPkakdLaINMGVfTR8aZjfvU5II78rXnjGF9WZPpgFTBINLxl7saxFKT48VnazPZcp31d0e5somH6Kdn18m8xI8KjPZ8H8QvwtwFPZq2Kvu6zRoM9qk6oWCe4BeE5ic3RPIK+sx3t+UOMH0o9lvoXe7RhFRlZpkQMgU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866221; c=relaxed/simple; bh=ucfZEBgK7yNHdj3H6oyHJK0qZDE1K1JMGLWDliaebGU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JvHDExOArPTWZTbN/FIJm5CF9tIlF7ohH2DziqwR1NIWwikM+aqpn9Ka7/vkA7Bq9A5XLFMq7Ni8z8ISZHFxpcfZgK+k/S+CzDifxBeM3zs5O/5BFGKPrAcnU7ixJgpa73K4+m9AEsSDRk+kaL/aes7xIrfvR5smGC6WTMPj2XI= 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=dtH+OA9z; arc=none smtp.client-ip=209.85.221.43 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="dtH+OA9z" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-38db6e13947so976377f8f.2 for ; Thu, 06 Feb 2025 10:23:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866217; x=1739471017; 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=AB6GXJU+o+aIRSK7UeYMrt5UjMJvamba11+xgHvlj+I=; b=dtH+OA9zF+QJar/jO4QxA1eX8Qyy784Dn2sbET6jlw/kAn1GNpARThusRKA/dTwS4a hfYl/VMExlkN5WsgEq+YCNdnfXOhI0CvCs65XFw7sIaSF8WwKov6vuzLUWprJ8eGAnCX HuQGCUq3TmVQUxJfpctGObJSjnWD1j6RdnCoRoljyl82Ok3j3CVeX8rT2GCtw31JzWUQ AimVbimDqPGz36txtr69NZUlzztZIxhGAcoYv7MZvOmDHzchHktFT7hHAKkfXZooEbim PlRWG/0XCqWHeHktvLvdGYE36t1Jx7LbmyIrP32IMuzCa3XwiG1Sukbq35A7lxwi9826 12ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866217; x=1739471017; 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=AB6GXJU+o+aIRSK7UeYMrt5UjMJvamba11+xgHvlj+I=; b=XqMfhr7NrlOqrZjI6gLpCO4jbogWCLgiXiVwpFFrnID2rEvU7pdLYj+yBsUDOidEgF HYQ8DvsICOpA0yrCaMdl3jAOJ1fLpOsaYpXHK2T206L/zdgYkz7kx4GO4ISY/iG2MVsZ ubzqHNatJJjwbM4gpTfAxXk5N7QKP5FFtTMAkCZy8voNJkt3qkYMUbg5+tBHl5MUp9m0 EXWngwdyOsgab1Sy0FGmYT/EaSx4VCNaRSXZ2E4UeZsHOk3drQU2gbjk3j3Y/kjrlRt8 6C/cHHGpm71Jdx/hjSu/96SMWu/VuDtUfNI2y3nkwC2457DkgBjHwRRVc5sNkChwymnI qG4g== X-Forwarded-Encrypted: i=1; AJvYcCVvBRKIk1oXkSyNfUJGiiXlUnBluGY+3Ei3BPxsphW8R9vqjky5e+Z2JKL9BpEMWhStC+kTajZpD00ZDGE=@vger.kernel.org X-Gm-Message-State: AOJu0YyG3B0KmhJ6VDRoZ1Gl3a38BnK85KCazaMyCkysSHi44S6q+LQ9 9pB5MWTZZkRE54nRXh+HzKy0EwM19MjpAc23OegWnYRRON+QRbOKN2vv+oAJ/Hw= X-Gm-Gg: ASbGnctdn6FJY0Rlq4v5xEeANEC9NJ3FNYLRXl8x1JHzEqt5pA2F2vjUH5ckPa4b7QX UuWJpOx1IeYEvmNrXmwzQhc/umKET1JuVj21t5nbMjMdy1HX4oHm1e+tsb7D7FDdp7LTF2YuM7a v4NHYB88G3KqJgsHL0ImT1SjOywzFmvDvRIO0RObkfh+WPZIRIVXj3DvPGQdD8dKGVPouLf+cwa pbSvtLFUh4GsHLZRF15N1fvjldLhLCiBZxZMxisYzXWoFjfDvm598yjeCum5r4WXpGzThKktoqz DowoC9CtgNOcWIDw1g== X-Google-Smtp-Source: AGHT+IG/NuYEKi3zjDb1mUiLveCxnlUsFlouH8AlO0Xy3FZr9+sytk5Qojc3RdxtRuKqZM+G845QXw== X-Received: by 2002:a05:6000:1448:b0:38d:b28f:5657 with SMTP id ffacd0b85a97d-38dc935f563mr9845f8f.43.1738866216839; Thu, 06 Feb 2025 10:23:36 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:36 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 1/7] driver core: auxiliary bus: add device creation helper Date: Thu, 6 Feb 2025 19:23:11 +0100 Message-ID: <20250206-aux-device-create-helper-v2-1-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=4145; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=ucfZEBgK7yNHdj3H6oyHJK0qZDE1K1JMGLWDliaebGU=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrJYdW3M/ORih+QMS/r6D6T8sEV2nsy1XMtM qeVgAVj5DaJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6yQAKCRDm/A8cN/La hQYoD/kBWWN9mhQG9dqL16DznagJvJky0H6Z37VjZOxzmEPyV6brT48BN4FHRsZV1Wy+sD24W5z rSh6kuO/EmS0LtuKnLy6fneweSMGP+99ZYdMtfEtIvwrEdw/XCXlIhU7OCpELP4AfxZXwBn6W0r FMz1EYDXH6X4DZE06iBsOn6KqWY0t3FpzlDcqTVTyRXV8Oxaz53rQmRXq0RTIhwk9DSjrfjLN6F lguYI4XPZecaXWSs9MckxAS7RDay2xkG20aC/mkpvTJSMfvMG/XMh4WlMvfxDhj9hTrbSrBPTHl 6FV/GQwllMhqnsaC3EcGzI6u2NlkF5Ax1vOHS/lisZOU2sUFYeCVZFMea4zE1npwtXyhmTcL5Rr S3F1RBgDLupsTsEtRCWk4ApxH4wTiweue2VSjWUSyjNz8ormqM0donhbnc2DSMti54WVZaovFUX mZZvEJTQxR87zznfLT98p4mv0MHo3nYqpb0Lgzs5LBfGXAHf6b7ID2oVfYKjRsZWeQKvuvB3rJi nZrW2OteP8uPpRD2hUqmHYvlBUQeZ1FUorBpR/Cg2LQyj9xttnVULrAhmq94Klo6u8tzMI5b2bJ y+MI2ZdMWB1z4lVGLqomUDFt1sdef2+4r98FkgJqKmE69oKNvUwXeeFzACabQE8QrbEsxlk6zxR o6ohqpwktKcw20Q== X-Developer-Key: i=jbrunet@baylibre.com; a=openpgp; fpr=F29F26CF27BAE1A9719AE6BDC3C92AAF3E60AED9 Content-Transfer-Encoding: quoted-printable Add a function helper 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 | 6 +++ 2 files changed, 94 insertions(+) diff --git a/drivers/base/auxiliary.c b/drivers/base/auxiliary.c index afa4df4c5a3f371b91d8dd8c4325495d32ad1291..2594ec9a2d6f1696e064989b2bd= 5145a73beb159 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..c9ba8e718304c0ce27e16cdf53b= 18d81a290e4da 100644 --- a/include/linux/auxiliary_bus.h +++ b/include/linux/auxiliary_bus.h @@ -254,6 +254,12 @@ 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); + /** * module_auxiliary_driver() - Helper macro for registering an auxiliary d= river * @__auxiliary_driver: auxiliary driver struct --=20 2.45.2 From nobody Tue Dec 16 07:13:53 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 66A9119CD01 for ; Thu, 6 Feb 2025 18:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866222; cv=none; b=mv1cAV/EP3UPA6V3AdJwDRDXAf9xRF9KQWbpVdAjCezrY8E5v+ib0D6GtzD0iOkGqDeK15TL5R25ApNlSgm4jfKXAx/CdLU59MyqN8w6uKVRxGXCVrv4WRr9FEwNdyv7zs/RqGR8gyHw54EzTwyUMsjOWQPk5GLsfqdr/pWoLW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866222; c=relaxed/simple; bh=gEXSWbheU05wAl9Cb6rsorvg/2q4nl7DHvFNyzkBTuI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pKK68s8QA8586y2bwTHDIjO8HU0L4k3VfLODDhB0XEgD+6xQmoJ7pxPkLD9rMtlDhfzuoeBzNX5eGv7hC3990zbXc+WPJvbAsl6uu6FjFj9R2nTagCRNfsQiu56i0qiUXKD4p0+Rd3ib9V4zHoopQrM8SJTfKUBv2ZHPlzmGFMw= 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=SCQHuGTd; arc=none smtp.client-ip=209.85.128.53 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="SCQHuGTd" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4361dc6322fso8654625e9.3 for ; Thu, 06 Feb 2025 10:23:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866218; x=1739471018; 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=dVkLyEb06XrvJwGPoL0+lLyTG47VSyl765KLb97swYw=; b=SCQHuGTdC7eFBWZbmVisvAuNBHSFbEBjFgA5VLbj60tTwjjB6VsypfOLkvTmzkg4+w DUNvk948bRSGmtoqZvG8MLdFFp8E6WKQSS94X2FNsC1xKJkmMqalvDqas4Cju5DdZ17Y /IqbL3ulAHMcN31eJyqr9laV9v0X2FBPI/TAeeSEy/v3m0aSs/0HSkuw0Bc2vULPEze1 Vv7wtN5Ex0uBnXshw7ZMUr69FCc71KBMlsjCo2QyI/RGj9IO5S5pqsBzJi5IPgEz7pKM 5w4CxuQBk4gEveo+77hNSiJQIA/KPEod3T/sO+YFH6qr/8kV/kDVtruyIDLx9TmmEC8E hXIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866218; x=1739471018; 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=dVkLyEb06XrvJwGPoL0+lLyTG47VSyl765KLb97swYw=; b=lhTqiKu0w1/sYR16pnPYf46WvApb3+8bJ8ZFpgUoCQ7WmZO+MaiYuyZxXQ0Xkntk7Y Zmg+WAFOfKi9OydlzXx9UWraZNe5kvCwL5ENEtrksYluBO9mWIvuubL7Z1uFI692CtlC gKQnjagfpPHBMcmsl4lSnYItD8WP3SxoGPcroqhI93qNEP+HoKU1b+k6lDfQ6ZmuLPJl /LU998W8Dxu8sbD/ovrXcRDSmNPTFW8KuIGhYGqbd67ABtRZxkUh7p7kKH74Lrj/G259 VFpNpQ0sfcGfFL0X29kbltxVrpB43sb0DR5nBUnOACXQb42Z2x6Sa0+biFK3KRCVo+Yi 73rQ== X-Forwarded-Encrypted: i=1; AJvYcCWGzj1wM7C5xGpWF4BqEJqXUDJrTAzkaHodJgV273dllOi/sOF/h7Aoxb0IgvnMr+PkLR6zibIXVvzr7ac=@vger.kernel.org X-Gm-Message-State: AOJu0YxkZhcMlhSLjGK+RYgpopcvV3GtU7+q36WQWoPpJB7VNqGtiRFx Sl4ocNyk4TO9KkLt7aFXIjHbUQ2yhNVinXo0RtjH3kR303tS9xtIMukAepLi0Ps= X-Gm-Gg: ASbGnctdaNpujsX3OXWwtotY2OFSa/cGVUiEpcaW4/EL/EaSUIcn5psNzGBKDCaSbxj Yy281qv+3a/3TFjY58lLjPc01ERrPSfgPjC7aqVwrx01M5GmSEQX4u9l1f2np0OVPhipqA8+kHM E60JGbFJFhb1pRxxF6D7LbRD7grdiQVZdRBj56Z+osKv3OjLDofkwOVR4rg7Yel1+zctweMuEds ASe/SLhyiWAqqQOCTPSTlONyPKeqiZAVC08988OUUDg06m6LRe/rRlK0auN5iolek0h6ErlJzYG MOGvGKdcC6kmZMctbQ== X-Google-Smtp-Source: AGHT+IGEyfloo4HAMqO46UIhMIq6TD/k5Cqd9h/6FWUmSuslr2XyXjQd4IQtsG8h3DyFJvrNQ+F0KQ== X-Received: by 2002:a05:600c:3d0b:b0:436:6160:5b81 with SMTP id 5b1f17b1804b1-43924990da1mr4648345e9.14.1738866218598; Thu, 06 Feb 2025 10:23:38 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:37 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 2/7] reset: mpfs: use the auxiliary device creation helper Date: Thu, 6 Feb 2025 19:23:12 +0100 Message-ID: <20250206-aux-device-create-helper-v2-2-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=2247; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=gEXSWbheU05wAl9Cb6rsorvg/2q4nl7DHvFNyzkBTuI=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrKJSrN2nKQGVaPXNFezUgV/oU17RAS6hJMC eMuXu+IGeiJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6ygAKCRDm/A8cN/La hUndEACDXpAOTok0T/1MoM+ELQCc+RRFZJuG6IUAM+W4fIZ6QKApY+Cl5HbaAh8lNyRzH0yMm9b Ao8ZzNcvfEDuDOUpXoGobGLbtS8dPHM1FaxxoB2qMBS8AA4U9rcOzKQsfeD7OiTAZXKXQUR1Cxf 7T6Tm5xSSxuuMI/YCtxls0FuhyGcbTmpH14smy5CkR+/k+UDVCo418SD4SYSFrf9Aqe6dsTlsKe npNZDYHKT3mS0pKH3GJHNUuRfDgc/XUTs+6WdAs2rHJcwJPQe9IC3Sc/+hb8laSwIjfjCwYgBHq I2ANTb1T7r1mLdfFrCDRkmVkbs3zbHr8kt5Jmzv8UY36gmwI48r9dwYTj3SlhAKGISdIRUxjZtM r0JGXbgw52h50anI/RKPn7JB20BZUBU+xo63VanqU62MIUiR86eoVvrLi5ZeCdU2Oy/O1EcH6O9 3fpj1hZ+Zc9Ak3F0brzM6pvY7mScxbsF3tf8Oipm5/4QLbcjcjfAyAaLRY4XK6M3DcS+PMxQq2W laAvIQDecOy2B/5yKoD2QeuPz6kvWskZMi+3SzC1oidOqA8lhCy4zvpiU+ryeGqrb/x1rrAHATA k559Yy7+87yYwQIiz3/w4/5beJR4A2DF+Vf3FiG2wA6mHcVmEeWaeGsiH2DpSV0AItOVqlP8Dpa Py/Y9A32ERcsC2g== 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/reset/reset-mpfs.c | 53 ++++--------------------------------------= ---- 1 file changed, 4 insertions(+), 49 deletions(-) diff --git a/drivers/reset/reset-mpfs.c b/drivers/reset/reset-mpfs.c index 574e59db83a4fcf30b60cb5f638607a2ec7b0580..61b8eb42faed809cbffd944f219= 27236833b2c0e 100644 --- a/drivers/reset/reset-mpfs.c +++ b/drivers/reset/reset-mpfs.c @@ -155,62 +155,17 @@ 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, KBUILD_MODNAME, + "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 Tue Dec 16 07:13:53 2025 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 4D5B31A83EE for ; Thu, 6 Feb 2025 18:23:41 +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=1738866223; cv=none; b=YDKhEqtoXGmAk5iwzwRdg/g5oSv81FUTREwwvEYrW1KtFMKVAW/yrnlacBvheAWdgRQ7FMigQF/pHUhoDWGt6OQ497gSy0iXv87IIkgN7UJ/c0VZi5hbKR8eDHaqZJ93X4AY0yEgPJ0pRLtQVQfOdxkOmzAF2yMRBhV+74rU8SY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866223; c=relaxed/simple; bh=iwGsBr2g6cxvTQiv+CdSv6JVIzby3WUkhihdby+aWqc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IDseTtY9udKyG8yAsxwH9zK2J3jroTJmIBy6H4xb+869la+shrL0SEKOdCxgLYJZ7KHF67CbeqafKH5QG8DS7LJElUDWZ2vH2bbssDJEP+K7M1Lz21Si2MHscZkBLLBJOMOpS8gDpyKckO/TRjNyLn7FGKoTmffA7c4N/Oo2P4k= 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=Eh8CU+mw; 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="Eh8CU+mw" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-43690d4605dso8856825e9.0 for ; Thu, 06 Feb 2025 10:23:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866219; x=1739471019; 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=IzrAhf9bhLsMcYZxqnaKZFagenD94zKJ6aQSvHAU4YU=; b=Eh8CU+mwLclfA/J9d0RCK+2WAjGAD5Z4atKqYE1Hq/gAEH+J8c03zxTpw48qZAz+o9 GWtqq/bLTJIo92JjVEV7iDF/RUpIAqHcCV8A/jUrFLI7BINIUy4t53viHCMjfgQdG89O CBbEhjzW9Hn6507f8/Y+pIAH6bocABCM0XUs6HmU6kfEmGg+UiLgCubIkhIcvH4TLUlb NL+B4/DUH5KrirLBVpNr29vWakv1q7kzgoNLrzWr5I3hBrMNN8/8aJEkhZPfhmor+kLc 1BRn8GKHCXSunRfWthX1stLmssf28yU/4CreDzouZHM7RDCddk2vPJDKrcWMHhd9h7vc YThg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866219; x=1739471019; 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=IzrAhf9bhLsMcYZxqnaKZFagenD94zKJ6aQSvHAU4YU=; b=lLJNIdVfe1hvmbidk90GSZDubw3iKz7mD5Nng25HqmzrnlF4KLVYv6ARAe1WvyHnjN wjhyt0T13NcUVReOCgN4dNq/KFLXeBd/ptkWjY6xsrja+/XSra/57IwQyHR+lUIJ8yzX 7i9WLrG2wgH5Ss7B9kKkXHMii9ORGCnvun10SVpXgbBVWG+4l6Mdr8O0rUA5nAZC5wDS unJohFa6OPXjPAU4tXL6wpgVKnyjSaj4z0m0/o+dGN1e4UvJHPdpFNhf7dXzYWi/ANDs 5hJXKcfOibCWDF6peKh3R+MvExsfuu0HHxSa4lYmcCT0tAtB6cJzo929kySXdShurXVu tGWQ== X-Forwarded-Encrypted: i=1; AJvYcCUpAg18/15DSAPXsGXmX0OcsFznx+0sK01EDFvCPrGsHsZqC7ibQWm5jhOI/YwcTv7BEqQqaJ+3zJPwnf8=@vger.kernel.org X-Gm-Message-State: AOJu0YwMsXCT1LA7dCXutteH4eKU9NJo0zH8LKzfnxCbFWCZFBLBDTtK gW26D5Vzo45LQaG9FWfjKToo2QTYUuS3G1RSuWBIo4CEyfq4KTXCFWL6ZDFMHJ4= X-Gm-Gg: ASbGncuROPgkcX9AnnvXyKIK0JE726HDCvzmfQCoIVJ+0tA7DkX6ucprTaZBkVC6IA2 801KX0VRPmUdT3AA8in8m3dcJGYTmrde1GDNNMerGsI8fTOhsH/uNjbLHZkrWgBHnY2yi4oc2RV 8pnZ/L2/Zs577VbI7BXsj9NOMvGUVs5E9JW6PTrvdg372xdqWBntoOxlMjRqX50zOF4sQuWcz8r pjtQsawePcTF75GqdBx2b0Buv3tqkpOXiv+vpQvhDDMEJLpcyEiRoOPq3EPQMmV3UVXhms09WC0 QJ92WodM3Awje72Rxg== X-Google-Smtp-Source: AGHT+IH0pI3yjMNRuyuYQGdsI4Dc7dKyNS8Qo+O2EiouBizXDP2gIDLrgQWKYO2vUb10yudrqpMnig== X-Received: by 2002:a5d:598d:0:b0:38d:ac2d:6dbc with SMTP id ffacd0b85a97d-38dc8dc1ab0mr35311f8f.17.1738866219499; Thu, 06 Feb 2025 10:23:39 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:39 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 3/7] drm/bridge: ti-sn65dsi86: use the auxiliary device creation helper Date: Thu, 6 Feb 2025 19:23:13 +0100 Message-ID: <20250206-aux-device-create-helper-v2-3-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=4157; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=iwGsBr2g6cxvTQiv+CdSv6JVIzby3WUkhihdby+aWqc=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrLaPQHDp/pYJvF8MlzP5gvjZiSOmfmwJmUz +XHDG4G8bmJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6ywAKCRDm/A8cN/La ha7FD/9r0ZI8kwyya5pjKDVAkS1rT+bjUz5uHaEitxPt1PJx8/GKN/iw9ZKaRw7ocYJtQCGssR+ FjzmDHoW5cielXyB/AeX+Bhy+M94AdZAToMBQDCrfkSX+5tBHwd9goHYLqKfqnDEVEDHdTQ3eiy AfqcTW28MgIZWNudLGvWbv7z11gIY7cGLOMcJEhacYNFNLnjQzGNUKEpAUF87I5QENsczL4gGAl 9DbFhoXA7lxL7s0ILUtK6NdGok1pkN4EOZ7t2yihK4+dMYv7LDYfYvjyzLjwT38lQj/pIdunfvI iYCX6tozKHdpppuHt+apR6nKPviReDrjPeRIAiTTOXmMaF98JeRmHbVlPvH1AR36oj4D7uEaVPb rzzxjAtmXrkXVFq/U3NfnlAIY9qi/XLsajzt+WtJb5GtYdNn8s8u6eI0lcdAXH9XGvdlz482uMb tvvAZVnUnekRmp/AnVYgfRLLN8UcbLHTYwijTrRdEa1oTx/In3X+/xUgEV4A/YfSFwXVvEBYd37 mPkVsS3TkJSG94HrhpN7+9/CmgkGW1T150yUhjx/5Q1S/vHzjH+e3Shc5s2x53+VX9+p6g+/d8j Oltt4fXGW/ePFqbxYGwBaWlDJLyOk8rcIwrBVzRT4SSYQ2L4GCUqlXokHaJ/YJSczMXimMi8Vn8 O65anQJVfR7FLEA== 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 | 88 ++++++++++---------------------= ---- 1 file changed, 24 insertions(+), 64 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge= /ti-sn65dsi86.c index e4d9006b59f1b975cf63e26b221e985206caf867..bd618f497a3f0e1d08e46e98dee= a3de7d7db8bd5 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,13 @@ 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, + KBUILD_MODNAME, + "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 +1900,19 @@ 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, + KBUILD_MODNAME, + "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, + KBUILD_MODNAME, + "pwm", NULL, 0); + if (IS_ERR(pdata->pwm_aux)) + return PTR_ERR(pdata->pwm_aux); } =20 /* @@ -1967,7 +1921,13 @@ 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, + KBUILD_MODNAME, + "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 Tue Dec 16 07:13:53 2025 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 805D21AAA1E for ; Thu, 6 Feb 2025 18:23:42 +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=1738866226; cv=none; b=pn+0dhjSFepglbJQJzQDxbyjnhUt/X4yUD7U1ylo0tIhoQVgfBtGB3+T1zCZopotULFXyJQ9keICuPscVhpJj7/WUW+7C6HG4Jq7xesswxFmzJEUSNAnw3WRqXPENfkAVGNnCr8wEqAW89iCwFOOYX3UBMVGtmsPm6AasN7tpTI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866226; c=relaxed/simple; bh=6++6sKWjTc5PHmcMhQi9/YNbgXyYiVj416YfEREQY0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WRrO/J3chIJlaA0EJ/S6Cqs+SxW9QZ8DHdHJvvaka6d6uBHFMdKRYgQBIdrFY6L8mvFid3geBCay3Wf/o96R1xwpUPfge6TNCaHMxpE7nTOWJ31e+OncFzAUkOcaNzMPzziuH/1XknnOBIpD6KryP2CgDFODfqJCNfUc0c3aMmE= 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=utoW99S4; 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="utoW99S4" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4361f65ca01so12346785e9.1 for ; Thu, 06 Feb 2025 10:23:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866221; x=1739471021; 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=pDDlbsWe1+x0J64iOKUY2kNKofB4ONjhy2xkpxjKx44=; b=utoW99S4/u9hbCosPuoUBpeLF4Qa3y4OzA4Z8SudVBx/XqGj5GqDIvoBYt92aRqGZy HuDdUUOioFt8Q7Sd41QwoFRlkpCQzbExp7YUNPibIPPN2m1D2Jlo9CzvE1spDHc/YvVG IUfL8cZXeez1kZgmQR1DfZbl8m0OS+ZEmBPN5HD8n1b0OvcMxDoy1wwzsPMUIL/ItpM3 Qq40RuiFvTQjq9PXGwJWUgdxFQotTMVEJC7IK88Ea/3vEYTamI06WqVXFhrtHHRUee8c aUjQaaA8h8OxKcpNkenWyVhPyPExDxuzVeKI/x8WUwXqSN4xqWx43g3gdGga422GrDZM LAEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866221; x=1739471021; 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=pDDlbsWe1+x0J64iOKUY2kNKofB4ONjhy2xkpxjKx44=; b=m39VTpWO0b4QtzXEs+Twr5x5sAXMRDIwZpAq+wY90DHb03HKKvJ/5LQYE4LhWge/nP kzSxFUcJtoezDGb4HNzCPcnJsAwgqkJIU5r9VeoBiLvB6BVme/jX1x7cygEYSuTKvN23 bYsyVoYN4rTdGsxLfAYyiSOR7+7LzK9fgBObcoQJNf6x7EmaX7pF9hM/TZqCnjOB1NN4 BL22DQNf5gY0x4AWBOxzdeBYj8om4aM/WdpPjiAcjWYgINKdDZuiWAHF/tGZNcmwg4uV MICedm8IBa7omGKYVWKxmN6D+cHqvtNDsRYfgDlXAXm16Pe5khRzxRQAoEYlBJQiLIsj DXYw== X-Forwarded-Encrypted: i=1; AJvYcCUArE9k6E3mfav3JEhFt3lLW1BGOBvjbwgUIoQfQ43bNfOtgeJoH328fE5ajYjRNnXufDm5eDMf49TubfA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6av9hmajFBuj4NEx4kTLHgxxxXNT9m9yc7GV8uCw/sgq58DXQ cklDnztV3B+2+DikcLYT9805YpRK2VidIEvKrdvRKxhBo9KdThoP5sFeTxQsx87Qb/NIRDl55yz vgPA= X-Gm-Gg: ASbGncvlW06I0b3PcbD2IwyfxSIaKxBhYlThl1EUZGZtjzZ0H6fhnkGBTwkrJeOa1Ws 8XO4lE19QFV48VUe9h8FSP/A+FK9YWyEkB8m2yOTBuxux73ETzsGZQeHKTPgDz7/XZEhkNbofPJ C6QI0DYyOPhj6TMo0wolt/GjKsEZQRczQ6rOTTHXG408mbRvgxTCOIpu0EIQ/3Zl2DPT8t9r3mh pvLGtaB1lEfnf6cV5Ml93toX9KlD/8swfC+LfIpCQrwTWgmkcGnsG4Kl9vX3Vl6tyOUbd2Az+Se wSmfd/V/5RdUgnM89A== X-Google-Smtp-Source: AGHT+IGDzhbQXgNu/QrBSTCFEQkahNbDI41i1sobGeOtV/ESskeVnnIwh4MbMbL35jXT0b0VpBo0Fw== X-Received: by 2002:a05:600c:1e25:b0:436:17e4:ad4c with SMTP id 5b1f17b1804b1-43924972ce9mr3831115e9.6.1738866220710; Thu, 06 Feb 2025 10:23:40 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:40 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 4/7] platform: arm64: lenovo-yoga-c630: use the auxiliary device creation helper Date: Thu, 6 Feb 2025 19:23:14 +0100 Message-ID: <20250206-aux-device-create-helper-v2-4-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=2030; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=6++6sKWjTc5PHmcMhQi9/YNbgXyYiVj416YfEREQY0U=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrMR8BF61h15hNkSJqnjGxnf46fJl+cqgVFa Y/PS8PgpWuJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6zAAKCRDm/A8cN/La hSYbD/9YSQ8jWvPP/hOJcq+VvB3eSSnd9tlrEL1EwfMpM/Y9M31UY7+1eClI6Rz3XnbFEXX3+Is VWY7tgyLvoAxVqTIpQZsH7mqwDc9od8FRh2RnyNlwLV2PN0JUw/7znaYAhccSfCWKUc67jAsmZl IIjRLjqVHkeP0nqG+wPQlMEE/HwJOkIbXw7rfcFZoa21ymo17LYVNEOAyywZfmJD6cPzIS8gIw4 yfKZzKMdPUuVoT0Bzxv2Gmrpqx+WaFDEgKTstZJPClR56LuGL/zmMoo92piMlqTtnK86I5eohc6 3Y/vZld7hi+NSZKXB43lrFIyETQFhpyiIZSFevQPsgXxZOP1tVfNDsiHZqpqXQ3CeYAoAtpLL87 4hhUYoLbsYbp8Mzp754hHVwYrNX/pisCyCusLhlftg63C0/0Xe+DH6JsdjVzW46FtVTEV3FwnaV b2Yj2pywOdPYhT0ZbTIHVhfdJzf4tn/HDSvodDjJKQ50GfjAXGK751wITmPkCEc5mEpYR+bLRkK XwcLcRqzZOHaml3GvU20g5rlhvBFuoDnjNJEaEV2/p4outMNfuFjza0wZPZjmO9ZsAxJ2qdAJsH q1qZU7oYq6sbZOhHwZbRjwz+ZzjDNFkRx0N+ADrV8qAs9qlSAPr1X8B/skyLV2wx8zFdPgI3KOw eHXykk1tATbcivQ== 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 | 43 ++++-----------------------= ---- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/drivers/platform/arm64/lenovo-yoga-c630.c b/drivers/platform/a= rm64/lenovo-yoga-c630.c index 1f05c9a6a89d5ee146144062f5d2e36795c56639..b17b728f6a30eff301ce3f903f7= a6e4bea2bbfcc 100644 --- a/drivers/platform/arm64/lenovo-yoga-c630.c +++ b/drivers/platform/arm64/lenovo-yoga-c630.c @@ -191,50 +191,17 @@ 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, KBUILD_MODNAME, + 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 Tue Dec 16 07:13:53 2025 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 2FBB51AAA05 for ; Thu, 6 Feb 2025 18:23:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866227; cv=none; b=mNHgK30WGD8xw1KEwwNFDnC62AZb8kfzeTdVemmqH6ssFloxEon5vAJgMGgvPEIdC3eiaZEVsb1LzlAukboYjX0vtq4ggaCQFK+oiIHjbjIFL/aSV6/QbQGbxfwHMjQpg6h0o6ggHTcw/POZ/FbmbqfEwm5o/cySFiSwIAsYELQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866227; c=relaxed/simple; bh=Jl16tNEPM6BDreyI7YdYngMWZcCbd/CzMR1YX33ZIyU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Js2nnGSxj1sgma69fs5mcLw0d+xo+Ctowz0yzcZEhW0z7p4L37FLD2jbmtX9Jq+2st+dJoqNz+9epI56rVO1ehrRc9E0HTcKCpoC7Db49EYLLUHyCsBBhSKj+fPn+7AAR+YMI0rBJEhK4TVDIdQvYnZWKKSz3eiydQKZmX09ctg= 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=0DKAFqxe; arc=none smtp.client-ip=209.85.221.53 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="0DKAFqxe" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-38dc0cd94a6so435558f8f.0 for ; Thu, 06 Feb 2025 10:23:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866223; x=1739471023; 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=29W+xGQBf5MD/J2VvsVKDtGV401fRAN/4XA8662w0b0=; b=0DKAFqxeX0VFHfH1fl/v4ayd1+YGqusx3ItTblWyhMWFeRdZTbFeBrhgrVtuGcsrtm 3WFy5teY4i+IFeTgZZoccvEC722mY7iRy7Vc2dqVQ7MvM7BxBV+j755b1PKr7Mtw/KIX SYhElgmgPCIsAxoDiPbrklAM5BYPpVy36B1iU5RCr5McaJklKplTUbjKt/FmbaQifCTy 84iqsNPQkViIdjVx9TA4RS9sS1Y8vjNd+gWNci97/rr7AyDjbm0pW5mf71acVGQPEmwL kSFCMEw341lLmlNvhKdfEV2+5lKCsOOY3CSu/rDDkgqIJonq8IyOHWfuCng8u+/LyyUy 74VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866223; x=1739471023; 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=29W+xGQBf5MD/J2VvsVKDtGV401fRAN/4XA8662w0b0=; b=myzvHAU6akvRldwrxEQEWegQZQShmxHa+ixhZ2XNIU1tRaXXiGf7+FBZaMyKS+EY69 /SU+t5nH+7/wfJsWAx8c3RS7io/BBNQjcbKwqAZbZtjKw7r+LoQDYmPYIo2w2bT3xBbX 4tLJ9bV+z7De8D0pYA8Zqr9BNe3CXllJjJr7dOgUIVGXevd4LTkXiAPw17QeKRrC5RsE aMWqK1z755FqOlySHqhDjlQoueNHmsCOEPWRbyJqHD1Ho+1EBH5Pc18m0v0IBqOvkNtN eC9fh7ap+YAxigRlUSwriuTlD40d5UsPYykhHqxiRABhf6ZnFGbYTyV2gm9iTYB7zi/G LiHA== X-Forwarded-Encrypted: i=1; AJvYcCWUYqQjR/bFS2fmLz4OS/YB0xPDoOSBhjZBKIMqNHTLVYXhqv1OWLKYgzHzjfIWeOvUIChWtnOW4IVl3Pc=@vger.kernel.org X-Gm-Message-State: AOJu0YzxK4hXuWBw68L82YAgi5kaCLoTVhTzRZD1TpyXZv11n7cHoivL i8V7UjzB6MornEYLYHp5eWkHqaHoN5Q6qzjxk+3yEeqOxy+fpXpTvlltts8VhCM= X-Gm-Gg: ASbGncvhYATOMKvqA+fyhOcPgNTnNt+7kYlLtRlT6jnhzrMQKWR6zFwIeG66GLKRERU TYzkpsALPoF/ix5CP2y3l81ZTq0iVw+GhfPLfUjJuNFeGAxmZeCf0tXrTQy5YMFYJoDYJlVz/9b 87PMKUfNZfJgcclyd+16eO+WwaOvoZIjhRW08OIwl8wr5hJ835BBfZJmdgEklerI5a0AKp5XGhE GJVmbIGRLeEBQO2ZUjQzxBbfNOqrLeFcK/Z76mDuZ3cyRX8tneBnAGXSZlwZnttgjs9V94oQkmp M/0vQk7Bj3lj72UT9w== X-Google-Smtp-Source: AGHT+IHlUue1eKBzSa9ofHwkc+r/gZvS74Iyd57Rrk4ER92H+cffyUvvKLxWs3c1qxFz5pMlm9SmgQ== X-Received: by 2002:a05:6000:1a8b:b0:38b:ed7b:f78c with SMTP id ffacd0b85a97d-38dc90e6460mr28801f8f.6.1738866221944; Thu, 06 Feb 2025 10:23:41 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:41 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 5/7] clk: eyeq: use the auxiliary device creation helper Date: Thu, 6 Feb 2025 19:23:15 +0100 Message-ID: <20250206-aux-device-create-helper-v2-5-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=3054; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=Jl16tNEPM6BDreyI7YdYngMWZcCbd/CzMR1YX33ZIyU=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrNGoBW0SbiTYayeUTxC2RlUHuB19r1iaZoa ZNxRO4lfHuJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6zQAKCRDm/A8cN/La hSoKD/49wqMtccrlfOJtnw1L5ApXvUBtcnDHmJnLwwi2Fhq035exPNS/nnY+msS7KL7cOrmMHF6 mxHmFt3q/tmaeLR5FBMosAyN5Bz8j2S1df1OmkMgsStHcg8n4fdwNhged6hc+l4zwy2FHp34utQ B7G2PSL52y20bVzuaeiJ579jzgoh2Q03v7rS8wRWoCqLoE+2RdaM4wbHriDXVeT9bSouhtvjH+2 YiA5CjkYKZ5/GkM23UuIqOaFfCH02DOV3Uz3Tn6kV6KICvDeWcsucRoUPqsWsGusMbGV3/D8zo/ +VWt7FwxB14RxMLM/4y0Si5Tty2E7Z6ZCxntN7LybKyJEc2QMGcn7/WDoPPFXHOK+fsdCHApCXG ImvJc7Si0yIzsCnfytpWEHD4cft3N+6MvcNt1H+s/bH7vpbLv4SGR3Vk84uQrtKBjcbC+fkDeyp JOPxKOonOl0OxI17b44ufEDIjKS7poUolsYBxYmOI3Z9kn9KeYvlbh2s1lZleI6NdSox2TSMKRD cOQ5Ti/EGj0hNyEBOxKrzOx+zA+YaF9JPsbb09AoCNxH8/uatDrkZSg0hHTHN7iYwhPHQXeuLn2 afLhmaYY0x+JgmyUm7+KvINkUZ1+oHQsQEKV1Am4uPDUlRj9PJ4r3RtxrsuND90qUtgoHOaaBMj UwL1FsEkOHajzpQ== 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/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..e5d030abd61f05813d4df35189f= 046dbd4f4b185 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, KBUILD_MODNAME, + 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 Tue Dec 16 07:13:53 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.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 0FC271ACEC7 for ; Thu, 6 Feb 2025 18:23:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866227; cv=none; b=temKCCJwVffwWLSYIIKZ6wJnTu4DXHYB3GY/vTJY+5TDRfpLcX7J2WocYpEU4PY/V+SyEoSFBy1nV4F7+fE0PXRRZ9F0YR6JxnjIXkrZ2TPj44QcRf0Dm/AVy10UpT6jz08p6zSvLwPfBJV/elR6ZiSGzaKjDxrUcSb6MhrvyJ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866227; c=relaxed/simple; bh=Udk5nT3zOhzUhLBcSwJhGyb7zx4j6w6RjAkkkWx25oY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VymCpgiONHAHItF7HqzfjL6P6lj3mFxtP2TXDIPM0OS1HTVOqbgpVDMAtXtrHIjhCVdcrhCU0I5APiSAf/vZF8/dMjLA8WFOBV3LOr0WLrJ5qtx344T/mIUmGLgjU2UigOKDrj5SkzygEQxjDa4UhvaKwC8xY37IPr3TKwb2MBc= 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=TJUBwIve; arc=none smtp.client-ip=209.85.128.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="TJUBwIve" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43634b570c1so8979195e9.0 for ; Thu, 06 Feb 2025 10:23:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866223; x=1739471023; 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=0dr7K//uyab/fqg59KO812BXRhGQFW8v0mYDCcCd2z4=; b=TJUBwIveWjxeREuZYhw6miA/NsDNFzOKVwockNeDWvhdZHp0Vq88bBhjSTKk4M4adq nSbeeGie0o/RBcUP8xuKkx2HfYDoVJGZU2H6tc3mPkeyJ2b5wf62ViJxVdHAL5R27Yh0 MDoXccsvpNGUtXDg5ZE7BRemAd/1dV1TNWazTjNnRN2l3NBGay95Sm332MExZjRd5iUW NecZxKQxpH68fLKOsEUTRPOQcL2TtPvPWjjPRnKd5IJbbrnXvnhbk7ZDxBFgp13i5xKm XQs3DV+lecu5OkZyhX5srHEqj+NSQ4XdbE8uizcEFeGPR8imUGlY2wOiWoww0pxgKw9d Qsmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866223; x=1739471023; 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=0dr7K//uyab/fqg59KO812BXRhGQFW8v0mYDCcCd2z4=; b=JpPvyjzJVvCg5hSJJH3WPE0fCFQ9uLiVjuoLhASb/FvHGPfmT6TbovqAoeY8ILW5SX Nvp5pU5Sj1BHU7yqfYmDjYnThtT17FoTbCNtBlH1s1r7pfIwJT8jVmHwknLpe7J3PVZa BoDr3BJwu1iGUbuJecAppJ+syQxl4k4K6EMzfTbatFF0kOt6qczkVQM8HgSNjMZyTP+M w461FFfu8sKSnrNGn/5a4NxSbsfrBck3XIxY2UH5z7lTB7KAPqgx/No+cTu1M2oL09uS GeQBvY1WNd215mPOEaqltbDk95WczxALNSAfotVgVFilNMIHEy3Gs0it/4g7D3ks9QOF MOQw== X-Forwarded-Encrypted: i=1; AJvYcCVGqJlBum7zm8P5qkb1FkRNgxXPYcI1oZ2do/A1CghVqggehyOQHcNRJ7zYHCyBtKzcmT9+k9lv9SwP01w=@vger.kernel.org X-Gm-Message-State: AOJu0YyI9b5aC7uKNyxYbOu0ZKgvtgiokf/GJxhwxgZ2Fcy5ZqDyK0gZ iWSvfhHOXBE9ktS0xDFyescm3jDtZSgSEYtJsgpJQ/+/thD9dQdFTRef0zd6nVM= X-Gm-Gg: ASbGncva7k/L7CudLJuvLLUz5GrFDoY8YAlZ1opIsI/TJi8pm6zf1WiSmkIx9WUHPOd Jj7P9ACgkx167KoH++L4p9fCgmUZzh9JTR0ulnGEbLWoilKLj3lNBS4QN8s0QjLm63GwduRJNCq m2Um7epM3008vLgSF7nCmUfSWsTq0VyJdGv8omB02SrUEVXr8asX/If5HT/7BHnK1MYAbZCnV4T VtUt1SMGOf5CkENBD27ZX4px+IGFT4/WmN7EEug7PBTs0tIL5EOKyrB9OUOhXTYjSWjlN5upXKb cpdxCRckTwrTA5RgRg== X-Google-Smtp-Source: AGHT+IHY++qgicgfSLoTd3fT03vxs7G/UPa+gyYqgZhlWCnDCydfaxDIJRCfQ4ZOWUZDrqb2mXRchQ== X-Received: by 2002:a05:600c:4703:b0:431:547e:81d0 with SMTP id 5b1f17b1804b1-43924988c5amr5024875e9.11.1738866223273; Thu, 06 Feb 2025 10:23:43 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:42 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper Date: Thu, 6 Feb 2025 19:23:16 +0100 Message-ID: <20250206-aux-device-create-helper-v2-6-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=2872; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=Udk5nT3zOhzUhLBcSwJhGyb7zx4j6w6RjAkkkWx25oY=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrOX157nQq0f4MJRtXrV9MVQgvmMHfv+22/x TtnUaZigpqJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6zgAKCRDm/A8cN/La hdApEACvlY8EgS1iQjIlxfMdHCxrZoQiZCQD+uvhkOr1wEBpepiLPFgsyMFbh1IrgUJ2422mp/7 i5rlWSU7gcb1Wr1DOE35AYkNRwNGhqRqfKz3oUxB9E9RJX3OYFZDbgRAxo+ajCiaO0DSQIaWSuR WOj+K8d4gvNEspjj2x5XdFwbNVx9+n+jlk8ztamRmd7ZtQrt6uD8oWFq4ACJ9+uQphQIj66twOr kdeY9MJUOPVFOKgHA1cQ3DlvedHRKGOsiep+dXeiAMb/1ukJiYfy7wYXBhFXhDDiMhdbm2Zkz/i B/cxoKUzPLztHIFz/FCpRnsRMkLeCPRtIB9lGslasT/HcCMTaSsQ/pGNWccGtkUMOwz9i0LzFtz 65F8Jx1E2rBFGzvZM/bjDj4BrvRtMbd2c8dN6lqY8lhzw+8gqAjuV2DyDKdYNeJ7GjpevxGNMau m0WZ/Td+yPRWQ6KpH2DJtnb/qS0r+9jIp77Hd3fnx8c7wmA5EmwV3jFjt0E9ZPsuH+v2eq4D0i5 ciTQmXjYehnqocnxzqTDMKIiybEA2XRwg9TGcmjXBb+K5NJKIlSWbcG8EBTb5uI09Sj5euSjJVv t994jsqs1GzpPEjjzrjl6xDmBzCcXYvprkRT8l3/oU4lKrllG8N7/6oVN4tibYhSEKWhl974NGg 0KbVFwJwKjys3qw== 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 | 57 +++++--------------------------= ---- 1 file changed, 7 insertions(+), 50 deletions(-) diff --git a/drivers/clk/imx/clk-imx8mp-audiomix.c b/drivers/clk/imx/clk-im= x8mp-audiomix.c index c409fc7e061869988f83c7df3ef7860500426323..90e69e253ad5a30cd2a3cb3b63e= be85be1e6b059 100644 --- a/drivers/clk/imx/clk-imx8mp-audiomix.c +++ b/drivers/clk/imx/clk-imx8mp-audiomix.c @@ -228,64 +228,21 @@ 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, KBUILD_MODNAME, + "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 +365,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 Tue Dec 16 07:13:53 2025 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.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 F3F5E1DE4C2 for ; Thu, 6 Feb 2025 18:23:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866230; cv=none; b=JQgL4UvCetxjZdm9OUgNS8mSQ8VB5P/iMnCoyUeT2pi0ASEmTrXR2yzS58WDHcpXsm+95zjPJAJgzC3GRxMmvjDDnCHkhKuWcdaX+YV7ao3nlEPWkjvMMxwTRDTzPYO4WdSPUiDnHCIJ+FK+nfzHPCGC3j7GJwZFxazKnoeJeQo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738866230; c=relaxed/simple; bh=nV50d2l8sTAqpRlICAUv2Vcnn5FZGi3rfjs5+uF2t8g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r11PNbxrknb1ArXh+4IbLUrnwBsJ4MxmEQeqwHwT34hB7nIrDzzKUTw3zimKr/4VvyvTm1JQSuqxlmo1R3llMgUvIkO/+mS4B6ZXS+YEkCJyriyerlPMbji3OOJ/WedVXTfxikaSYTM/48b1sKeAicEDhb8fOOftvLwOYCYWiO4= 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=CqNFplqc; arc=none smtp.client-ip=209.85.128.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="CqNFplqc" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4361e89b6daso8338295e9.3 for ; Thu, 06 Feb 2025 10:23:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1738866226; x=1739471026; 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=X/FWF5GVFFYijTs0iTNX9qsUXQnQLDn7QOW15p8JmhQ=; b=CqNFplqcfDNf9xAJJlEoNmhYJ5Ue7b/JtovZw32pU24AplLUft3F0LSSS9ZqBwCTwn +XxgQVEac97OnhCo4D9B1FQsYXCYXJzvCbW8uHioTAYcMSkBW9IWXM2QBJiPCeFucurx 3KTTNXOCKq0S5I7yX+rNBxiJ3CT2shlOMY7/KG7E1/3TjLNONIvqmJHV1MWQEyF6cVNy 9vKS8TyX7yYl6JKj+YPnz0r0XEDFKqY091sEMPo+HHgUdrgNie3YFcipcvFcq0bcHEpc zlEMX0hWEz4HRFTdDUGrTd9LrSMq0P/Q+XGrh5BEIcqaUtge55fyzmdPEx2z2iL/vt4m nDuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738866226; x=1739471026; 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=X/FWF5GVFFYijTs0iTNX9qsUXQnQLDn7QOW15p8JmhQ=; b=Ot6Rz2746wXpZC2VlHHndckrgMjKqVVNv/hcPi6aPW8jMlj4q20rR0D/2A4ugTjjLH WpqweEzQ/tkBaJGb94YhjGiiodI86M0hIEjzhsIWRmgk9YHwsi2UCxjcWR8ay1xFI2GS sskj7BVHYiinME/MP28OFqyz9K3KfBuMyOsLa4mwu8tQLAt85SxslKFyt+zdlzp0d3wl F2C3A98t20jIv14Pi7YbkkwKNVHk6ZV7C8yA+uUgMvodzNCgRmQCLcEfo2at3dgbQZiU p1MAuqIhW6XlBDxxk4SfCwi/vdlfhet18EzUuM7LhfSqRuu5NMpZcmjnFso7ui3FzTJM oJjQ== X-Forwarded-Encrypted: i=1; AJvYcCUtkufr0ldrxhKKD2mAr35ltGClzQMyBL5+5VM6EIkPcY1NlFqXad/iAszM5vGngCXN4DcBkIzvaFR1U/k=@vger.kernel.org X-Gm-Message-State: AOJu0Yz93NgsXB36F3OJi3uPJEjiWrzB7IjtI/Pq9pmiyy3AZ6HvypFy zsxM9qr3X7Bv8YQv7Nf15oZ8v5dfPGQ+tJVOFCW7PgUzKtnr+exEmjhlyI7eQXM= X-Gm-Gg: ASbGncvMMWHWY/ePYe5JysvsINH6loBVKlxOTHN3HftYXjXNCnfM2B3qIKKoQad94Pb e7EZIo6LrcXgRQneV+3Dx9XdSbRdowjQ71bSPH1VzSIRzTBWftQ/m31TlDrSCTKw5Q7McfnprUp RMAK4YvB0as58wtzrn+MvHs6+LxBwB0ET3Dry1N/Ms62FE/28o84BSVpKuV0GRYEQ9HUPrnwX4B 29zp3cIn6ne7nfx808MPDmbBdZzq+QHHk1Gm8i3/3jjtcHrYwXKwRAzkJBX24DVZhctjkV+1ZDP 9Mw6k9sAU7L29wvw5w== X-Google-Smtp-Source: AGHT+IFPFWwc8fGqtGIXVNtpOYmBu6OWnd8LThioOVo0HoEt9wKjs1fCD9BbEhP+jFqsl+rjz7Twsg== X-Received: by 2002:a05:6000:1a8d:b0:38a:418e:bee with SMTP id ffacd0b85a97d-38dc935f488mr7518f8f.42.1738866226191; Thu, 06 Feb 2025 10:23:46 -0800 (PST) Received: from toaster.lan ([2a01:e0a:3c5:5fb1:a0d6:294f:5246:28d4]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-4390d94d802sm66111445e9.12.2025.02.06.10.23.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 10:23:43 -0800 (PST) From: Jerome Brunet To: Greg Kroah-Hartman , Dave Ertman , Ira Weiny , "Rafael J. Wysocki" , Stephen Boyd , Arnd Bergmann Cc: Jerome Brunet , linux-kernel@vger.kernel.org Subject: [PATCH v2 7/7] clk: amlogic: axg-audio: use the auxiliary reset driver - take 2 Date: Thu, 6 Feb 2025 19:23:17 +0100 Message-ID: <20250206-aux-device-create-helper-v2-7-fa6a0f326527@baylibre.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@baylibre.com> References: <20250206-aux-device-create-helper-v2-0-fa6a0f326527@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=5924; i=jbrunet@baylibre.com; h=from:subject:message-id; bh=PbrzrWR160CDTRwBAVf6FavVZYakvRgUuUnwzkJYQt8=; b=owEBbQKS/ZANAwAKAeb8Dxw38tqFAcsmYgBnpPrPVTVuWbsfmdKU3lPHHMpUgwx9aqJtnzkX2 4Jo4NjtLiaJAjMEAAEKAB0WIQT04VmuGPP1bV8btxvm/A8cN/LahQUCZ6T6zwAKCRDm/A8cN/La hXPPD/9nSvI5m4n7b33Jqf3PGpwL6Fj4tSieLIiPuPqeC7uPEmwcOirgLEY1mIy6NIlj8kx6pHt QzZFHoCymBXeq3b9qIsBsmOXPSxQ9r84itAQFTfC3L8WVRKkkguRdP6mPiW5MLZ2GiHzPMV7uP4 qK6GX2u7FcdtPmJSRMZ53IC7dGuyEDa4MQBfeoq1dopJ5cJP6ln9KGT+MuPx3ZOcHSiaSJy8N7E xAR+0UkfrBzXNnGoIVHlm0lFjRfSJM7ivdIJZL+8e5j9kN4CrtfqMXlMiJUr6LtovkQPNQiapJl tun1aikweFqNot4nAlnMKZSoUv+zBMa3tlFwWi7yUGsxQTESRBk699KrwYO2D1OtQJoi+cwhWpc 1rtHmokxPL0XAiZ1bJi2YkvG2qWlVwkun2kTXXPrTLOpx6uMeBC2lJlNO85ObSQ4wxR5vNOAM4U vIYlS8bPgLFRVRhJr3ihGfMJkgmEZJSUcYxc3ADe006DBcI6lAIi1mfAuKSFM0cVGGPAf/jSiEd aUDL3f+yjd2poXSuNPzJ3lYITlOnURPp/aqkfztiE4z8C5cOs7x9JGouceOr7R4h/9DWBU9crER Am840kk0llNhkDw5HlNttPDDQNQlGnSR0leJ+EikzV+vV11RYYkvnc0IdrcW09XHD/wbtBIJroG CQp8n2ZiK81Be3A== 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 decided to stick 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. =20 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..172d3e8157d2e9a6f3cdc4ed7be= a89791824493a 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