From mboxrd@z Thu Jan 1 00:00:00 1970 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 D4EAE22DA13 for ; Wed, 11 Jun 2025 06:14:24 +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=1749622466; cv=none; b=iWNZSeQ3NNkKyMHgDOuCVnF05yNk/E/i/Efg89EB2PQ1e/TpKx+IRn/dqUy5H4rGYbie0MaKSzMsAWKs8zuRi2k4klnm9nAlKDLPaEmYADhfjGmSNSDcjEzijD6n9PHrOB795f3wDqezyTrRQAMsOz8ZrOl7L4tzuHoFKcwsIz8= 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.47 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-f47.google.com with SMTP id 5b1f17b1804b1-4531898b208so313575e9.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=F621ZeIvfrDBDT8sfuGMTpTPdb3a9wWlQ4jqGQMUjnxOTCryLEGzdOBwZZK8IS7RUS wAzRYi7gB7cAdDYSscF9pk8ci2uD9eGz4iqdDeSV3v8IPI4Cmklh3uGRhcbFQe1ZUK5k doSeSVLy1E9VmqzHY0VFhwzJ2oH9/tcAJYFYZZaP/kvVhCTA+UxhjbK1y47ozMADIpo9 pCll/iBBTy7teoK+aM+GzB4w3f+95ojT5hYXdzpciLOwnXW1gsZ7gyomH2brL410kRLc FGb19xHS2zxGjUejNuAVzo3xk28TWE9LMc0QjFc5DYB8n3SWSQxlOdoaNWcWqje/um/U /VbA== X-Forwarded-Encrypted: i=1; AJvYcCVejMK4HTeR2AfYVSMO/Nc2aLPgunB4hn+mMk3KypBveH//jJFsPfd9A2NBt/h5i3Ms3zBvBvXCc0s=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6EOAVcjIf9NMj80OupeFVbW+j628FflAtN6MYy30Ci022y1U+ UwlNq6XZ7jv3iAPkmhIFyQ+4bZwvmHq8RozAo5JcRyT8JO4PTCsK0hF/y+kcflgvRpY= X-Gm-Gg: ASbGncvoXkHQfTEEG7gkfEcc6EcXwMalPEI8fODxKgGprd6cH/3/UV2nFzd9I/ausxu nVu2wi+oypb0q87gTAXTnmsH4ETJxrJyKuNuFjXoVnU0Qjx7wNPKGFGD2KmEgy2C47tqWyXc6O0 +e+5rdTzxGNMG/3mJ+ZPKExaZo6CT71tBL7B9GEi47A3v/MBNXXCefOaB5C9yc1H/eblNlhAakR LN+daH93gfYkinJgN5jD+lYLyeg7hx8RAIQeSnJMsNwmz2M3S3XpWr27UDdTE4hFksP1uURWgaN FmhUfC1QCVpw2DOyHNXFCb1wpHWbjz+puLnkda+bAJgcSc1JaFJwOTjb3SA57QtDXwrL2ra5AUX 7kJ7mD58= 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-rtc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit 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..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