From nobody Thu Sep 24 21:19:57 2026 Received: from linkmauve.fr (linkmauve.fr [82.65.109.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E50434B1AD; Sun, 20 Sep 2026 11:10:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.65.109.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; cv=none; b=P25cW84wW1aSjvoCK1Cz2gKKL9wCmV7WszZFxBjyPdjgCfNrEApu08AA2uFPI5vKeyCNkdcI6LCPAPstnQqsNLyBagZlqccALmUe2uB4/QhSCg08JgEJ9hyIswYIyZJNfuZzkGYDbcFIdmPd8r/TNMTr+B800peYGEzkReKI6yo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; c=relaxed/simple; bh=8jtHXts22NMPFAisUu0L5owsq6SoZk1pOpwgPhZuu7s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=pprQExI3WV0TwCdt8U8hHf9vHmQjWgpnwkXZzacQ8Fx+lRsb8l87OwqPnvv/FDf1KTBFOw6uifxvTybi0N2gfWd80jyJV9PHczkN+MD1jDkMbrRsZrADK+KquIbyi2/4ZuK7JNiMSUa8ebB0V9djxbSlZc0SGKNSkQS2NarbBqY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr; spf=pass smtp.mailfrom=linkmauve.fr; arc=none smtp.client-ip=82.65.109.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linkmauve.fr Received: by linkmauve.fr (Postfix, from userid 1000) id 7ED297189A58; Sun, 20 Sep 2026 13:10:03 +0200 (CEST) From: Link Mauve To: Srinivas Kandagatla Cc: Link Mauve , Sasha Finkelstein , Andy Shevchenko , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Sven Peter , Janne Grunau , Neal Gompa , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Vladimir Zapolskiy , =?UTF-8?q?Andr=C3=A9=20Draszik?= , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Kalyani Akula , Michal Simek , Miguel Ojeda , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?UTF-8?q?Onur=20=C3=96zkan?= , Johan Hovold , Ronald Claveau , Daniel Lezcano , linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, imx@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, rust-for-linux@vger.kernel.org Subject: [PATCH v6 1/4] firmware: meson: pass a const buffer to meson_sm_call_write() Date: Sun, 20 Sep 2026 13:09:54 +0200 Message-ID: <20260920111000.2404131-2-linkmauve@linkmauve.fr> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260920111000.2404131-1-linkmauve@linkmauve.fr> References: <20260920111000.2404131-1-linkmauve@linkmauve.fr> 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 This was found while introducing the new nvmem-provider reg_write_const callback in meson_sm_call_write()=E2=80=99s only user, in meson-efuse. Signed-off-by: Link Mauve Reviewed-by: Andy Shevchenko --- drivers/firmware/meson/meson_sm.c | 2 +- drivers/nvmem/meson-efuse.c | 4 ++-- include/linux/firmware/meson/meson_sm.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/firmware/meson/meson_sm.c b/drivers/firmware/meson/mes= on_sm.c index ab9751a59b55..5d4da2e3c3a9 100644 --- a/drivers/firmware/meson/meson_sm.c +++ b/drivers/firmware/meson/meson_sm.c @@ -196,7 +196,7 @@ EXPORT_SYMBOL(meson_sm_call_read); * * Return: size of sent data on success, a negative value on error */ -int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer, +int meson_sm_call_write(struct meson_sm_firmware *fw, const void *buffer, unsigned int size, unsigned int cmd_index, u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4) { diff --git a/drivers/nvmem/meson-efuse.c b/drivers/nvmem/meson-efuse.c index d7f9ac99a212..f71854f89950 100644 --- a/drivers/nvmem/meson-efuse.c +++ b/drivers/nvmem/meson-efuse.c @@ -20,7 +20,7 @@ static int meson_efuse_read(void *context, unsigned int o= ffset, struct meson_sm_firmware *fw =3D context; int ret; =20 - ret =3D meson_sm_call_read(fw, (u8 *)val, bytes, SM_EFUSE_READ, offset, + ret =3D meson_sm_call_read(fw, val, bytes, SM_EFUSE_READ, offset, bytes, 0, 0, 0); =20 return ret < 0 ? ret : 0; @@ -32,7 +32,7 @@ static int meson_efuse_write(void *context, unsigned int = offset, struct meson_sm_firmware *fw =3D context; int ret; =20 - ret =3D meson_sm_call_write(fw, (u8 *)val, bytes, SM_EFUSE_WRITE, offset, + ret =3D meson_sm_call_write(fw, val, bytes, SM_EFUSE_WRITE, offset, bytes, 0, 0, 0); =20 return ret < 0 ? ret : 0; diff --git a/include/linux/firmware/meson/meson_sm.h b/include/linux/firmwa= re/meson/meson_sm.h index 3ebc2bd9a976..92cc61f3a1c0 100644 --- a/include/linux/firmware/meson/meson_sm.h +++ b/include/linux/firmware/meson/meson_sm.h @@ -21,7 +21,7 @@ struct meson_sm_firmware; =20 int meson_sm_call(struct meson_sm_firmware *fw, unsigned int cmd_index, s32 *ret, u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4); -int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer, +int meson_sm_call_write(struct meson_sm_firmware *fw, const void *buffer, unsigned int b_size, unsigned int cmd_index, u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4); int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer, --=20 2.55.0 From nobody Thu Sep 24 21:19:57 2026 Received: from linkmauve.fr (linkmauve.fr [82.65.109.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E5DF37F738; Sun, 20 Sep 2026 11:10:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.65.109.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; cv=none; b=I+MQaDVg0zI2J34aKuDvXx+K36zcEnN3BDgo2sqkm0zbcsZI7CfvMN+XsS2lkzhN4qrL37Em2brvEv2qnHXaDjXWAVqYdxGZWgjKpYOe3E10bb7gpFBFpgofepIk1V94QYf0dI261sskuYPhwzfviUzWUg2VzigJV7STkW0LJ2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; c=relaxed/simple; bh=azdXc1IzOe38GwteG2S3CRJzl4hzr7irYicN3xkehKY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fsm3UN+oRClMhspUgWZt5MSLXT7dt2XaYWmAaS8jgyBDJUNGZVXVzVc/91lo5Z4A+NnSe523Cz3yxGSEI3dx5FIx+kkpRLnTgjEh8b+OEyya8BBgQxRKpmO1haf81abkZS7zdxji6yIbI1Hw8bDZ+AC/VBsbSAaHQ1nDhNf2Ino= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr; spf=pass smtp.mailfrom=linkmauve.fr; arc=none smtp.client-ip=82.65.109.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linkmauve.fr Received: by linkmauve.fr (Postfix, from userid 1000) id 83CB47189A5B; Sun, 20 Sep 2026 13:10:03 +0200 (CEST) From: Link Mauve To: Srinivas Kandagatla Cc: Link Mauve , Sasha Finkelstein , Andy Shevchenko , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Sven Peter , Janne Grunau , Neal Gompa , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Vladimir Zapolskiy , =?UTF-8?q?Andr=C3=A9=20Draszik?= , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Kalyani Akula , Michal Simek , Miguel Ojeda , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?UTF-8?q?Onur=20=C3=96zkan?= , Johan Hovold , Ronald Claveau , Daniel Lezcano , linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, imx@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, rust-for-linux@vger.kernel.org Subject: [PATCH v6 2/4] nvmem: core: deprecate reg_write callback with reg_write_const Date: Sun, 20 Sep 2026 13:09:55 +0200 Message-ID: <20260920111000.2404131-3-linkmauve@linkmauve.fr> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260920111000.2404131-1-linkmauve@linkmauve.fr> References: <20260920111000.2404131-1-linkmauve@linkmauve.fr> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This callback used to take a mutable void * for no reason, which causes the compiler to be unaware that the val buffer should never be modified by the callback. This was found while drafting the nvmem-provider Rust abstraction. Signed-off-by: Link Mauve Reviewed-by: Andy Shevchenko --- drivers/nvmem/core.c | 26 +++++++++++++++++--------- drivers/nvmem/internals.h | 1 + include/linux/nvmem-provider.h | 6 +++++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 0556d140170a..a484d424119f 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -66,19 +66,22 @@ static int __nvmem_reg_read(struct nvmem_device *nvmem,= unsigned int offset, } =20 static int __nvmem_reg_write(struct nvmem_device *nvmem, unsigned int offs= et, - void *val, size_t bytes) + const void *val, size_t bytes) { struct nvmem_operations *ops =3D nvmem->ops; int ret, wr_ok; =20 - if (!ops->reg_write) + if (!ops->reg_write && !ops->reg_write_const) return -EOPNOTSUPP; =20 ret =3D gpiod_set_value_cansleep(nvmem->wp_gpio, 0); if (ret) return ret; =20 - wr_ok =3D ops->reg_write(nvmem->priv, offset, val, bytes); + if (ops->reg_write_const) + wr_ok =3D ops->reg_write_const(nvmem->priv, offset, val, bytes); + else + wr_ok =3D ops->reg_write(nvmem->priv, offset, (void *)val, bytes); =20 ret =3D gpiod_set_value_cansleep(nvmem->wp_gpio, 1); if (ret) @@ -299,7 +302,7 @@ static umode_t nvmem_bin_attr_get_umode(struct nvmem_de= vice *nvmem) if (!nvmem->read_only) mode |=3D 0200; =20 - if (!ops->reg_write) + if (!ops->reg_write && !ops->reg_write_const) mode &=3D ~0200; =20 if (!ops->reg_read) @@ -336,13 +339,13 @@ static umode_t nvmem_attr_is_visible(struct kobject *= kobj, struct nvmem_operations *ops =3D nvmem->ops; =20 /* - * If the device has no .reg_write operation, do not allow - * configuration as read-write. + * If the device has no .reg_write or .reg_write_const operation, do + * not allow configuration as read-write. * If the device is set as read-only by configuration, it * can be forced into read-write mode using the 'force_ro' * attribute. */ - if (attr =3D=3D &dev_attr_force_ro.attr && !ops->reg_write) + if (attr =3D=3D &dev_attr_force_ro.attr && !ops->reg_write && !ops->reg_w= rite_const) return 0; /* Attribute not visible */ =20 return attr->mode; @@ -893,7 +896,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_= config *config) if (!config->dev) return ERR_PTR(-EINVAL); =20 - if (!config->reg_read && !config->reg_write) + if (!config->reg_read && !config->reg_write && !config->reg_write_const) return ERR_PTR(-EINVAL); =20 nvmem =3D kzalloc_obj(*nvmem); @@ -937,6 +940,11 @@ struct nvmem_device *nvmem_register(const struct nvmem= _config *config) =20 ops->reg_read =3D config->reg_read; ops->reg_write =3D config->reg_write; + ops->reg_write_const =3D config->reg_write_const; + + if (ops->reg_write) + dev_warn(&nvmem->dev, "Usage of reg_write in nvmem is deprecated, please= " + "migrate to reg_write_const.\n"); =20 nvmem->owner =3D config->owner; if (!nvmem->owner && config->dev->driver) @@ -972,7 +980,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_= config *config) goto err_put_device; =20 nvmem->read_only =3D device_property_present(config->dev, "read-only") || - config->read_only || !ops->reg_write; + config->read_only || (!ops->reg_write && !ops->reg_write_const); =20 #ifdef CONFIG_NVMEM_SYSFS nvmem->dev.groups =3D nvmem_dev_groups; diff --git a/drivers/nvmem/internals.h b/drivers/nvmem/internals.h index 4e610deeaa7b..c1766f8fa482 100644 --- a/drivers/nvmem/internals.h +++ b/drivers/nvmem/internals.h @@ -11,6 +11,7 @@ struct nvmem_operations { nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; + nvmem_reg_write_const_t reg_write_const; }; =20 struct nvmem_device { diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 6063fe5b7784..e944530999b4 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -20,6 +20,8 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned int = offset, void *val, size_t bytes); typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset, void *val, size_t bytes); +typedef int (*nvmem_reg_write_const_t)(void *priv, unsigned int offset, + const void *val, size_t bytes); /* used for vendor specific post processing of cell data */ typedef int (*nvmem_cell_post_process_t)(void *priv, const char *id, int i= ndex, unsigned int offset, void *buf, @@ -93,7 +95,8 @@ struct nvmem_cell_info { * @root_only: Device is accessibly to root only. * @of_node: If given, this will be used instead of the parent's of_node. * @reg_read: Callback to read data; return zero if successful. - * @reg_write: Callback to write data; return zero if successful. + * @reg_write: **DEPRECATED** - please use reg_write_const instead. + * @reg_write_const: Callback to write data; return zero if successful. * @size: Device size. * @word_size: Minimum read/write access granularity. * @stride: Minimum read/write access stride. @@ -128,6 +131,7 @@ struct nvmem_config { struct device_node *of_node; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; + nvmem_reg_write_const_t reg_write_const; int size; int word_size; int stride; --=20 2.55.0 From nobody Thu Sep 24 21:19:57 2026 Received: from linkmauve.fr (linkmauve.fr [82.65.109.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E3BD2931F4; Sun, 20 Sep 2026 11:10:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.65.109.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; cv=none; b=jd0rx8uuWFyYgt4zcP0+VnVNeW7eKeq4IWQqXUzBOOx0ztLo5PSJN92+fvWsMgMTCFcMJfdAo+uE6HLjYq50U8Lwuloo4xtzP86uMXDd1g+J1CmnWlzaK5o4r+BSTj/2TyVXNO6NHvizs2DiPo41mdpIUzcG95R6/jjvcs2La2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; c=relaxed/simple; bh=fYybqLjSAZI7AvqUqCYItP4h4Y9EeCROjYr6s4wtruo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ghyqmhvuHtuTWnStcOxPHu+QVaabX9TcF6jXaQ3VKAhwfoa+HOsBSNyxNBYtvOFrD+htyBbz+mIpiyjZpfvO9lIRmuu9lwFW9AgqaLcuTm56ceVnYqTm6M8YXognyt+vy0P1Qw8tIlJ+D4735+y24OIej5To0PKskj3m5Qp7ZS4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr; spf=pass smtp.mailfrom=linkmauve.fr; arc=none smtp.client-ip=82.65.109.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linkmauve.fr Received: by linkmauve.fr (Postfix, from userid 1000) id 88FA67189A5E; Sun, 20 Sep 2026 13:10:03 +0200 (CEST) From: Link Mauve To: Srinivas Kandagatla Cc: Link Mauve , Sasha Finkelstein , Andy Shevchenko , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Sven Peter , Janne Grunau , Neal Gompa , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Vladimir Zapolskiy , =?UTF-8?q?Andr=C3=A9=20Draszik?= , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Kalyani Akula , Michal Simek , Miguel Ojeda , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?UTF-8?q?Onur=20=C3=96zkan?= , Johan Hovold , Ronald Claveau , Daniel Lezcano , linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, imx@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, rust-for-linux@vger.kernel.org Subject: [PATCH v6 3/4] nvmem: make all reg_write callbacks take const void * Date: Sun, 20 Sep 2026 13:09:56 +0200 Message-ID: <20260920111000.2404131-4-linkmauve@linkmauve.fr> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260920111000.2404131-1-linkmauve@linkmauve.fr> References: <20260920111000.2404131-1-linkmauve@linkmauve.fr> 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 The previous commit switched from a pointer to mutable data to a pointer to immutable data, so let=E2=80=99s fix all users of this API in the nvmem subsystem. Other subsystems will go through their own tree at their respective pace, and only when the last reg_write callback will be removed we will rename reg_write_const back to reg_write. Signed-off-by: Link Mauve Reviewed-by: Andy Shevchenko --- drivers/nvmem/apple-spmi-nvmem.c | 4 ++-- drivers/nvmem/at24.c | 6 +++--- drivers/nvmem/at25.c | 4 ++-- drivers/nvmem/bcm-ocotp.c | 8 ++++---- drivers/nvmem/eeprom_93xx46.c | 6 +++--- drivers/nvmem/imx-ocotp-scu.c | 6 +++--- drivers/nvmem/imx-ocotp.c | 6 +++--- drivers/nvmem/lan9662-otpc.c | 6 +++--- drivers/nvmem/lpc18xx_eeprom.c | 6 +++--- drivers/nvmem/m24lr.c | 4 ++-- drivers/nvmem/max77759-nvmem.c | 4 ++-- drivers/nvmem/meson-efuse.c | 4 ++-- drivers/nvmem/qcom-spmi-sdam.c | 6 +++--- drivers/nvmem/qfprom.c | 6 +++--- drivers/nvmem/rave-sp-eeprom.c | 6 +++--- drivers/nvmem/snvs_lpgpr.c | 4 ++-- drivers/nvmem/sprd-efuse.c | 6 +++--- drivers/nvmem/stm32-bsec-optee-ta.c | 2 +- drivers/nvmem/stm32-bsec-optee-ta.h | 4 ++-- drivers/nvmem/stm32-romem.c | 10 +++++----- drivers/nvmem/zynqmp_nvmem.c | 6 +++--- 21 files changed, 57 insertions(+), 57 deletions(-) diff --git a/drivers/nvmem/apple-spmi-nvmem.c b/drivers/nvmem/apple-spmi-nv= mem.c index 7acb0c07d6ab..63b2b11d78f9 100644 --- a/drivers/nvmem/apple-spmi-nvmem.c +++ b/drivers/nvmem/apple-spmi-nvmem.c @@ -26,7 +26,7 @@ static int apple_spmi_nvmem_read(void *priv, unsigned int= offset, void *val, return regmap_bulk_read(map, offset, val, bytes); } =20 -static int apple_spmi_nvmem_write(void *priv, unsigned int offset, void *v= al, +static int apple_spmi_nvmem_write(void *priv, unsigned int offset, const v= oid *val, size_t bytes) { struct regmap *map =3D priv; @@ -45,7 +45,7 @@ static int apple_spmi_nvmem_probe(struct spmi_device *sde= v) .stride =3D 1, .size =3D 0xffff, .reg_read =3D apple_spmi_nvmem_read, - .reg_write =3D apple_spmi_nvmem_write, + .reg_write_const =3D apple_spmi_nvmem_write, }; =20 regmap =3D devm_regmap_init_spmi_ext(sdev, &apple_spmi_regmap_config); diff --git a/drivers/nvmem/at24.c b/drivers/nvmem/at24.c index 772c4d9fa651..6e3fe353c376 100644 --- a/drivers/nvmem/at24.c +++ b/drivers/nvmem/at24.c @@ -477,11 +477,11 @@ static int at24_read(void *priv, unsigned int off, vo= id *val, size_t count) return 0; } =20 -static int at24_write(void *priv, unsigned int off, void *val, size_t coun= t) +static int at24_write(void *priv, unsigned int off, const void *val, size_= t count) { struct at24_data *at24; struct device *dev; - char *buf =3D val; + const char *buf =3D val; int ret; =20 at24 =3D priv; @@ -743,7 +743,7 @@ static int at24_probe(struct i2c_client *client) nvmem_config.compat =3D true; nvmem_config.base_dev =3D dev; nvmem_config.reg_read =3D at24_read; - nvmem_config.reg_write =3D at24_write; + nvmem_config.reg_write_const =3D at24_write; nvmem_config.priv =3D at24; nvmem_config.stride =3D 1; nvmem_config.word_size =3D 1; diff --git a/drivers/nvmem/at25.c b/drivers/nvmem/at25.c index bc2cfb75d9bb..bb5fb7b692f4 100644 --- a/drivers/nvmem/at25.c +++ b/drivers/nvmem/at25.c @@ -235,7 +235,7 @@ static int at25_wait_ready(struct at25_data *at25) return bounce[0]; } =20 -static int at25_ee_write(void *priv, unsigned int off, void *val, size_t c= ount) +static int at25_ee_write(void *priv, unsigned int off, const void *val, si= ze_t count) { u8 *bounce __free(kfree) =3D kmalloc(min(count, io_limit), GFP_KERNEL); struct at25_data *at25 =3D priv; @@ -544,7 +544,7 @@ static int at25_probe(struct spi_mem *mem) at25->nvmem_config.compat =3D true; at25->nvmem_config.base_dev =3D &spi->dev; at25->nvmem_config.reg_read =3D at25_ee_read; - at25->nvmem_config.reg_write =3D at25_ee_write; + at25->nvmem_config.reg_write_const =3D at25_ee_write; at25->nvmem_config.priv =3D at25; at25->nvmem_config.stride =3D 1; at25->nvmem_config.word_size =3D 1; diff --git a/drivers/nvmem/bcm-ocotp.c b/drivers/nvmem/bcm-ocotp.c index 2490f44caa40..02adfd787de8 100644 --- a/drivers/nvmem/bcm-ocotp.c +++ b/drivers/nvmem/bcm-ocotp.c @@ -179,11 +179,11 @@ static int bcm_otpc_read(void *context, unsigned int = offset, void *val, return 0; } =20 -static int bcm_otpc_write(void *context, unsigned int offset, void *val, - size_t bytes) +static int bcm_otpc_write(void *context, unsigned int offset, const void *= val, + size_t bytes) { struct otpc_priv *priv =3D context; - u32 *buf =3D val; + const u32 *buf =3D val; u32 bytes_written; u32 address =3D offset / priv->config->word_size; int i, ret; @@ -223,7 +223,7 @@ static struct nvmem_config bcm_otpc_nvmem_config =3D { .word_size =3D 4, .stride =3D 4, .reg_read =3D bcm_otpc_read, - .reg_write =3D bcm_otpc_write, + .reg_write_const =3D bcm_otpc_write, }; =20 static const struct of_device_id bcm_otpc_dt_ids[] =3D { diff --git a/drivers/nvmem/eeprom_93xx46.c b/drivers/nvmem/eeprom_93xx46.c index f9c3ab52c2f9..c8c15b91e624 100644 --- a/drivers/nvmem/eeprom_93xx46.c +++ b/drivers/nvmem/eeprom_93xx46.c @@ -268,10 +268,10 @@ eeprom_93xx46_write_word(struct eeprom_93xx46_dev *ed= ev, } =20 static int eeprom_93xx46_write(void *priv, unsigned int off, - void *val, size_t count) + const void *val, size_t count) { struct eeprom_93xx46_dev *edev =3D priv; - char *buf =3D val; + const char *buf =3D val; int ret, step =3D 1; unsigned int i; =20 @@ -510,7 +510,7 @@ static int eeprom_93xx46_probe(struct spi_device *spi) edev->nvmem_config.compat =3D true; edev->nvmem_config.base_dev =3D &spi->dev; edev->nvmem_config.reg_read =3D eeprom_93xx46_read; - edev->nvmem_config.reg_write =3D eeprom_93xx46_write; + edev->nvmem_config.reg_write_const =3D eeprom_93xx46_write; edev->nvmem_config.priv =3D edev; edev->nvmem_config.stride =3D 4; edev->nvmem_config.word_size =3D 1; diff --git a/drivers/nvmem/imx-ocotp-scu.c b/drivers/nvmem/imx-ocotp-scu.c index 517d83e11af2..57008228100f 100644 --- a/drivers/nvmem/imx-ocotp-scu.c +++ b/drivers/nvmem/imx-ocotp-scu.c @@ -178,11 +178,11 @@ static int imx_scu_ocotp_read(void *context, unsigned= int offset, } =20 static int imx_scu_ocotp_write(void *context, unsigned int offset, - void *val, size_t bytes) + const void *val, size_t bytes) { struct ocotp_priv *priv =3D context; struct arm_smccc_res res; - u32 *buf =3D val; + const u32 *buf =3D val; u32 tmp; u32 index; int ret; @@ -226,7 +226,7 @@ static struct nvmem_config imx_scu_ocotp_nvmem_config = =3D { .stride =3D 1, .owner =3D THIS_MODULE, .reg_read =3D imx_scu_ocotp_read, - .reg_write =3D imx_scu_ocotp_write, + .reg_write_const =3D imx_scu_ocotp_write, }; =20 static const struct of_device_id imx_scu_ocotp_dt_ids[] =3D { diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c index 108d78d7f6cb..36d4a37aed93 100644 --- a/drivers/nvmem/imx-ocotp.c +++ b/drivers/nvmem/imx-ocotp.c @@ -310,11 +310,11 @@ static void imx_ocotp_set_imx7_timing(struct ocotp_pr= iv *priv) writel(timing, priv->base + IMX_OCOTP_ADDR_TIMING); } =20 -static int imx_ocotp_write(void *context, unsigned int offset, void *val, +static int imx_ocotp_write(void *context, unsigned int offset, const void = *val, size_t bytes) { struct ocotp_priv *priv =3D context; - u32 *buf =3D val; + const u32 *buf =3D val; int ret; =20 u32 ctrl; @@ -483,7 +483,7 @@ static struct nvmem_config imx_ocotp_nvmem_config =3D { .word_size =3D 4, .stride =3D 1, .reg_read =3D imx_ocotp_read, - .reg_write =3D imx_ocotp_write, + .reg_write_const =3D imx_ocotp_write, }; =20 static const struct ocotp_params imx6q_params =3D { diff --git a/drivers/nvmem/lan9662-otpc.c b/drivers/nvmem/lan9662-otpc.c index 62d1d6381bf8..f586ae4cd126 100644 --- a/drivers/nvmem/lan9662-otpc.c +++ b/drivers/nvmem/lan9662-otpc.c @@ -139,10 +139,10 @@ static int lan9662_otp_read(void *context, unsigned i= nt offset, } =20 static int lan9662_otp_write(void *context, unsigned int offset, - void *_val, size_t bytes) + const void *_val, size_t bytes) { struct lan9662_otp *otp =3D context; - u8 *val =3D _val; + const u8 *val =3D _val; u8 data, newdata; int i, rc =3D 0; =20 @@ -174,7 +174,7 @@ static struct nvmem_config otp_config =3D { .stride =3D 1, .word_size =3D 1, .reg_read =3D lan9662_otp_read, - .reg_write =3D lan9662_otp_write, + .reg_write_const =3D lan9662_otp_write, }; =20 static int lan9662_otp_probe(struct platform_device *pdev) diff --git a/drivers/nvmem/lpc18xx_eeprom.c b/drivers/nvmem/lpc18xx_eeprom.c index 504155e30bab..78a35ef095fb 100644 --- a/drivers/nvmem/lpc18xx_eeprom.c +++ b/drivers/nvmem/lpc18xx_eeprom.c @@ -87,7 +87,7 @@ static int lpc18xx_eeprom_busywait_until_prog(struct lpc1= 8xx_eeprom_dev *eeprom) } =20 static int lpc18xx_eeprom_gather_write(void *context, unsigned int reg, - void *val, size_t bytes) + const void *val, size_t bytes) { struct lpc18xx_eeprom_dev *eeprom =3D context; unsigned int offset =3D reg; @@ -109,7 +109,7 @@ static int lpc18xx_eeprom_gather_write(void *context, u= nsigned int reg, usleep_range(100, 200); =20 while (bytes) { - writel(*(u32 *)val, eeprom->mem_base + offset); + writel(*(const u32 *)val, eeprom->mem_base + offset); ret =3D lpc18xx_eeprom_busywait_until_prog(eeprom); if (ret < 0) return ret; @@ -155,7 +155,7 @@ static struct nvmem_config lpc18xx_nvmem_config =3D { .stride =3D 4, .word_size =3D 4, .reg_read =3D lpc18xx_eeprom_read, - .reg_write =3D lpc18xx_eeprom_gather_write, + .reg_write_const =3D lpc18xx_eeprom_gather_write, }; =20 static int lpc18xx_eeprom_probe(struct platform_device *pdev) diff --git a/drivers/nvmem/m24lr.c b/drivers/nvmem/m24lr.c index 7a9fd45a8e46..35c66304399f 100644 --- a/drivers/nvmem/m24lr.c +++ b/drivers/nvmem/m24lr.c @@ -374,7 +374,7 @@ static int m24lr_nvmem_read(void *priv, unsigned int of= fset, void *val, return 0; } =20 -static int m24lr_nvmem_write(void *priv, unsigned int offset, void *val, +static int m24lr_nvmem_write(void *priv, unsigned int offset, const void *= val, size_t bytes) { ssize_t err; @@ -548,7 +548,7 @@ static int m24lr_probe(struct i2c_client *client) nvmem_conf.owner =3D THIS_MODULE; nvmem_conf.type =3D NVMEM_TYPE_EEPROM; nvmem_conf.reg_read =3D m24lr_nvmem_read; - nvmem_conf.reg_write =3D m24lr_nvmem_write; + nvmem_conf.reg_write_const =3D m24lr_nvmem_write; nvmem_conf.size =3D chip->eeprom_size; nvmem_conf.word_size =3D 1; nvmem_conf.stride =3D 1; diff --git a/drivers/nvmem/max77759-nvmem.c b/drivers/nvmem/max77759-nvmem.c index 283000ec3a2c..86c025cfc2f6 100644 --- a/drivers/nvmem/max77759-nvmem.c +++ b/drivers/nvmem/max77759-nvmem.c @@ -59,7 +59,7 @@ static int max77759_nvmem_reg_read(void *priv, unsigned i= nt offset, } =20 static int max77759_nvmem_reg_write(void *priv, unsigned int offset, - void *val, size_t bytes) + const void *val, size_t bytes) { struct max77759_nvmem *nvmem =3D priv; DEFINE_FLEX(struct max77759_maxq_command, cmd, cmd, length, @@ -99,7 +99,7 @@ static int max77759_nvmem_probe(struct platform_device *p= dev) .word_size =3D sizeof(u8), .stride =3D sizeof(u8), .reg_read =3D max77759_nvmem_reg_read, - .reg_write =3D max77759_nvmem_reg_write, + .reg_write_const =3D max77759_nvmem_reg_write, }; struct max77759_nvmem *nvmem; =20 diff --git a/drivers/nvmem/meson-efuse.c b/drivers/nvmem/meson-efuse.c index f71854f89950..5e056e707a96 100644 --- a/drivers/nvmem/meson-efuse.c +++ b/drivers/nvmem/meson-efuse.c @@ -27,7 +27,7 @@ static int meson_efuse_read(void *context, unsigned int o= ffset, } =20 static int meson_efuse_write(void *context, unsigned int offset, - void *val, size_t bytes) + const void *val, size_t bytes) { struct meson_sm_firmware *fw =3D context; int ret; @@ -83,7 +83,7 @@ static int meson_efuse_probe(struct platform_device *pdev) econfig->stride =3D 1; econfig->word_size =3D 1; econfig->reg_read =3D meson_efuse_read; - econfig->reg_write =3D meson_efuse_write; + econfig->reg_write_const =3D meson_efuse_write; econfig->size =3D size; econfig->priv =3D fw; =20 diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c index 4f1cca6eab71..10febaf9e427 100644 --- a/drivers/nvmem/qcom-spmi-sdam.c +++ b/drivers/nvmem/qcom-spmi-sdam.c @@ -81,8 +81,8 @@ static int sdam_read(void *priv, unsigned int offset, voi= d *val, return rc; } =20 -static int sdam_write(void *priv, unsigned int offset, void *val, - size_t bytes) +static int sdam_write(void *priv, unsigned int offset, const void *val, + size_t bytes) { struct sdam_chip *sdam =3D priv; struct device *dev =3D sdam->sdam_config.dev; @@ -147,7 +147,7 @@ static int sdam_probe(struct platform_device *pdev) sdam->sdam_config.size =3D sdam->size; sdam->sdam_config.word_size =3D 1; sdam->sdam_config.reg_read =3D sdam_read; - sdam->sdam_config.reg_write =3D sdam_write; + sdam->sdam_config.reg_write_const =3D sdam_write; sdam->sdam_config.priv =3D sdam; =20 nvmem =3D devm_nvmem_register(&pdev->dev, &sdam->sdam_config); diff --git a/drivers/nvmem/qfprom.c b/drivers/nvmem/qfprom.c index 1de3435df116..16b7f647a3f6 100644 --- a/drivers/nvmem/qfprom.c +++ b/drivers/nvmem/qfprom.c @@ -252,13 +252,13 @@ static int qfprom_enable_fuse_blowing(const struct qf= prom_priv *priv, * * Return: 0 or -err. */ -static int qfprom_reg_write(void *context, unsigned int reg, void *_val, +static int qfprom_reg_write(void *context, unsigned int reg, const void *_= val, size_t bytes) { struct qfprom_priv *priv =3D context; struct qfprom_touched_values old; int words =3D bytes / 4; - u32 *value =3D _val; + const u32 *value =3D _val; u32 blow_status; int ret; int i; @@ -443,7 +443,7 @@ static int qfprom_probe(struct platform_device *pdev) =20 /* Only enable writing if we have SoC data and a valid clock */ if (priv->soc_data && priv->secclk) - econfig.reg_write =3D qfprom_reg_write; + econfig.reg_write_const =3D qfprom_reg_write; } =20 pm_runtime_enable(dev); diff --git a/drivers/nvmem/rave-sp-eeprom.c b/drivers/nvmem/rave-sp-eeprom.c index 9ecf3873cbb7..c703d303eb6c 100644 --- a/drivers/nvmem/rave-sp-eeprom.c +++ b/drivers/nvmem/rave-sp-eeprom.c @@ -278,10 +278,10 @@ static int rave_sp_eeprom_reg_read(void *eeprom, unsi= gned int offset, } =20 static int rave_sp_eeprom_reg_write(void *eeprom, unsigned int offset, - void *val, size_t bytes) + const void *val, size_t bytes) { return rave_sp_eeprom_access(eeprom, RAVE_SP_EEPROM_WRITE, - offset, val, bytes); + offset, (void *)val, bytes); } =20 static int rave_sp_eeprom_probe(struct platform_device *pdev) @@ -331,7 +331,7 @@ static int rave_sp_eeprom_probe(struct platform_device = *pdev) config.add_legacy_fixed_of_cells =3D true; config.size =3D size; config.reg_read =3D rave_sp_eeprom_reg_read; - config.reg_write =3D rave_sp_eeprom_reg_write; + config.reg_write_const =3D rave_sp_eeprom_reg_write; config.word_size =3D 1; config.stride =3D 1; =20 diff --git a/drivers/nvmem/snvs_lpgpr.c b/drivers/nvmem/snvs_lpgpr.c index 89c27112320f..3e76d33dff20 100644 --- a/drivers/nvmem/snvs_lpgpr.c +++ b/drivers/nvmem/snvs_lpgpr.c @@ -50,7 +50,7 @@ static const struct snvs_lpgpr_cfg snvs_lpgpr_cfg_imx7d = =3D { .size =3D 16, }; =20 -static int snvs_lpgpr_write(void *context, unsigned int offset, void *val, +static int snvs_lpgpr_write(void *context, unsigned int offset, const void= *val, size_t bytes) { struct snvs_lpgpr_priv *priv =3D context; @@ -127,7 +127,7 @@ static int snvs_lpgpr_probe(struct platform_device *pde= v) cfg->size =3D dcfg->size; cfg->owner =3D THIS_MODULE; cfg->reg_read =3D snvs_lpgpr_read; - cfg->reg_write =3D snvs_lpgpr_write; + cfg->reg_write_const =3D snvs_lpgpr_write; =20 nvmem =3D devm_nvmem_register(dev, cfg); =20 diff --git a/drivers/nvmem/sprd-efuse.c b/drivers/nvmem/sprd-efuse.c index 1a7e4e5d8b86..f960fa8cb25c 100644 --- a/drivers/nvmem/sprd-efuse.c +++ b/drivers/nvmem/sprd-efuse.c @@ -192,7 +192,7 @@ static void sprd_efuse_set_prog_en(struct sprd_efuse *e= fuse, bool en) } =20 static int sprd_efuse_raw_prog(struct sprd_efuse *efuse, u32 blk, bool dou= b, - bool lock, u32 *data) + bool lock, const u32 *data) { u32 status; int ret =3D 0; @@ -321,7 +321,7 @@ static int sprd_efuse_read(void *context, u32 offset, v= oid *val, size_t bytes) return ret; } =20 -static int sprd_efuse_write(void *context, u32 offset, void *val, size_t b= ytes) +static int sprd_efuse_write(void *context, u32 offset, const void *val, si= ze_t bytes) { struct sprd_efuse *efuse =3D context; bool blk_double =3D efuse->data->blk_double; @@ -410,7 +410,7 @@ static int sprd_efuse_probe(struct platform_device *pde= v) econfig.size =3D efuse->data->blk_nums * SPRD_EFUSE_BLOCK_WIDTH; econfig.add_legacy_fixed_of_cells =3D true; econfig.reg_read =3D sprd_efuse_read; - econfig.reg_write =3D sprd_efuse_write; + econfig.reg_write_const =3D sprd_efuse_write; econfig.priv =3D efuse; econfig.dev =3D &pdev->dev; nvmem =3D devm_nvmem_register(&pdev->dev, &econfig); diff --git a/drivers/nvmem/stm32-bsec-optee-ta.c b/drivers/nvmem/stm32-bsec= -optee-ta.c index f89ce791dd12..3184b976b1f9 100644 --- a/drivers/nvmem/stm32-bsec-optee-ta.c +++ b/drivers/nvmem/stm32-bsec-optee-ta.c @@ -203,7 +203,7 @@ int stm32_bsec_optee_ta_read(struct tee_context *ctx, u= nsigned int offset, =20 /* stm32_bsec_optee_ta_write() - nvmem write access using PTA client drive= r */ int stm32_bsec_optee_ta_write(struct tee_context *ctx, unsigned int lower, - unsigned int offset, void *buf, size_t bytes) + unsigned int offset, const void *buf, size_t bytes) { struct tee_shm *shm; struct tee_ioctl_invoke_arg arg; struct tee_param param[2]; diff --git a/drivers/nvmem/stm32-bsec-optee-ta.h b/drivers/nvmem/stm32-bsec= -optee-ta.h index 3966a0535179..74658a54fe57 100644 --- a/drivers/nvmem/stm32-bsec-optee-ta.h +++ b/drivers/nvmem/stm32-bsec-optee-ta.h @@ -50,7 +50,7 @@ int stm32_bsec_optee_ta_read(struct tee_context *ctx, uns= igned int offset, * On success, 0. On failure, -errno. */ int stm32_bsec_optee_ta_write(struct tee_context *ctx, unsigned int lower, - unsigned int offset, void *buf, size_t bytes); + unsigned int offset, const void *buf, size_t bytes); =20 #else =20 @@ -72,7 +72,7 @@ static inline int stm32_bsec_optee_ta_read(struct tee_con= text *ctx, =20 static inline int stm32_bsec_optee_ta_write(struct tee_context *ctx, unsigned int lower, - unsigned int offset, void *buf, + unsigned int offset, const void *buf, size_t bytes) { return -EOPNOTSUPP; diff --git a/drivers/nvmem/stm32-romem.c b/drivers/nvmem/stm32-romem.c index 82879b1c9eb9..622093b0755c 100644 --- a/drivers/nvmem/stm32-romem.c +++ b/drivers/nvmem/stm32-romem.c @@ -118,12 +118,12 @@ static int stm32_bsec_read(void *context, unsigned in= t offset, void *buf, return 0; } =20 -static int stm32_bsec_write(void *context, unsigned int offset, void *buf, +static int stm32_bsec_write(void *context, unsigned int offset, const void= *buf, size_t bytes) { struct stm32_romem_priv *priv =3D context; struct device *dev =3D priv->cfg.dev; - u32 *buf32 =3D buf; + const u32 *buf32 =3D buf; int ret, i; =20 /* Allow only writing complete 32-bits aligned words */ @@ -153,7 +153,7 @@ static int stm32_bsec_pta_read(void *context, unsigned = int offset, void *buf, return stm32_bsec_optee_ta_read(priv->ctx, offset, buf, bytes); } =20 -static int stm32_bsec_pta_write(void *context, unsigned int offset, void *= buf, +static int stm32_bsec_pta_write(void *context, unsigned int offset, const = void *buf, size_t bytes) { struct stm32_romem_priv *priv =3D context; @@ -239,10 +239,10 @@ static int stm32_romem_probe(struct platform_device *= pdev) return rc; } priv->cfg.reg_read =3D stm32_bsec_pta_read; - priv->cfg.reg_write =3D stm32_bsec_pta_write; + priv->cfg.reg_write_const =3D stm32_bsec_pta_write; } else { priv->cfg.reg_read =3D stm32_bsec_read; - priv->cfg.reg_write =3D stm32_bsec_write; + priv->cfg.reg_write_const =3D stm32_bsec_write; } } =20 diff --git a/drivers/nvmem/zynqmp_nvmem.c b/drivers/nvmem/zynqmp_nvmem.c index d297ff150dc0..54905a608157 100644 --- a/drivers/nvmem/zynqmp_nvmem.c +++ b/drivers/nvmem/zynqmp_nvmem.c @@ -183,7 +183,7 @@ static int zynqmp_nvmem_read(void *context, unsigned in= t offset, void *val, size } =20 static int zynqmp_nvmem_write(void *context, - unsigned int offset, void *val, size_t bytes) + unsigned int offset, const void *val, size_t bytes) { int pufflag =3D 0; =20 @@ -194,7 +194,7 @@ static int zynqmp_nvmem_write(void *context, pufflag =3D 1; =20 return zynqmp_efuse_access(context, offset, - val, bytes, EFUSE_WRITE, pufflag); + (void *)val, bytes, EFUSE_WRITE, pufflag); } =20 static const struct of_device_id zynqmp_nvmem_match[] =3D { @@ -216,7 +216,7 @@ static int zynqmp_nvmem_probe(struct platform_device *p= dev) econfig.priv =3D dev; econfig.add_legacy_fixed_of_cells =3D true; econfig.reg_read =3D zynqmp_nvmem_read; - econfig.reg_write =3D zynqmp_nvmem_write; + econfig.reg_write_const =3D zynqmp_nvmem_write; =20 return PTR_ERR_OR_ZERO(devm_nvmem_register(dev, &econfig)); } --=20 2.55.0 From nobody Thu Sep 24 21:19:57 2026 Received: from linkmauve.fr (linkmauve.fr [82.65.109.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 785113DDB03; Sun, 20 Sep 2026 11:10:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.65.109.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; cv=none; b=PKh0n/roK34H7BT6gC4jbfhVprzoL9X5EPaO06WM09S4mtz5j1Qg5YG57aGu49lsXfTPPsVF9kG+yv/kZxeQ+QlhOtRkV97vz5cIK9kYjdSbxti7xZdqMKcu6/F6j6WYYemCt8iBbsoujpm8eZwJjFDEhj8Tk0bfG3EEcp3VKEM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789902614; c=relaxed/simple; bh=lPF7X82nx6xcu6+jfTW15He4vor2gIJdixv2iZdfJWg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=D99TF9sQSJsIdLdnQ7NoaxtY7cu8lfQYQFq+0/knG6dTJ8mjhBqd3espOOE/krwAcb4gmkiZNwWFTQA5gQubJXyjW4MEaLraDBbtYFncjrhNO2U11MaLUagCQiXj4kWQ8/5Oc54/OoGf6I2EwbtMiJunCDhHMrIbfFEtUGLM5bc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr; spf=pass smtp.mailfrom=linkmauve.fr; arc=none smtp.client-ip=82.65.109.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linkmauve.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linkmauve.fr Received: by linkmauve.fr (Postfix, from userid 1000) id 8E1657189A61; Sun, 20 Sep 2026 13:10:03 +0200 (CEST) From: Link Mauve To: Srinivas Kandagatla Cc: Link Mauve , Sasha Finkelstein , Andy Shevchenko , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Sven Peter , Janne Grunau , Neal Gompa , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Vladimir Zapolskiy , =?UTF-8?q?Andr=C3=A9=20Draszik?= , Orson Zhai , Baolin Wang , Chunyan Zhang , Maxime Coquelin , Alexandre Torgue , Kalyani Akula , Michal Simek , Miguel Ojeda , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?UTF-8?q?Onur=20=C3=96zkan?= , Johan Hovold , Ronald Claveau , Daniel Lezcano , linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, imx@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, rust-for-linux@vger.kernel.org Subject: [PATCH v6 4/4] nvmem: enable COMPILE_TEST for more drivers Date: Sun, 20 Sep 2026 13:09:57 +0200 Message-ID: <20260920111000.2404131-5-linkmauve@linkmauve.fr> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260920111000.2404131-1-linkmauve@linkmauve.fr> References: <20260920111000.2404131-1-linkmauve@linkmauve.fr> 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 Three drivers had a depends on ARCH_*, but didn=E2=80=99t also compile when COMPILE_TEST is enabled, making it harder than it should be to test them. Some other drivers also don=E2=80=99t have a COMPILE_TEST, but those have additional dependencies and I didn=E2=80=99t want to investigate too much. Signed-off-by: Link Mauve Reviewed-by: Andy Shevchenko --- drivers/nvmem/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index c36c2a4c2a0b..d38097d6648b 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -354,7 +354,7 @@ config NVMEM_NINTENDO_OTP =20 config NVMEM_S32G_OCOTP tristate "S32G SoC OCOTP support" - depends on ARCH_S32 + depends on ARCH_S32 || COMPILE_TEST help This is a driver for the 'OCOTP' peripheral available on S32G platforms. @@ -518,7 +518,7 @@ config NVMEM_SUNPLUS_OCOTP =20 config NVMEM_SUNXI_SID tristate "Allwinner SoCs SID support" - depends on ARCH_SUNXI + depends on ARCH_SUNXI || COMPILE_TEST help This is a driver for the 'security ID' available on various Allwinner devices. @@ -563,7 +563,7 @@ config NVMEM_VF610_OCOTP =20 config NVMEM_ZYNQMP tristate "Xilinx ZYNQMP SoC nvmem firmware support" - depends on ARCH_ZYNQMP + depends on ARCH_ZYNQMP || COMPILE_TEST help This is a driver to access hardware related data like soc revision, IDCODE... etc by using the firmware --=20 2.55.0