mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-04 04:54:18 +00:00
45 lines
1.9 KiB
Diff
45 lines
1.9 KiB
Diff
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||
|
Date: Wed, 27 Mar 2024 23:18:51 +0100
|
||
|
Subject: [PATCH] mtd: don't look for OTP legacy NVMEM cells if proper node
|
||
|
doesn't exist
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
If node with "user-otp" / "factory-otp" compatible doesn't exist it's
|
||
|
important to prevent NVMEM core from looking for legacy NVMEM cells.
|
||
|
Otherwise it would look for them in the device node.
|
||
|
|
||
|
This fixes treating NAND controller attached chips as NVMEM cell.
|
||
|
Problem example:
|
||
|
[ 0.410107] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xdc
|
||
|
[ 0.416531] nand: Macronix MX30LF4G18AC
|
||
|
[ 0.420409] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
|
||
|
[ 0.428022] iproc_nand 18028000.nand-controller: detected 512MiB total, 128KiB blocks, 2KiB pages, 16B OOB, 8-bit, BCH-8
|
||
|
[ 0.438991] Scanning device for bad blocks
|
||
|
(...)
|
||
|
[ 2.848418] nvmem user-otp1: nvmem: invalid reg on /nand-controller@18028000/nand@0
|
||
|
[ 2.856126] iproc_nand 18028000.nand-controller: error -EINVAL: Failed to register OTP NVMEM device
|
||
|
|
||
|
This long standing issue was exposed by the support for Macronix OTP.
|
||
|
|
||
|
Reported-by: Christian Marangi <ansuelsmth@gmail.com>
|
||
|
Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support")
|
||
|
Fixes: e87161321a40 ("mtd: rawnand: macronix: OTP access for MX30LFxG18AC")
|
||
|
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||
|
---
|
||
|
drivers/mtd/mtdcore.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
--- a/drivers/mtd/mtdcore.c
|
||
|
+++ b/drivers/mtd/mtdcore.c
|
||
|
@@ -931,7 +931,7 @@ static struct nvmem_device *mtd_otp_nvme
|
||
|
config.name = compatible;
|
||
|
config.id = NVMEM_DEVID_AUTO;
|
||
|
config.owner = THIS_MODULE;
|
||
|
- config.add_legacy_fixed_of_cells = true;
|
||
|
+ config.add_legacy_fixed_of_cells = !!np;
|
||
|
config.type = NVMEM_TYPE_OTP;
|
||
|
config.root_only = true;
|
||
|
config.ignore_wp = true;
|