[SRU][N][PATCH 1/2] mtd: core: Don't fail mtd_otp_nvmem_add() if OTP is unsupported

Aaron Ma aaron.ma at canonical.com
Fri Jan 10 06:03:17 UTC 2025


From: Aapo Vienamo <aapo.vienamo at linux.intel.com>

BugLink: https://bugs.launchpad.net/bugs/2070339

Handle the case where -EOPNOTSUPP is returned from OTP driver.

This addresses an issue that occurs with the Intel SPI flash controller,
which has a limited supported opcode set. Whilst the OTP functionality
is not available due to this restriction, other parts of the MTD
functionality of the device are intact. This change allows the driver
to gracefully handle the restriction by allowing the supported
functionality to remain available instead of failing the probe
altogether.

Signed-off-by: Aapo Vienamo <aapo.vienamo at linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg at linux.intel.com>
Reviewed-by: Michael Walle <mwalle at kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20240313173425.1325790-3-aapo.vienamo@linux.intel.com
(cherry picked from commit fe0b8213c0129ff2419458343d8d8e716b1495c0)
Signed-off-by: Aaron Ma <aaron.ma at canonical.com>
---
 drivers/mtd/mtdcore.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 6d5c755411de..4c1fdf8a2588 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -1014,7 +1014,11 @@ static int mtd_otp_nvmem_add(struct mtd_info *mtd)
 
 err:
 	nvmem_unregister(mtd->otp_user_nvmem);
-	return dev_err_probe(dev, err, "Failed to register OTP NVMEM device\n");
+	/* Don't report error if OTP is not supported. */
+	if (err != -EOPNOTSUPP)
+		return dev_err_probe(dev, err,
+				     "Failed to register OTP NVMEM device\n");
+	return 0;
 }
 
 /**
-- 
2.43.0




More information about the kernel-team mailing list