From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: "Linus Walleij" <linus.walleij@linaro.org>,
"Basavaraj Natikar" <Basavaraj.Natikar@amd.com>,
"Shyam Sundar S K" <Shyam-sundar.S-k@amd.com>,
"Andrew Jeffery" <andrew@codeconstruct.com.au>,
"Joel Stanley" <joel@jms.id.au>,
"Avi Fishman" <avifishman70@gmail.com>,
"Tomer Maimon" <tmaimon77@gmail.com>,
"Tali Perry" <tali.perry1@gmail.com>,
"Patrick Venture" <venture@google.com>,
"Nancy Yuen" <yuenn@google.com>,
"Benjamin Fair" <benjaminfair@google.com>,
"Jonathan Neuschäfer" <j.neuschaefer@gmx.net>,
"Rafał Miłecki" <rafal@milecki.pl>,
"Broadcom internal kernel review list"
<bcm-kernel-feedback-list@broadcom.com>,
"Ray Jui" <rjui@broadcom.com>,
"Scott Branden" <sbranden@broadcom.com>,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"David Rhodes" <david.rhodes@cirrus.com>,
"Richard Fitzgerald" <rf@opensource.cirrus.com>,
"Charles Keepax" <ckeepax@opensource.cirrus.com>,
"Lorenzo Bianconi" <lorenzo@kernel.org>,
"Sean Wang" <sean.wang@kernel.org>,
"Jesper Nilsson" <jesper.nilsson@axis.com>,
"Lars Persson" <lars.persson@axis.com>,
"Damien Le Moal" <dlemoal@kernel.org>,
"Vladimir Zapolskiy" <vz@mleia.com>,
"Michal Simek" <michal.simek@amd.com>,
"Emil Renner Berthing" <kernel@esmil.dk>,
"Jianlong Huang" <jianlong.huang@starfivetech.com>,
"Hal Feng" <hal.feng@starfivetech.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
"Manivannan Sadhasivam" <mani@kernel.org>
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 <krzysztof.kozlowski@linaro.org>
Subject: [PATCH v2 04/17] pinctrl: Constify pointers to 'pinctrl_desc'
Date: Wed, 11 Jun 2025 08:13:36 +0200 [thread overview]
Message-ID: <20250611-pinctrl-const-desc-v2-4-b11c1d650384@linaro.org> (raw)
In-Reply-To: <20250611-pinctrl-const-desc-v2-0-b11c1d650384@linaro.org>
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 <geert+renesas@glider.be>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
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..73b78d6eac672095c8556763af1744be6f558501 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -2062,7 +2062,7 @@ static int pinctrl_check_ops(struct pinctrl_dev *pctldev)
* @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);
}
-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 unbound.
*/
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 unbound.
*/
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..fc513a9cdd4f2f9dd4ec4a088eee53fdbd673285 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/pinctrl.h
index 9a8189ffd0f2c28c88640280deee194d17d18400..d138e18156452e008f24ca06358fcab45135632f 100644
--- a/include/linux/pinctrl/pinctrl.h
+++ b/include/linux/pinctrl/pinctrl.h
@@ -165,25 +165,25 @@ struct pinctrl_desc {
/* External interface to pin controller */
-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);
/* 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 *pctldesc,
struct device *dev, void *driver_data);
extern void pinctrl_unregister(struct pinctrl_dev *pctldev);
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);
/* 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);
extern void devm_pinctrl_unregister(struct device *dev,
--
2.45.2
next prev parent reply other threads:[~2025-06-11 6:14 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-11 6:13 [PATCH v2 00/17] pinctrl: Constify pointers to 'pinctrl_desc' and more Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 01/17] pinctrl: starfive: Allow compile testing on other platforms Krzysztof Kozlowski
2025-06-11 7:49 ` Hal Feng
2025-06-11 12:48 ` Emil Renner Berthing
2025-06-11 6:13 ` [PATCH v2 02/17] pinctrl: Allow compile testing for K210, TB10X and ZYNQ Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 03/17] pinctrl: amd: Constify pointers to 'pinctrl_desc' Krzysztof Kozlowski
2025-06-11 6:13 ` Krzysztof Kozlowski [this message]
2025-06-11 6:13 ` [PATCH v2 05/17] pinctrl: aspeed: Constify static 'pinctrl_desc' Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 06/17] pinctrl: nuvoton: " Krzysztof Kozlowski
2025-06-14 11:17 ` J. Neuschäfer
2025-06-11 6:13 ` [PATCH v2 07/17] pinctrl: bcm: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 08/17] pinctrl: bcm: cygnus-mux: Move fixed assignments to 'pinctrl_desc' definition Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 09/17] pinctrl: bcm: cygnus-ns2: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 10/17] pinctrl: bcm: cygnus-nsp: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 11/17] pinctrl: as3722: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 12/17] pinctrl: max77620: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 13/17] pinctrl: palmas: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 14/17] pinctrl: renesas: " Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 15/17] pinctrl: pistachio: Constify static 'pinctrl_desc' Krzysztof Kozlowski
2025-06-11 6:13 ` [PATCH v2 16/17] pinctrl: " Krzysztof Kozlowski
2025-06-11 9:54 ` Vladimir Zapolskiy
2025-06-11 12:49 ` Emil Renner Berthing
2025-06-12 3:00 ` Hal Feng
2025-06-11 6:13 ` [PATCH v2 17/17] rtc: stm32: " Krzysztof Kozlowski
2025-06-11 7:35 ` Alexandre Belloni
2025-06-18 11:27 ` [PATCH v2 00/17] pinctrl: Constify pointers to 'pinctrl_desc' and more Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250611-pinctrl-const-desc-v2-4-b11c1d650384@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=Basavaraj.Natikar@amd.com \
--cc=Shyam-sundar.S-k@amd.com \
--cc=alexandre.belloni@bootlin.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew@codeconstruct.com.au \
--cc=angelogioacchino.delregno@collabora.com \
--cc=avifishman70@gmail.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=benjaminfair@google.com \
--cc=ckeepax@opensource.cirrus.com \
--cc=david.rhodes@cirrus.com \
--cc=dlemoal@kernel.org \
--cc=geert+renesas@glider.be \
--cc=hal.feng@starfivetech.com \
--cc=j.neuschaefer@gmx.net \
--cc=jesper.nilsson@axis.com \
--cc=jianlong.huang@starfivetech.com \
--cc=joel@jms.id.au \
--cc=kernel@esmil.dk \
--cc=lars.persson@axis.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@axis.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-rtc@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=lorenzo@kernel.org \
--cc=mani@kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=michal.simek@amd.com \
--cc=openbmc@lists.ozlabs.org \
--cc=patches@opensource.cirrus.com \
--cc=rafal@milecki.pl \
--cc=rf@opensource.cirrus.com \
--cc=rjui@broadcom.com \
--cc=sbranden@broadcom.com \
--cc=sean.wang@kernel.org \
--cc=tali.perry1@gmail.com \
--cc=tmaimon77@gmail.com \
--cc=venture@google.com \
--cc=vz@mleia.com \
--cc=yuenn@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).