* [PATCH] nvmem: layouts: Add fixed-layout driver
@ 2026-05-05 8:42 Mathieu Dubois-Briand
2026-05-05 9:14 ` Miquel Raynal
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Mathieu Dubois-Briand @ 2026-05-05 8:42 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: Miquel Raynal, Grégory Clement, Thomas Petazzoni,
linux-kernel, Mathieu Dubois-Briand
Current implementation isn't working well when device tree nodes have a
phandle on a fixed-layout nvmem node. As the fixed layout is handled in
nvmem core, no driver is ever associated with the layout, and the device
consumer driver probe is deferred indefinitely.
Remove the specific handling of fixed-layout and add a layout driver.
This makes the fixed-layout similar to all other layouts, fixing the
whole issue.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
MAINTAINERS | 5 ++++
drivers/nvmem/core.c | 23 +---------------
drivers/nvmem/layouts.c | 11 --------
drivers/nvmem/layouts/Makefile | 1 +
drivers/nvmem/layouts/fixed-layout.c | 52 ++++++++++++++++++++++++++++++++++++
include/linux/nvmem-provider.h | 7 +++++
6 files changed, 66 insertions(+), 33 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 882214b0e7db..c48c4e129736 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10018,6 +10018,11 @@ F: drivers/base/firmware_loader/
F: rust/kernel/firmware.rs
F: include/linux/firmware.h
+FIXED-LAYOUT NVMEM LAYOUT DRIVER
+M: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
+S: Maintained
+F: drivers/nvmem/layouts/fixed-layout.c
+
FLEXTIMER FTM-QUADDEC DRIVER
M: Patrick Havelange <patrick.havelange@essensium.com>
L: linux-iio@vger.kernel.org
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 311cb2e5a5c0..0ec4924c4bda 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -786,7 +786,7 @@ static int nvmem_validate_keepouts(struct nvmem_device *nvmem)
return 0;
}
-static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np)
+int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np)
{
struct device *dev = &nvmem->dev;
const __be32 *addr;
@@ -840,23 +840,6 @@ static int nvmem_add_cells_from_legacy_of(struct nvmem_device *nvmem)
return nvmem_add_cells_from_dt(nvmem, nvmem->dev.of_node);
}
-static int nvmem_add_cells_from_fixed_layout(struct nvmem_device *nvmem)
-{
- struct device_node *layout_np;
- int err = 0;
-
- layout_np = of_nvmem_layout_get_container(nvmem);
- if (!layout_np)
- return 0;
-
- if (of_device_is_compatible(layout_np, "fixed-layout"))
- err = nvmem_add_cells_from_dt(nvmem, layout_np);
-
- of_node_put(layout_np);
-
- return err;
-}
-
int nvmem_layout_register(struct nvmem_layout *layout)
{
int ret;
@@ -1005,10 +988,6 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
goto err_remove_cells;
}
- rval = nvmem_add_cells_from_fixed_layout(nvmem);
- if (rval)
- goto err_remove_cells;
-
dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
rval = device_add(&nvmem->dev);
diff --git a/drivers/nvmem/layouts.c b/drivers/nvmem/layouts.c
index b90584e1b99e..07a34be9669c 100644
--- a/drivers/nvmem/layouts.c
+++ b/drivers/nvmem/layouts.c
@@ -125,11 +125,6 @@ static int nvmem_layout_create_device(struct nvmem_device *nvmem,
return 0;
}
-static const struct of_device_id of_nvmem_layout_skip_table[] = {
- { .compatible = "fixed-layout", },
- {}
-};
-
static int nvmem_layout_bus_populate(struct nvmem_device *nvmem,
struct device_node *layout_dn)
{
@@ -142,12 +137,6 @@ static int nvmem_layout_bus_populate(struct nvmem_device *nvmem,
return 0;
}
- /* Fixed layouts are parsed manually somewhere else for now */
- if (of_match_node(of_nvmem_layout_skip_table, layout_dn)) {
- pr_debug("%s() - skipping %pOF node\n", __func__, layout_dn);
- return 0;
- }
-
if (of_node_check_flag(layout_dn, OF_POPULATED_BUS)) {
pr_debug("%s() - skipping %pOF, already populated\n",
__func__, layout_dn);
diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile
index 4940c9db0665..fbc195aa382c 100644
--- a/drivers/nvmem/layouts/Makefile
+++ b/drivers/nvmem/layouts/Makefile
@@ -3,6 +3,7 @@
# Makefile for nvmem layouts.
#
+obj-y += fixed-layout.o
obj-$(CONFIG_NVMEM_LAYOUT_SL28_VPD) += sl28vpd.o
obj-$(CONFIG_NVMEM_LAYOUT_ONIE_TLV) += onie-tlv.o
obj-$(CONFIG_NVMEM_LAYOUT_U_BOOT_ENV) += u-boot-env.o
diff --git a/drivers/nvmem/layouts/fixed-layout.c b/drivers/nvmem/layouts/fixed-layout.c
new file mode 100644
index 000000000000..e5078d72a6fc
--- /dev/null
+++ b/drivers/nvmem/layouts/fixed-layout.c
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2025 Bootlin
+ *
+ * Authors: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
+ */
+
+#include <linux/nvmem-provider.h>
+#include <linux/of.h>
+
+static int fixed_layout_add_cells(struct nvmem_layout *layout)
+{
+ struct device_node *np;
+
+ np = of_nvmem_layout_get_container(layout->nvmem);
+ if (!np)
+ return -ENOENT;
+
+ return nvmem_add_cells_from_dt(layout->nvmem, np);
+}
+
+static int fixed_layout_probe(struct nvmem_layout *layout)
+{
+ layout->add_cells = fixed_layout_add_cells;
+
+ return nvmem_layout_register(layout);
+}
+
+static void fixed_layout_remove(struct nvmem_layout *layout)
+{
+ nvmem_layout_unregister(layout);
+}
+
+static const struct of_device_id fixed_layout_of_match_table[] = {
+ { .compatible = "fixed-layout", },
+ {},
+};
+
+static struct nvmem_layout_driver fixed_layout_layout = {
+ .driver = {
+ .name = "fixed-layout",
+ .of_match_table = fixed_layout_of_match_table,
+ },
+ .probe = fixed_layout_probe,
+ .remove = fixed_layout_remove,
+};
+module_nvmem_layout_driver(fixed_layout_layout);
+
+MODULE_AUTHOR("Mathieu Dubois-Briand");
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(of, fixed_layout_of_match_table);
+MODULE_DESCRIPTION("NVMEM fixed-layout driver");
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index f3b13da78aac..e7eaa9a89b8b 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -176,6 +176,7 @@ int nvmem_add_one_cell(struct nvmem_device *nvmem,
int nvmem_layout_register(struct nvmem_layout *layout);
void nvmem_layout_unregister(struct nvmem_layout *layout);
+int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np);
#define nvmem_layout_driver_register(drv) \
__nvmem_layout_driver_register(drv, THIS_MODULE)
@@ -214,6 +215,12 @@ static inline int nvmem_layout_register(struct nvmem_layout *layout)
static inline void nvmem_layout_unregister(struct nvmem_layout *layout) {}
+static inline int nvmem_add_cells_from_dt(struct nvmem_device *nvmem,
+ struct device_node *np)
+{
+ return -EOPNOTSUPP;
+}
+
#endif /* CONFIG_NVMEM */
#if IS_ENABLED(CONFIG_NVMEM) && IS_ENABLED(CONFIG_OF)
---
base-commit: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
change-id: 20260504-mathieu-nvmem-fixed-layout-24c6f8500bf6
Best regards,
--
Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-05 8:42 [PATCH] nvmem: layouts: Add fixed-layout driver Mathieu Dubois-Briand
@ 2026-05-05 9:14 ` Miquel Raynal
2026-05-05 12:58 ` Mathieu Dubois-Briand
2026-05-11 13:06 ` kernel test robot
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Miquel Raynal @ 2026-05-05 9:14 UTC (permalink / raw)
To: Mathieu Dubois-Briand
Cc: Srinivas Kandagatla, Grégory Clement, Thomas Petazzoni,
linux-kernel
Hi Mathieu,
On 05/05/2026 at 10:42:10 +02, Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> wrote:
> Current implementation isn't working well when device tree nodes have a
> phandle on a fixed-layout nvmem node. As the fixed layout is handled in
> nvmem core, no driver is ever associated with the layout, and the device
> consumer driver probe is deferred indefinitely.
>
> Remove the specific handling of fixed-layout and add a layout driver.
> This makes the fixed-layout similar to all other layouts, fixing the
> whole issue.
I guess this deserves a Fixes tag as well as a stable backport.
> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
> ---
> MAINTAINERS | 5 ++++
> drivers/nvmem/core.c | 23 +---------------
> drivers/nvmem/layouts.c | 11 --------
> drivers/nvmem/layouts/Makefile | 1 +
> drivers/nvmem/layouts/fixed-layout.c | 52 ++++++++++++++++++++++++++++++++++++
> include/linux/nvmem-provider.h | 7 +++++
> 6 files changed, 66 insertions(+), 33 deletions(-)
>
[...]
> diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile
> index 4940c9db0665..fbc195aa382c 100644
> --- a/drivers/nvmem/layouts/Makefile
> +++ b/drivers/nvmem/layouts/Makefile
> @@ -3,6 +3,7 @@
> # Makefile for nvmem layouts.
> #
>
> +obj-y += fixed-layout.o
This implies that you cannot remove that driver. I'm fine with it, but
maybe since this is now almost costless, we could have a Kconfig entry
that defaults to =y? This is not a blocker, I have no strong
opinion. Srinivas?
> obj-$(CONFIG_NVMEM_LAYOUT_SL28_VPD) += sl28vpd.o
> obj-$(CONFIG_NVMEM_LAYOUT_ONIE_TLV) += onie-tlv.o
> obj-$(CONFIG_NVMEM_LAYOUT_U_BOOT_ENV) += u-boot-env.o
> diff --git a/drivers/nvmem/layouts/fixed-layout.c b/drivers/nvmem/layouts/fixed-layout.c
> new file mode 100644
> index 000000000000..e5078d72a6fc
> --- /dev/null
> +++ b/drivers/nvmem/layouts/fixed-layout.c
> @@ -0,0 +1,52 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright 2025 Bootlin
Can probably be bumped :-)
> + *
> + * Authors: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
> + */
> +
> +#include <linux/nvmem-provider.h>
> +#include <linux/of.h>
Thanks,
Miquèl
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-05 9:14 ` Miquel Raynal
@ 2026-05-05 12:58 ` Mathieu Dubois-Briand
2026-05-05 13:15 ` Miquel Raynal
0 siblings, 1 reply; 8+ messages in thread
From: Mathieu Dubois-Briand @ 2026-05-05 12:58 UTC (permalink / raw)
To: Miquel Raynal
Cc: Srinivas Kandagatla, Grégory Clement, Thomas Petazzoni,
linux-kernel
On Tue May 5, 2026 at 11:14 AM CEST, Miquel Raynal wrote:
> Hi Mathieu,
Hi Miquel,
>
> On 05/05/2026 at 10:42:10 +02, Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> wrote:
>
>> Current implementation isn't working well when device tree nodes have a
>> phandle on a fixed-layout nvmem node. As the fixed layout is handled in
>> nvmem core, no driver is ever associated with the layout, and the device
>> consumer driver probe is deferred indefinitely.
>>
>> Remove the specific handling of fixed-layout and add a layout driver.
>> This makes the fixed-layout similar to all other layouts, fixing the
>> whole issue.
>
> I guess this deserves a Fixes tag as well as a stable backport.
>
That's right. I will add:
Fixes: fc29fd821d9a (nvmem: core: Rework layouts to become regular devices)
Arguably, we could reference a commit even before, but I believe this is
the commit that introduced a different behaviour between fixed-layout
and other layouts.
>> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>> ---
>> MAINTAINERS | 5 ++++
>> drivers/nvmem/core.c | 23 +---------------
>> drivers/nvmem/layouts.c | 11 --------
>> drivers/nvmem/layouts/Makefile | 1 +
>> drivers/nvmem/layouts/fixed-layout.c | 52 ++++++++++++++++++++++++++++++++++++
>> include/linux/nvmem-provider.h | 7 +++++
>> 6 files changed, 66 insertions(+), 33 deletions(-)
>>
>
> [...]
>
>> diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile
>> index 4940c9db0665..fbc195aa382c 100644
>> --- a/drivers/nvmem/layouts/Makefile
>> +++ b/drivers/nvmem/layouts/Makefile
>> @@ -3,6 +3,7 @@
>> # Makefile for nvmem layouts.
>> #
>>
>> +obj-y += fixed-layout.o
>
> This implies that you cannot remove that driver. I'm fine with it, but
> maybe since this is now almost costless, we could have a Kconfig entry
> that defaults to =y? This is not a blocker, I have no strong
> opinion. Srinivas?
>
Right. My first idea was fixed-layout is still a bit special, and should
always be present, just as before. But thinking again about it, there is
no real reason to make it different.
I will wait for Srinivas opinion, but I'm open to make it optional.
Should this be a separate commit, so it can be excluded from a potential
backport?
>> obj-$(CONFIG_NVMEM_LAYOUT_SL28_VPD) += sl28vpd.o
>> obj-$(CONFIG_NVMEM_LAYOUT_ONIE_TLV) += onie-tlv.o
>> obj-$(CONFIG_NVMEM_LAYOUT_U_BOOT_ENV) += u-boot-env.o
>> diff --git a/drivers/nvmem/layouts/fixed-layout.c b/drivers/nvmem/layouts/fixed-layout.c
>> new file mode 100644
>> index 000000000000..e5078d72a6fc
>> --- /dev/null
>> +++ b/drivers/nvmem/layouts/fixed-layout.c
>> @@ -0,0 +1,52 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Copyright 2025 Bootlin
>
> Can probably be bumped :-)
>
Thanks :)
>> + *
>> + * Authors: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>> + */
>> +
>> +#include <linux/nvmem-provider.h>
>> +#include <linux/of.h>
>
> Thanks,
> Miquèl
Thanks for your review,
Mathieu
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-05 12:58 ` Mathieu Dubois-Briand
@ 2026-05-05 13:15 ` Miquel Raynal
0 siblings, 0 replies; 8+ messages in thread
From: Miquel Raynal @ 2026-05-05 13:15 UTC (permalink / raw)
To: Mathieu Dubois-Briand
Cc: Srinivas Kandagatla, Grégory Clement, Thomas Petazzoni,
linux-kernel
Hello,
>>> Current implementation isn't working well when device tree nodes have a
>>> phandle on a fixed-layout nvmem node. As the fixed layout is handled in
>>> nvmem core, no driver is ever associated with the layout, and the device
>>> consumer driver probe is deferred indefinitely.
>>>
>>> Remove the specific handling of fixed-layout and add a layout driver.
>>> This makes the fixed-layout similar to all other layouts, fixing the
>>> whole issue.
>>
>> I guess this deserves a Fixes tag as well as a stable backport.
>>
>
> That's right. I will add:
> Fixes: fc29fd821d9a (nvmem: core: Rework layouts to become regular devices)
>
> Arguably, we could reference a commit even before, but I believe this is
> the commit that introduced a different behaviour between fixed-layout
> and other layouts.
Agreed.
Please also don't forget to add there:
Cc: stable@vger.kernel.org
>>> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>>> ---
>>> MAINTAINERS | 5 ++++
>>> drivers/nvmem/core.c | 23 +---------------
>>> drivers/nvmem/layouts.c | 11 --------
>>> drivers/nvmem/layouts/Makefile | 1 +
>>> drivers/nvmem/layouts/fixed-layout.c | 52 ++++++++++++++++++++++++++++++++++++
>>> include/linux/nvmem-provider.h | 7 +++++
>>> 6 files changed, 66 insertions(+), 33 deletions(-)
>>>
>>
>> [...]
>>
>>> diff --git a/drivers/nvmem/layouts/Makefile b/drivers/nvmem/layouts/Makefile
>>> index 4940c9db0665..fbc195aa382c 100644
>>> --- a/drivers/nvmem/layouts/Makefile
>>> +++ b/drivers/nvmem/layouts/Makefile
>>> @@ -3,6 +3,7 @@
>>> # Makefile for nvmem layouts.
>>> #
>>>
>>> +obj-y += fixed-layout.o
>>
>> This implies that you cannot remove that driver. I'm fine with it, but
>> maybe since this is now almost costless, we could have a Kconfig entry
>> that defaults to =y? This is not a blocker, I have no strong
>> opinion. Srinivas?
>>
>
> Right. My first idea was fixed-layout is still a bit special, and should
> always be present, just as before. But thinking again about it, there is
> no real reason to make it different.
>
> I will wait for Srinivas opinion, but I'm open to make it optional.
> Should this be a separate commit, so it can be excluded from a potential
> backport?
Definitely.
>>> obj-$(CONFIG_NVMEM_LAYOUT_SL28_VPD) += sl28vpd.o
>>> obj-$(CONFIG_NVMEM_LAYOUT_ONIE_TLV) += onie-tlv.o
>>> obj-$(CONFIG_NVMEM_LAYOUT_U_BOOT_ENV) += u-boot-env.o
>>> diff --git a/drivers/nvmem/layouts/fixed-layout.c b/drivers/nvmem/layouts/fixed-layout.c
>>> new file mode 100644
>>> index 000000000000..e5078d72a6fc
>>> --- /dev/null
>>> +++ b/drivers/nvmem/layouts/fixed-layout.c
>>> @@ -0,0 +1,52 @@
>>> +// SPDX-License-Identifier: GPL-2.0-only
>>> +/*
>>> + * Copyright 2025 Bootlin
>>
>> Can probably be bumped :-)
>>
>
> Thanks :)
>
>>> + *
>>> + * Authors: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
>>> + */
>>> +
>>> +#include <linux/nvmem-provider.h>
>>> +#include <linux/of.h>
>>
>> Thanks,
>> Miquèl
>
> Thanks for your review,
> Mathieu
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-05 8:42 [PATCH] nvmem: layouts: Add fixed-layout driver Mathieu Dubois-Briand
2026-05-05 9:14 ` Miquel Raynal
@ 2026-05-11 13:06 ` kernel test robot
2026-05-11 15:09 ` Mathieu Dubois-Briand
2026-05-11 13:43 ` kernel test robot
2026-05-11 15:04 ` kernel test robot
3 siblings, 1 reply; 8+ messages in thread
From: kernel test robot @ 2026-05-11 13:06 UTC (permalink / raw)
To: Mathieu Dubois-Briand, Srinivas Kandagatla
Cc: oe-kbuild-all, Miquel Raynal, Grégory Clement,
Thomas Petazzoni, linux-kernel, Mathieu Dubois-Briand
Hi Mathieu,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7fd2df204f342fc17d1a0bfcd474b24232fb0f32]
url: https://github.com/intel-lab-lkp/linux/commits/Mathieu-Dubois-Briand/nvmem-layouts-Add-fixed-layout-driver/20260511-170834
base: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
patch link: https://lore.kernel.org/r/20260505-mathieu-nvmem-fixed-layout-v1-1-7f6ecbce108d%40bootlin.com
patch subject: [PATCH] nvmem: layouts: Add fixed-layout driver
config: sh-defconfig (https://download.01.org/0day-ci/archive/20260511/202605112100.08bk8fTf-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260511/202605112100.08bk8fTf-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605112100.08bk8fTf-lkp@intel.com/
All errors (new ones prefixed by >>):
sh4-linux-ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_init':
>> fixed-layout.c:(.init.text+0x18): undefined reference to `__nvmem_layout_driver_register'
sh4-linux-ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_exit':
>> fixed-layout.c:(.exit.text+0x14): undefined reference to `nvmem_layout_driver_unregister'
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-11 13:06 ` kernel test robot
@ 2026-05-11 15:09 ` Mathieu Dubois-Briand
0 siblings, 0 replies; 8+ messages in thread
From: Mathieu Dubois-Briand @ 2026-05-11 15:09 UTC (permalink / raw)
To: kernel test robot, Srinivas Kandagatla
Cc: oe-kbuild-all, Miquel Raynal, Grégory Clement,
Thomas Petazzoni, linux-kernel
On Mon May 11, 2026 at 3:06 PM CEST, kernel test robot wrote:
> Hi Mathieu,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on 7fd2df204f342fc17d1a0bfcd474b24232fb0f32]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Mathieu-Dubois-Briand/nvmem-layouts-Add-fixed-layout-driver/20260511-170834
> base: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
> patch link: https://lore.kernel.org/r/20260505-mathieu-nvmem-fixed-layout-v1-1-7f6ecbce108d%40bootlin.com
> patch subject: [PATCH] nvmem: layouts: Add fixed-layout driver
> config: sh-defconfig (https://download.01.org/0day-ci/archive/20260511/202605112100.08bk8fTf-lkp@intel.com/config)
> compiler: sh4-linux-gcc (GCC) 15.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260511/202605112100.08bk8fTf-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202605112100.08bk8fTf-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> sh4-linux-ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_init':
>>> fixed-layout.c:(.init.text+0x18): undefined reference to `__nvmem_layout_driver_register'
> sh4-linux-ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_exit':
>>> fixed-layout.c:(.exit.text+0x14): undefined reference to `nvmem_layout_driver_unregister'
I confirm this is an issue. I will make sure this is fixed in v2.
My current plan is to modify drivers/nvmem/layouts/Makefile:
-obj-y += fixed-layout.o
+obj-$(CONFIG_NVMEM_LAYOUTS) += fixed-layout.o
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-05 8:42 [PATCH] nvmem: layouts: Add fixed-layout driver Mathieu Dubois-Briand
2026-05-05 9:14 ` Miquel Raynal
2026-05-11 13:06 ` kernel test robot
@ 2026-05-11 13:43 ` kernel test robot
2026-05-11 15:04 ` kernel test robot
3 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-05-11 13:43 UTC (permalink / raw)
To: Mathieu Dubois-Briand, Srinivas Kandagatla
Cc: oe-kbuild-all, Miquel Raynal, Grégory Clement,
Thomas Petazzoni, linux-kernel, Mathieu Dubois-Briand
Hi Mathieu,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7fd2df204f342fc17d1a0bfcd474b24232fb0f32]
url: https://github.com/intel-lab-lkp/linux/commits/Mathieu-Dubois-Briand/nvmem-layouts-Add-fixed-layout-driver/20260511-170834
base: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
patch link: https://lore.kernel.org/r/20260505-mathieu-nvmem-fixed-layout-v1-1-7f6ecbce108d%40bootlin.com
patch subject: [PATCH] nvmem: layouts: Add fixed-layout driver
config: parisc-defconfig (https://download.01.org/0day-ci/archive/20260511/202605112122.UbOid27c-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260511/202605112122.UbOid27c-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605112122.UbOid27c-lkp@intel.com/
All errors (new ones prefixed by >>):
hppa-linux-ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_init':
>> (.init.text+0x18): undefined reference to `__nvmem_layout_driver_register'
hppa-linux-ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_exit':
>> (.exit.text+0x18): undefined reference to `nvmem_layout_driver_unregister'
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] nvmem: layouts: Add fixed-layout driver
2026-05-05 8:42 [PATCH] nvmem: layouts: Add fixed-layout driver Mathieu Dubois-Briand
` (2 preceding siblings ...)
2026-05-11 13:43 ` kernel test robot
@ 2026-05-11 15:04 ` kernel test robot
3 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-05-11 15:04 UTC (permalink / raw)
To: Mathieu Dubois-Briand, Srinivas Kandagatla
Cc: oe-kbuild-all, Miquel Raynal, Grégory Clement,
Thomas Petazzoni, linux-kernel, Mathieu Dubois-Briand
Hi Mathieu,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7fd2df204f342fc17d1a0bfcd474b24232fb0f32]
url: https://github.com/intel-lab-lkp/linux/commits/Mathieu-Dubois-Briand/nvmem-layouts-Add-fixed-layout-driver/20260511-170834
base: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
patch link: https://lore.kernel.org/r/20260505-mathieu-nvmem-fixed-layout-v1-1-7f6ecbce108d%40bootlin.com
patch subject: [PATCH] nvmem: layouts: Add fixed-layout driver
config: i386-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260511/202605111648.gLUTeOnR-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260511/202605111648.gLUTeOnR-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605111648.gLUTeOnR-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_init':
>> drivers/nvmem/layouts/fixed-layout.c:47:(.init.text+0x10): undefined reference to `__nvmem_layout_driver_register'
ld: drivers/nvmem/layouts/fixed-layout.o: in function `fixed_layout_layout_exit':
>> drivers/nvmem/layouts/fixed-layout.c:47:(.exit.text+0x9): undefined reference to `nvmem_layout_driver_unregister'
vim +47 drivers/nvmem/layouts/fixed-layout.c
38
39 static struct nvmem_layout_driver fixed_layout_layout = {
40 .driver = {
41 .name = "fixed-layout",
42 .of_match_table = fixed_layout_of_match_table,
43 },
44 .probe = fixed_layout_probe,
45 .remove = fixed_layout_remove,
46 };
> 47 module_nvmem_layout_driver(fixed_layout_layout);
48
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-11 15:09 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-05 8:42 [PATCH] nvmem: layouts: Add fixed-layout driver Mathieu Dubois-Briand
2026-05-05 9:14 ` Miquel Raynal
2026-05-05 12:58 ` Mathieu Dubois-Briand
2026-05-05 13:15 ` Miquel Raynal
2026-05-11 13:06 ` kernel test robot
2026-05-11 15:09 ` Mathieu Dubois-Briand
2026-05-11 13:43 ` kernel test robot
2026-05-11 15:04 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox