From: <Tudor.Ambarus@microchip.com>
To: <michael@walle.cc>
Cc: <p.yadav@ti.com>, <miquel.raynal@bootlin.com>, <richard@nod.at>,
<vigneshr@ti.com>, <linux-mtd@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <Nicolas.Ferre@microchip.com>
Subject: Re: [PATCH v3 3/3] mtd: spi-nor: Favor the BFPT-parsed set_4byte_addr_mode method
Date: Thu, 14 Apr 2022 09:32:35 +0000 [thread overview]
Message-ID: <2c77371b-355a-5a1a-a83d-7bf40b088683@microchip.com> (raw)
In-Reply-To: <a6519a1ce39534c35760334cd69396b3@walle.cc>
On 4/14/22 12:21, Michael Walle wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> Am 2022-04-11 14:53, schrieb Tudor Ambarus:
>> JESD216 SFDP defines in the BFPT standard methods to enter and exit the
>> 4-Byte Address Mode. The flash parameters and settings that are
>> retrieved
>> from SFDP have higher precedence than the static initialized ones,
>> because
>> they should be more accurate and less error prone than those
>> initialized
>> statically. Favor the BFPT-parsed set_4byte_addr_mode method and use
>> the
>> generic core methods where possible.
>> This patch may introduce regressions in case BFPT contains wrong data.
>> The
>> fix is to introduce a post_bfpt() fixup hook and update the wrong BFPT
>> data.
>>
>> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
>> Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
>> ---
>> v3: no changes
>>
>> drivers/mtd/spi-nor/core.c | 7 ++++++-
>> drivers/mtd/spi-nor/macronix.c | 10 ++++++++--
>> drivers/mtd/spi-nor/micron-st.c | 9 ++++++---
>> 3 files changed, 20 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
>> index 4d45cda4f9d3..888516d98884 100644
>> --- a/drivers/mtd/spi-nor/core.c
>> +++ b/drivers/mtd/spi-nor/core.c
>> @@ -2416,6 +2416,8 @@ static void spi_nor_init_fixup_flags(struct
>> spi_nor *nor)
>> */
>> static void spi_nor_late_init_params(struct spi_nor *nor)
>> {
>> + struct spi_nor_flash_parameter *params = nor->params;
>> +
>> if (nor->manufacturer && nor->manufacturer->fixups &&
>> nor->manufacturer->fixups->late_init)
>> nor->manufacturer->fixups->late_init(nor);
>> @@ -2423,6 +2425,10 @@ static void spi_nor_late_init_params(struct
>> spi_nor *nor)
>> if (nor->info->fixups && nor->info->fixups->late_init)
>> nor->info->fixups->late_init(nor);
>>
>> + /* Default method kept for backward compatibility. */
>> + if (!params->set_4byte_addr_mode)
>> + params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_brwr;
>
> Can this be moved past..
>
>> +
>> spi_nor_init_flags(nor);
>> spi_nor_init_fixup_flags(nor);
>
> .. these two lines, so it is next to the "set default
> locking ops"?
>
sure
>>
>> @@ -2490,7 +2496,6 @@ static void spi_nor_init_default_params(struct
>> spi_nor *nor)
>> struct device_node *np = spi_nor_get_flash_node(nor);
>>
>> params->quad_enable = spi_nor_sr2_bit1_quad_enable;
>> - params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_brwr;
>> params->otp.org = &info->otp_org;
>>
>> /* Default to 16-bit Write Status (01h) Command */
>> diff --git a/drivers/mtd/spi-nor/macronix.c
>> b/drivers/mtd/spi-nor/macronix.c
>> index 85e8655d362c..c267cbcc7f1d 100644
>> --- a/drivers/mtd/spi-nor/macronix.c
>> +++ b/drivers/mtd/spi-nor/macronix.c
>> @@ -105,12 +105,18 @@ static const struct flash_info
>> macronix_nor_parts[] = {
>> static void macronix_nor_default_init(struct spi_nor *nor)
>> {
>> nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
>> - nor->params->set_4byte_addr_mode =
>> - spi_nor_set_4byte_addr_mode_en4b_ex4b;
>> +}
>> +
>> +static void macronix_nor_late_init(struct spi_nor *nor)
>> +{
>> + if (!nor->params->set_4byte_addr_mode)
>> + nor->params->set_4byte_addr_mode =
>> + spi_nor_set_4byte_addr_mode_en4b_ex4b;
>
> This is more of a general question. Can we have this in one
> line? IMHO this looks awful and since linux nowadays relaxed the
> 80 chars rule a bit and we have such long names.. I think it makes
> sense to allow some lines to be longer than 80 chars.
I still split my terminal in multiple windows and pretty much read
code in a 80 chars limit. But I won't argue with you, it seems you
care about it, so I'll change it.
>
>> }
>>
>> static const struct spi_nor_fixups macronix_nor_fixups = {
>> .default_init = macronix_nor_default_init,
>> + .late_init = macronix_nor_late_init,
>> };
>>
>> const struct spi_nor_manufacturer spi_nor_macronix = {
>> diff --git a/drivers/mtd/spi-nor/micron-st.c
>> b/drivers/mtd/spi-nor/micron-st.c
>> index 2d1cbb1f37c8..9e9b107f2018 100644
>> --- a/drivers/mtd/spi-nor/micron-st.c
>> +++ b/drivers/mtd/spi-nor/micron-st.c
>> @@ -414,14 +414,17 @@ static void micron_st_nor_default_init(struct
>> spi_nor *nor)
>> nor->flags |= SNOR_F_HAS_LOCK;
>> nor->flags &= ~SNOR_F_HAS_16BIT_SR;
>> nor->params->quad_enable = NULL;
>> - nor->params->set_4byte_addr_mode =
>> - spi_nor_set_4byte_addr_mode_wren_en4b_ex4b;
>> }
>>
>> static void micron_st_nor_late_init(struct spi_nor *nor)
>> {
>> + struct spi_nor_flash_parameter *params = nor->params;
>> +
>> if (nor->info->mfr_flags & USE_FSR)
>> - nor->params->ready = micron_st_nor_ready;
>> + params->ready = micron_st_nor_ready;
>> + if (!params->set_4byte_addr_mode)
>> + params->set_4byte_addr_mode =
>> + spi_nor_set_4byte_addr_mode_wren_en4b_ex4b;
>
> same here.
>
sure
Thanks,
ta
next prev parent reply other threads:[~2022-04-14 9:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-11 12:53 [PATCH v3 0/3] mtd: spi-nor: Parse BFPT to determine the 4-Byte Address Mode Tudor Ambarus
2022-04-11 12:53 ` [PATCH v3 1/3] mtd: spi-nor: Parse BFPT to determine the 4-Byte Address Mode methods Tudor Ambarus
2022-04-14 9:03 ` Michael Walle
2022-04-14 9:05 ` Michael Walle
2022-04-14 9:25 ` Tudor.Ambarus
2022-04-14 9:51 ` Michael Walle
2022-04-14 11:05 ` Tudor.Ambarus
2022-04-16 15:03 ` Michael Walle
2022-04-11 12:53 ` [PATCH v3 2/3] mtd: spi-nor: Update name and description of the set_4byte_addr_mode BFPT methods Tudor Ambarus
2022-04-14 9:10 ` Michael Walle
2022-04-11 12:53 ` [PATCH v3 3/3] mtd: spi-nor: Favor the BFPT-parsed set_4byte_addr_mode method Tudor Ambarus
2022-04-14 9:21 ` Michael Walle
2022-04-14 9:32 ` Tudor.Ambarus [this message]
2022-04-18 8:45 ` Pratyush Yadav
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=2c77371b-355a-5a1a-a83d-7bf40b088683@microchip.com \
--to=tudor.ambarus@microchip.com \
--cc=Nicolas.Ferre@microchip.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=michael@walle.cc \
--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