Message ID | 20240313173425.1325790-3-aapo.vienamo@linux.intel.com |
---|---|
State | Accepted |
Headers | show |
Series | mtd: core: Handle unsupported OTP operations | expand |
On Wed Mar 13, 2024 at 6:34 PM CET, Aapo Vienamo wrote: > 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> -michael
On Wed, 2024-03-13 at 17:34:25 UTC, Aapo Vienamo wrote: > 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> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks. Miquel
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; } /**