Two series lived in parallel for some time, which led to this situation: - The nvmem-layout container is used for dynamic layouts - We now expect fixed layouts to also use the nvmem-layout container but this does not require any additional driver, the support is built-in the nvmem core.
Ensure we don't refuse to probe for wrong reasons.
Fixes: 27f699e578b1 ("nvmem: core: add support for fixed cells *layout*") Cc: stable@vger.kernel.org Reported-by: Luca Ceresoli luca.ceresoli@bootlin.com Signed-off-by: Miquel Raynal miquel.raynal@bootlin.com ---
Please note this is a temporary fix as this piece of code is going to disappear when the NVMEM layouts 'as devices' series gets in.
drivers/nvmem/core.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index bf42b7e826db..608b352a7d91 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -796,6 +796,12 @@ static struct nvmem_layout *nvmem_layout_get(struct nvmem_device *nvmem) if (!layout_np) return NULL;
+ /* Fixed layouts don't have a matching driver */ + if (of_device_is_compatible(layout_np, "fixed-layout")) { + of_node_put(layout_np); + return NULL; + } + /* * In case the nvmem device was built-in while the layout was built as a * module, we shall manually request the layout driver loading otherwise
On 2023-11-24 20:38, Miquel Raynal wrote:
Two series lived in parallel for some time, which led to this situation:
- The nvmem-layout container is used for dynamic layouts
- We now expect fixed layouts to also use the nvmem-layout container
but this does not require any additional driver, the support is built-in the nvmem core.
Ensure we don't refuse to probe for wrong reasons.
I pushed a pretty much identical patch to OpenWrt (I just forgot of_node_put()): commit 61f674df4f0c ("kernel: nvmem: fix "fixed-layout" & support "mac-base""): https://git.openwrt.org/?p=openwrt/openwrt.git%3Ba=commitdiff%3Bh=61f674df4f...
It's in use since July and seems to do the trick just fine.
Thanks for submitting this fix.
Fixes: 27f699e578b1 ("nvmem: core: add support for fixed cells *layout*") Cc: stable@vger.kernel.org Reported-by: Luca Ceresoli luca.ceresoli@bootlin.com Signed-off-by: Miquel Raynal miquel.raynal@bootlin.com
Tested-by: Rafał Miłecki rafal@milecki.pl
Hi Miquèl,
On Fri, 24 Nov 2023 20:38:14 +0100 Miquel Raynal miquel.raynal@bootlin.com wrote:
Two series lived in parallel for some time, which led to this situation:
- The nvmem-layout container is used for dynamic layouts
- We now expect fixed layouts to also use the nvmem-layout container but
this does not require any additional driver, the support is built-in the nvmem core.
Ensure we don't refuse to probe for wrong reasons.
Fixes: 27f699e578b1 ("nvmem: core: add support for fixed cells *layout*") Cc: stable@vger.kernel.org Reported-by: Luca Ceresoli luca.ceresoli@bootlin.com Signed-off-by: Miquel Raynal miquel.raynal@bootlin.com
[fixes probing I2C EEPROMs using fixed-layout] Tested-by: Luca Ceresoli luca.ceresoli@bootlin.com Reviewed-by: Luca Ceresoli luca.ceresoli@bootlin.com
linux-stable-mirror@lists.linaro.org