linux-rtc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


  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).