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 <aapo.vienamo@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Signed-off-by: Miquel Raynal <miquel.raynal@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@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Acked-by: Tim Whisonant <tim.whisonant@canonical.com>
Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
This commit is contained in:
Aapo Vienamo
2025-01-10 14:03:17 +08:00
committed by Mehmet Basaran
parent 94f464fdee
commit 836d6c207c
+5 -1
View File
@@ -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;
}
/**