From 836d6c207ce7cca5afcffe451da97ae1d82689a6 Mon Sep 17 00:00:00 2001 From: Aapo Vienamo Date: Fri, 10 Jan 2025 14:03:17 +0800 Subject: [PATCH] mtd: core: Don't fail mtd_otp_nvmem_add() if OTP is unsupported 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 Reviewed-by: Mika Westerberg Reviewed-by: Michael Walle Signed-off-by: Miquel Raynal 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 Acked-by: Jacob Martin Acked-by: Tim Whisonant Signed-off-by: Koichiro Den --- 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; } /**