From: Michael Walle <michael@walle.cc>
To: Tudor.Ambarus@microchip.com
Cc: vigneshr@ti.com, richard@nod.at, linux-kernel@vger.kernel.org,
linux-mtd@lists.infradead.org, Kavyasree.Kotagiri@microchip.com,
miquel.raynal@bootlin.com, p.yadav@ti.com
Subject: Re: [PATCH v2 2/2] mtd: spi-nor: sst: Add support for Global Unlock on sst26vf
Date: Wed, 20 Jan 2021 16:49:21 +0100 [thread overview]
Message-ID: <e1e5f647fd9e91538fd730c626beff52@walle.cc> (raw)
In-Reply-To: <8a0e7885-4b9e-be62-eb46-1af74c65afa8@microchip.com>
Am 2021-01-20 16:39, schrieb Tudor.Ambarus@microchip.com:
> On 1/20/21 5:02 PM, Michael Walle wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know
>> the content is safe
>>
>> Am 2021-01-20 15:52, schrieb Tudor.Ambarus@microchip.com:
>>> On 1/20/21 4:05 PM, Michael Walle wrote:
>>>>> diff --git a/drivers/mtd/spi-nor/sst.c b/drivers/mtd/spi-nor/sst.c
>>>>> index 00e48da0744a..d6e1396abb96 100644
>>>>> --- a/drivers/mtd/spi-nor/sst.c
>>>>> +++ b/drivers/mtd/spi-nor/sst.c
>>>>> @@ -8,6 +8,39 @@
>>>>>
>>>>> #include "core.h"
>>>>>
>>>>> +static int sst26vf_lock(struct spi_nor *nor, loff_t ofs, uint64_t
>>>>> len)
>>>>> +{
>>>>> + return -EOPNOTSUPP;
>>>>> +}
>>>>> +
>>>>> +static int sst26vf_unlock(struct spi_nor *nor, loff_t ofs,
>>>>> uint64_t
>>>>> len)
>>>>> +{
>>>>> + if (ofs == 0 && len == nor->params->size)
>>>>> + return spi_nor_global_block_unlock(nor);
>>>>
>>>>
>>>> Some blocks might not be unlocked because they are permanently
>>>> locked. Does it make sense to read BPNV of the control register
>>>> and add a debug message here?
>>>
>>> It would, yes. If any block is permanently locked in the unlock_all
>>> case,
>>> I'll just print a dbg message and return -EINVAL. Sounds good?
>>
>> spi_nor_sr_unlock(), atmel_at25fs_unlock() and
>> atmel_global_unprotect()
>> will return -EIO in case the SR wasn't writable.
>
> You mean in the spi_nor_write_sr_and_check() calls. -EIO is fine
> there if what we wrote is different than what we read back, it would
> indicate an IO error.
>
> GBULK command clears all the write-protection bits in the Block
> Protection register, except for those bits that have been permanently
> locked down. So even if we have few blocks permanently locked, i.e.
> CR.BPNV == 1, the GBULK can clear the protection for the remaining
> blocks. So not really an IO error, but rather an -EINVAL, because
> the user asks to unlock more than we can.
Doesn't EINVAL indicate wrong parameters, but does nothing? In this
case, unlock would be partially successful.
In any case, my point was that depending on the underlying locking
ops, either -EIO or -EINVAL is returned if spi_nor_unlock() fails
for the same reason, that is unlock() wasn't possible because of
some sort of hardware write protection. And IMHO it should return
the same errno (whatever the correct errno is in this case).
-michael
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2021-01-20 15:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-20 13:19 [PATCH v2 1/2] mtd: spi-nor: Add Global Block Unlock command Tudor Ambarus
2021-01-20 13:19 ` [PATCH v2 2/2] mtd: spi-nor: sst: Add support for Global Unlock on sst26vf Tudor Ambarus
2021-01-20 14:05 ` Michael Walle
2021-01-20 14:52 ` Tudor.Ambarus
2021-01-20 15:02 ` Michael Walle
2021-01-20 15:39 ` Tudor.Ambarus
2021-01-20 15:49 ` Michael Walle [this message]
2021-01-20 16:25 ` Tudor.Ambarus
2021-01-20 16:47 ` Michael Walle
2021-01-20 16:56 ` Tudor.Ambarus
2021-01-20 13:54 ` [PATCH v2 1/2] mtd: spi-nor: Add Global Block Unlock command 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=e1e5f647fd9e91538fd730c626beff52@walle.cc \
--to=michael@walle.cc \
--cc=Kavyasree.Kotagiri@microchip.com \
--cc=Tudor.Ambarus@microchip.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=miquel.raynal@bootlin.com \
--cc=p.yadav@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox