From: "Michael Walle" <mwalle@kernel.org>
To: "Aapo Vienamo" <aapo.vienamo@linux.intel.com>
Cc: "Miquel Raynal" <miquel.raynal@bootlin.com>,
"Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
<linux-mtd@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
"Mika Westerberg" <mika.westerberg@linux.intel.com>
Subject: Re: [PATCH 2/2] mtd: core: Don't fail mtd_device_parse_register() if OTP is unsupported
Date: Wed, 13 Mar 2024 10:24:13 +0100 [thread overview]
Message-ID: <CZSIHWU6IYXB.2DUCUUYFTAB2X@kernel.org> (raw)
In-Reply-To: <xeqscncwirfaz77mtpcvkueo5xto7vis5khr3uwclcx4sfx6eb@35j3grcqrzo2>
[-- Attachment #1.1: Type: text/plain, Size: 2679 bytes --]
Hi,
On Mon Mar 11, 2024 at 5:20 PM CET, Aapo Vienamo wrote:
> On Mon, Mar 11, 2024 at 03:38:17PM +0100, Michael Walle wrote:
> > On Thu Mar 7, 2024 at 2:04 PM CET, Aapo Vienamo wrote:
> > > Handle the case where -EOPNOTSUPP is returned from OTP driver.
> > > + /*
> > > + * Don't abort MTD init if OTP functionality is unsupported. The
> > > + * cleanup of the OTP init is contained within mtd_otp_nvmem_add().
> > > + * Omitting goto out here is safe since the cleanup code there
> > > + * should be no-ops.
> > > + */
> >
> > Only if that's true for both the factory and user OTP area.
>
> I'm not sure I follow. I'm not seeing a path in mtd_otp_nvmem_add()
> that would result in either mtd->otp_user_nvmem or mtd->otp_factor_nvmem
> needing to be cleaned up by the caller, if an error is returned, if
> that's what you are referring to.
Yes you're right, sorry for the noise.
>
> > Also, you'll print an error message for EOPNOTSUPP, although that is
> > not really an error. Is that intended?
>
> Well, when we hit this, the functionality of the SPI memory itself is
> degraded in the sense that the OTP functionality is not available. What
> would you suggest?
But it's not really an error, I mean, we are ignoring that one on
purpose now :) I'd just guard it with "if (ret != -EOPNOTSUPP)".
> >
> > > ret = mtd_otp_nvmem_add(mtd);
> > > - if (ret)
> > > + if (ret && ret != -EOPNOTSUPP)
> >
> > Maybe there is a better way to handle this, like controller
> > capabilities instead of putting these EOPNOTSUPP checks
> > everywhere? I'm not sure.
>
> Trying to come up with clear semantics for a capabilities flag to solve
> this is difficult. The issue is that on the SPI controller side, the
> limitation stems from the really strict set of opcodes that are allowed.
> For example, we already hit an error with the 0x35 (read configuration
> register) not being on the set of allowed opcodes. While this
> instruction is used by the OTP code, it's not a strictly OTP specific
> operation.
I see. It's just that due to this (very) restricted SPI contoller
all this EOPNOTSUPP handling is creeping into more an more places in
spi-nor core and now mtdcore :)
Anyway, I don't have any better idea right now. So I think this is
fine.
-michael
> If there was a flag that would signal OTP support, I think it would have
> be defined as "the controller supports all operations that are
> performed by the OTP code", which sounds brittle. The other way around
> would be to have a really fine-grained set of flags that the MTD core
> would check, but that feels tedious and error prone as well.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 252 bytes --]
[-- Attachment #2: Type: text/plain, Size: 144 bytes --]
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: "Michael Walle" <mwalle@kernel.org>
To: "Aapo Vienamo" <aapo.vienamo@linux.intel.com>
Cc: "Miquel Raynal" <miquel.raynal@bootlin.com>,
"Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
<linux-mtd@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
"Mika Westerberg" <mika.westerberg@linux.intel.com>
Subject: Re: [PATCH 2/2] mtd: core: Don't fail mtd_device_parse_register() if OTP is unsupported
Date: Wed, 13 Mar 2024 10:24:13 +0100 [thread overview]
Message-ID: <CZSIHWU6IYXB.2DUCUUYFTAB2X@kernel.org> (raw)
In-Reply-To: <xeqscncwirfaz77mtpcvkueo5xto7vis5khr3uwclcx4sfx6eb@35j3grcqrzo2>
[-- Attachment #1: Type: text/plain, Size: 2679 bytes --]
Hi,
On Mon Mar 11, 2024 at 5:20 PM CET, Aapo Vienamo wrote:
> On Mon, Mar 11, 2024 at 03:38:17PM +0100, Michael Walle wrote:
> > On Thu Mar 7, 2024 at 2:04 PM CET, Aapo Vienamo wrote:
> > > Handle the case where -EOPNOTSUPP is returned from OTP driver.
> > > + /*
> > > + * Don't abort MTD init if OTP functionality is unsupported. The
> > > + * cleanup of the OTP init is contained within mtd_otp_nvmem_add().
> > > + * Omitting goto out here is safe since the cleanup code there
> > > + * should be no-ops.
> > > + */
> >
> > Only if that's true for both the factory and user OTP area.
>
> I'm not sure I follow. I'm not seeing a path in mtd_otp_nvmem_add()
> that would result in either mtd->otp_user_nvmem or mtd->otp_factor_nvmem
> needing to be cleaned up by the caller, if an error is returned, if
> that's what you are referring to.
Yes you're right, sorry for the noise.
>
> > Also, you'll print an error message for EOPNOTSUPP, although that is
> > not really an error. Is that intended?
>
> Well, when we hit this, the functionality of the SPI memory itself is
> degraded in the sense that the OTP functionality is not available. What
> would you suggest?
But it's not really an error, I mean, we are ignoring that one on
purpose now :) I'd just guard it with "if (ret != -EOPNOTSUPP)".
> >
> > > ret = mtd_otp_nvmem_add(mtd);
> > > - if (ret)
> > > + if (ret && ret != -EOPNOTSUPP)
> >
> > Maybe there is a better way to handle this, like controller
> > capabilities instead of putting these EOPNOTSUPP checks
> > everywhere? I'm not sure.
>
> Trying to come up with clear semantics for a capabilities flag to solve
> this is difficult. The issue is that on the SPI controller side, the
> limitation stems from the really strict set of opcodes that are allowed.
> For example, we already hit an error with the 0x35 (read configuration
> register) not being on the set of allowed opcodes. While this
> instruction is used by the OTP code, it's not a strictly OTP specific
> operation.
I see. It's just that due to this (very) restricted SPI contoller
all this EOPNOTSUPP handling is creeping into more an more places in
spi-nor core and now mtdcore :)
Anyway, I don't have any better idea right now. So I think this is
fine.
-michael
> If there was a flag that would signal OTP support, I think it would have
> be defined as "the controller supports all operations that are
> performed by the OTP code", which sounds brittle. The other way around
> would be to have a really fine-grained set of flags that the MTD core
> would check, but that feels tedious and error prone as well.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 252 bytes --]
next prev parent reply other threads:[~2024-03-13 9:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-07 13:04 [PATCH 0/2] mtd: core: Handle unsupported OTP operations Aapo Vienamo
2024-03-07 13:04 ` Aapo Vienamo
2024-03-07 13:04 ` [PATCH 1/2] mtd: core: Report error if first mtd_otp_size() call fails in mtd_otp_nvmem_add() Aapo Vienamo
2024-03-07 13:04 ` Aapo Vienamo
2024-03-11 14:23 ` Michael Walle
2024-03-11 14:23 ` Michael Walle
2024-03-07 13:04 ` [PATCH 2/2] mtd: core: Don't fail mtd_device_parse_register() if OTP is unsupported Aapo Vienamo
2024-03-07 13:04 ` Aapo Vienamo
2024-03-11 14:38 ` Michael Walle
2024-03-11 14:38 ` Michael Walle
2024-03-11 16:20 ` Aapo Vienamo
2024-03-11 16:20 ` Aapo Vienamo
2024-03-13 9:24 ` Michael Walle [this message]
2024-03-13 9:24 ` Michael Walle
2024-03-13 13:59 ` Aapo Vienamo
2024-03-13 13:59 ` Aapo Vienamo
2024-03-13 14:03 ` Michael Walle
2024-03-13 14:03 ` Michael Walle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CZSIHWU6IYXB.2DUCUUYFTAB2X@kernel.org \
--to=mwalle@kernel.org \
--cc=aapo.vienamo@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=mika.westerberg@linux.intel.com \
--cc=miquel.raynal@bootlin.com \
--cc=richard@nod.at \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.