From nobody Sat Oct 11 12:08:55 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 ADEF222D9EA for ; Wed, 11 Jun 2025 06:14:24 +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=1749622466; cv=none; b=adg+1H7X5vr9Q7bq3Wo85n0HHIewQLcLQZP1y54kGGEyUjJ2oODWgukcFE9IoJYMHLPuI7I7yOeWxhE4btvnqoK9KCJlAggOJWIhaTpFbK1DVkML+K5NzcF8VOZpleTMBfv4fAMt923WkiO0rcVuZ6aIY8n2TjKDts+X8SRKQRk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749622466; c=relaxed/simple; bh=nR+2FS8PYTwR5NQQoTqx9iHRdQvo+vV4Iua6AqxT5Nc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nkZVVxdNeo7HibG2yD2LplPkZpuEaO69XUrdeCaDvHmujvCfIZFOhwyco4srIVIwxwpxIso8uVCotIFrl7GYv5RzLWox3+U5FInA5mXMKpjChXBYgFGaqPnonbYVOLBIUb9SY9xYIT8uyLKkKfFHXzNeXlyF/qGCckhFTaLBI8Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=otRAjlOK; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="otRAjlOK" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4531898b208so313565e9.3 for ; Tue, 10 Jun 2025 23:14:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749622463; x=1750227263; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ecu8yupT+rCBH08RZ8e0dqpuzlN5xMN0SV7HkCMJ9k8=; b=otRAjlOK4zKkyejCfvh3qXBIUg+MbJBqaqGOrEfA7OfkJJfOTTvgG5toU//2rxl6Np uV5HTyZWA/ipWd20J4Cfs+eU/wRvIrTC2HOl2csXZVqGewn2l7GGU+UnvHx2yku4rZaJ JvY8Jri76MulgtKiT2oxbVshefGwk3ysc3OG9ggik8NplX6w8dCTJi4+jtJ9ZkCHHCy1 Mo+L2MPaxzof3K7exm7rhtRZcyVjZ8e+LG2u9H48mpeh9dCBI3c/ldBJyEbNJIv57G5E k1O3dYT4br9PgRtPej4VxvATVt3/gMTPT/RoD9QoLQd2b7FFVekdGXsYGefjPKXfhuft IIiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749622463; x=1750227263; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ecu8yupT+rCBH08RZ8e0dqpuzlN5xMN0SV7HkCMJ9k8=; b=w7C5PTkV4GaehKi81StWSKi13FenMD0qS97sOL3JRG03iUGOmh4FlAs22L6R/ovLPO qLdOmN3g4ZGGwhUrR64wHYOcIzFPafCtpF3t/UbQJ5MPfpvF3qBfoZ8NTx8kOZp7bq8i GD+IwwNEvNvajqF4xl9BxUcwqmi+HGwIwtIUE9wW9bHmyhatOTF2XinXcsUAXeDhMJpp WxqKkqR5emSQxD4W396SnMT7BWYZB520Crg3wcv+Tlrb28+I7IhlOzToCSf1dYzoEvak 66DHFOIkgbzAwPcTrvn3Qfce5JbirXYVDrVW4z+4RcojLEgoXbho29h1//uSfbMRsyJ6 svmg== X-Forwarded-Encrypted: i=1; AJvYcCUNdITQoKjCxX1ZAyUyrBriJfzU+ciqCiXdA09wGd9OevlfImXudh3eh2nhwS7cJ2Z3ncGbxunTYhj+dfk=@vger.kernel.org X-Gm-Message-State: AOJu0YzIRSmBvTeU3SilsuSfV2F9bfsGegiU/lMUXh0j2AXgoIkEX2SV HW6o4/Wo2h2QkpKzDe/RHEmj8ZjGRvj7CSdlkbROoEiWdE9UUB4KXhDjSvA4O0BRIH4= X-Gm-Gg: ASbGncvoaZ7kpSVMYrEHYERoB5AuTG9Z7lA7McoI4fNZBcqCGgX9vTYGdn6jiwmZGTc onfQ9vbQJcdx/mXWD5q7d5oj8+8lHVUlPii1w3d2cyTSEZ2fr9sM2zDJTSP7/4kDQfQMUWL1hzp pYaZHpXmo/xupvscn9wWVyxP8LMh2/pnOC3xMRsVcm2d/8WGMVJ7uV289i4pZhLaPbE8boLPW2P a4vKER4fuDL8Q3G5fp1qtxOgt3a1qBRIPL3Aln2izr4gGueWf6ktVwCi8KuGV97/31FhnUVzukg tGY81Y9mIKcO/YM18ntt4kf5/oUWPCKIpqtwMyTmZUjX3Q9OvettMxpAVNKDcy+rSmpX70nAGct t5geDFUk= X-Google-Smtp-Source: AGHT+IFfJgestylyWWTFhvNWZXRgEjP+auivw4jI2Dh1LfZu2fjTV+4EOE/BFvcRpTxAjjUQnLhlFQ== X-Received: by 2002:a05:6000:2088:b0:3a4:d4a0:1315 with SMTP id ffacd0b85a97d-3a5586c59cfmr506452f8f.6.1749622462916; Tue, 10 Jun 2025 23:14:22 -0700 (PDT) Received: from [192.168.1.29] ([178.197.223.125]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244f516sm14142791f8f.74.2025.06.10.23.14.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jun 2025 23:14:21 -0700 (PDT) From: Krzysztof Kozlowski Date: Wed, 11 Jun 2025 08:13:36 +0200 Subject: [PATCH v2 04/17] pinctrl: Constify pointers to 'pinctrl_desc' 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" Content-Transfer-Encoding: quoted-printable Message-Id: <20250611-pinctrl-const-desc-v2-4-b11c1d650384@linaro.org> References: <20250611-pinctrl-const-desc-v2-0-b11c1d650384@linaro.org> In-Reply-To: <20250611-pinctrl-const-desc-v2-0-b11c1d650384@linaro.org> To: Linus Walleij , Basavaraj Natikar , Shyam Sundar S K , Andrew Jeffery , Joel Stanley , Avi Fishman , Tomer Maimon , Tali Perry , Patrick Venture , Nancy Yuen , Benjamin Fair , =?utf-8?q?Jonathan_Neusch=C3=A4fer?= , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Broadcom internal kernel review list , Ray Jui , Scott Branden , Geert Uytterhoeven , David Rhodes , Richard Fitzgerald , Charles Keepax , Lorenzo Bianconi , Sean Wang , Jesper Nilsson , Lars Persson , Damien Le Moal , Vladimir Zapolskiy , Michal Simek , Emil Renner Berthing , Jianlong Huang , Hal Feng , Matthias Brugger , AngeloGioacchino Del Regno , Alexandre Belloni , Maxime Coquelin , Alexandre Torgue , Manivannan Sadhasivam Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-mediatek@lists.infradead.org, linux-arm-kernel@axis.com, linux-riscv@lists.infradead.org, linux-rtc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5356; i=krzysztof.kozlowski@linaro.org; h=from:subject:message-id; bh=nR+2FS8PYTwR5NQQoTqx9iHRdQvo+vV4Iua6AqxT5Nc=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBoSR6ikhHWTfLaUx53ErHmCNvMDtuwZ6lVKR4RR 0yG94URNwGJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaEkeogAKCRDBN2bmhouD 13d1D/0cTiL0nPIVc59aoSJVwhVV3NR69H2ygZw5k+q2RV7dSayB/i8dGfZgnZHJiG21q1xVLex vusrPMcisMsjokc7a7W0t0dTxxM8FS11ivjQfeWUutmL7xCo9FjTJC35TamPh/eTK3IbJyVpVEv DQ42DQ7ogisRRN8V0a7C5F62h9jU8rsNRdRWMfEAVoIWlaRQKdFms4jjazFWDVtLpIWq8WRZq9L gF5gELsOUj8CT8CYb8R+FoPrSvCtU+A4O4EXwm5TdHORWpbU95IfR20Av1HUyK7tad6COn3Jmwi 3Qq8ZVpD0rdjEmlLZ+HIwdVO/CBSMjGTkQCcycSK4I47cc22MDLVQdsTesZpi6d1xdninpaaX7L PoOfudghYpHzaziiwHv7cgMyr7WARCnREfTLLqOYjgxbklA7EvXpIkQ9VmFmEedee/wp3Mq6sTT kyIhkCXj/eanf82v/IOnh9Fp6IThWVBU6RGuCWS0bepidD+XYDMj01M4a6petC2k2iNg8q331wq U0NPQBNuLmfidJTf/A0acOYAvSw33H2S1crIvjNMY3KJ4kfiWeNpLYeFPaCebi0ig6NZxukpRa1 RiMOrWRAyJmV2ZuPSLFvbxxocjhYKp3U4q+/f5tMjHmqP5tB0i3qvrjO7khJC5XWUoZllIcX3lX wmRssquEAgIJxkw== X-Developer-Key: i=krzysztof.kozlowski@linaro.org; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B Pin controller core code only stores the pointer to 'struct pinctrl_desc' and does not modify it anywhere. The pointer can be changed to pointer to const which makes the code safer, explicit and later allows constifying 'pinctrl_desc' allocations in individual drivers. Reviewed-by: Geert Uytterhoeven Signed-off-by: Krzysztof Kozlowski --- This is the pre-requisite patch for all further patches. --- drivers/pinctrl/core.c | 13 +++++++------ drivers/pinctrl/core.h | 2 +- include/linux/pinctrl/pinctrl.h | 8 ++++---- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index 9046292d1360218bc70eff418fb8d1028c22b11a..73b78d6eac672095c8556763af1= 744be6f558501 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -2062,7 +2062,7 @@ static int pinctrl_check_ops(struct pinctrl_dev *pctl= dev) * @driver_data: private pin controller data for this pin controller */ static struct pinctrl_dev * -pinctrl_init_controller(struct pinctrl_desc *pctldesc, struct device *dev, +pinctrl_init_controller(const struct pinctrl_desc *pctldesc, struct device= *dev, void *driver_data) { struct pinctrl_dev *pctldev; @@ -2132,7 +2132,8 @@ pinctrl_init_controller(struct pinctrl_desc *pctldesc= , struct device *dev, return ERR_PTR(ret); } =20 -static void pinctrl_uninit_controller(struct pinctrl_dev *pctldev, struct = pinctrl_desc *pctldesc) +static void pinctrl_uninit_controller(struct pinctrl_dev *pctldev, + const struct pinctrl_desc *pctldesc) { pinctrl_free_pindescs(pctldev, pctldesc->pins, pctldesc->npins); @@ -2209,7 +2210,7 @@ EXPORT_SYMBOL_GPL(pinctrl_enable); * struct pinctrl_dev handle. To avoid issues later on, please use the * new pinctrl_register_and_init() below instead. */ -struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc, +struct pinctrl_dev *pinctrl_register(const struct pinctrl_desc *pctldesc, struct device *dev, void *driver_data) { struct pinctrl_dev *pctldev; @@ -2239,7 +2240,7 @@ EXPORT_SYMBOL_GPL(pinctrl_register); * Note that pinctrl_enable() still needs to be manually called after * this once the driver is ready. */ -int pinctrl_register_and_init(struct pinctrl_desc *pctldesc, +int pinctrl_register_and_init(const struct pinctrl_desc *pctldesc, struct device *dev, void *driver_data, struct pinctrl_dev **pctldev) { @@ -2330,7 +2331,7 @@ static int devm_pinctrl_dev_match(struct device *dev,= void *res, void *data) * The pinctrl device will be automatically released when the device is un= bound. */ struct pinctrl_dev *devm_pinctrl_register(struct device *dev, - struct pinctrl_desc *pctldesc, + const struct pinctrl_desc *pctldesc, void *driver_data) { struct pinctrl_dev **ptr, *pctldev; @@ -2364,7 +2365,7 @@ EXPORT_SYMBOL_GPL(devm_pinctrl_register); * The pinctrl device will be automatically released when the device is un= bound. */ int devm_pinctrl_register_and_init(struct device *dev, - struct pinctrl_desc *pctldesc, + const struct pinctrl_desc *pctldesc, void *driver_data, struct pinctrl_dev **pctldev) { diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h index d6c24978e7081a663b8a0fa6cb9314670575b1bc..fc513a9cdd4f2f9dd4ec4a088ee= e53fdbd673285 100644 --- a/drivers/pinctrl/core.h +++ b/drivers/pinctrl/core.h @@ -51,7 +51,7 @@ struct pinctrl_state; */ struct pinctrl_dev { struct list_head node; - struct pinctrl_desc *desc; + const struct pinctrl_desc *desc; struct radix_tree_root pin_desc_tree; #ifdef CONFIG_GENERIC_PINCTRL_GROUPS struct radix_tree_root pin_group_tree; diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctr= l.h index 9a8189ffd0f2c28c88640280deee194d17d18400..d138e18156452e008f24ca06358= fcab45135632f 100644 --- a/include/linux/pinctrl/pinctrl.h +++ b/include/linux/pinctrl/pinctrl.h @@ -165,25 +165,25 @@ struct pinctrl_desc { =20 /* External interface to pin controller */ =20 -extern int pinctrl_register_and_init(struct pinctrl_desc *pctldesc, +extern int pinctrl_register_and_init(const struct pinctrl_desc *pctldesc, struct device *dev, void *driver_data, struct pinctrl_dev **pctldev); extern int pinctrl_enable(struct pinctrl_dev *pctldev); =20 /* Please use pinctrl_register_and_init() and pinctrl_enable() instead */ -extern struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc, +extern struct pinctrl_dev *pinctrl_register(const struct pinctrl_desc *pct= ldesc, struct device *dev, void *driver_data); =20 extern void pinctrl_unregister(struct pinctrl_dev *pctldev); =20 extern int devm_pinctrl_register_and_init(struct device *dev, - struct pinctrl_desc *pctldesc, + const struct pinctrl_desc *pctldesc, void *driver_data, struct pinctrl_dev **pctldev); =20 /* Please use devm_pinctrl_register_and_init() instead */ extern struct pinctrl_dev *devm_pinctrl_register(struct device *dev, - struct pinctrl_desc *pctldesc, + const struct pinctrl_desc *pctldesc, void *driver_data); =20 extern void devm_pinctrl_unregister(struct device *dev, --=20 2.45.2