aboutsummaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
authorGravatar Aapo Vienamo <aapo.vienamo@linux.intel.com> 2024-03-13 19:34:25 +0200
committerGravatar Miquel Raynal <miquel.raynal@bootlin.com> 2024-03-25 10:26:55 +0100
commitfe0b8213c0129ff2419458343d8d8e716b1495c0 (patch)
treecc3aec53748a36974205e7132fbae2eca653a96d /drivers/mtd
parentmtd: core: Report error if first mtd_otp_size() call fails in mtd_otp_nvmem_a... (diff)
downloadlinux-fe0b8213c0129ff2419458343d8d8e716b1495c0.tar.gz
linux-fe0b8213c0129ff2419458343d8d8e716b1495c0.tar.bz2
linux-fe0b8213c0129ff2419458343d8d8e716b1495c0.zip
mtd: core: Don't fail mtd_otp_nvmem_add() if OTP is unsupported
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
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/mtdcore.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index c365c97e7232..9e18422fdc77 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;
}
/**