linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: <Tudor.Ambarus@microchip.com>
To: <p.yadav@ti.com>
Cc: macromorgan@hotmail.com, vigneshr@ti.com, jaimeliao@mxic.com.tw,
	richard@nod.at, esben@geanix.com, linux@rasmusvillemoes.dk,
	knaerzche@gmail.com, Nicolas.Ferre@microchip.com,
	michael@walle.cc, linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, code@reto-schneider.ch,
	miquel.raynal@bootlin.com, heiko.thiery@gmail.com, sr@denx.de,
	mail@david-bauer.net, zhengxunli@mxic.com.tw
Subject: Re: [PATCH v2 16/35] mtd: spi-nor: core: Mark default_init() as deprecated
Date: Fri, 1 Oct 2021 14:18:11 +0000	[thread overview]
Message-ID: <33dad358-b6f7-292b-2f02-7b5c9f9c8b2a@microchip.com> (raw)
In-Reply-To: <20210816193602.ze2w6qczvtgpwwdi@ti.com>

On 8/16/21 10:36 PM, Pratyush Yadav wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On 27/07/21 07:52AM, Tudor Ambarus wrote:
>> The goal is to remove the spagetti init of params. The flash should
>> be initialized by the SFDP data, and when SFDP tables are not defined,
>> by the flash_info flags. SFDP data can be corrected by the
>> post_{bfpt, sfdp} when wrong, and in case of flash_info flags init,
>> we'll use the late_init() hook, where checking for the
>> SPI_NOR_SKIP_SFDP flag.
> 
> Why depreciate it? It is not like we have external callers that we need
> to notify. We know and control all the users of this function. Just move
> all users to late_init() and delete this. You have already done a large
> part of that work in the previous patches. Why not convert all other
> callers as well? Is there some complicated piece of code that stops you
> from touching it for now?

Nothing complicated, but I don't have flashes to test. Let's take them one by one:

drivers/mtd/spi-nor/gigadevice.c:static void gd25q256_default_init(struct spi_nor *nor)
sets nor->params->quad_enable method. Quad enable is SFDP discoverable, if I replace
the default_init() with late_init() I'll risk to overwrite the method discovered by SFDP.

drivers/mtd/spi-nor/issi.c:     .default_init = issi_default_init,
same for ISSI. Here it is a manufacturer default init, which is worse. All flashes
have to be checked. This is another reason why I strongly prefer late_init() calls
to set flags per flash and not at manufacturer level.

drivers/mtd/spi-nor/micron-st.c:static void mt35xu512aba_default_init(struct spi_nor *nor)
you have this flash. If the octal_dtr_enable method is not SFDP discoverable, I can
move if to late_init(). I'm waiting for your call. I'll need a tested-by after I'll
make the patch.

drivers/mtd/spi-nor/micron-st.c:        .default_init = micron_st_default_init,
This one is hard to get rid of. I won't be surprised if these fields are overwritten
when parsing SFDP. Moving them in late_init() will nullify SFDP parsing.

drivers/mtd/spi-nor/spansion.c:static void s28hs512t_default_init(struct spi_nor *nor)
you have this flash. I'll move it to late init if octal_dtr_enable method is not SFDP
discoverable. I'll need a tested-by.

drivers/mtd/spi-nor/winbond.c:static void winbond_default_init(struct spi_nor *nor)
4byte addr mode is SFDP discoverable, if I move it in late_init() I'll overwrite what
I get from SFDP.

So just mark the hook as deprecated should be enough for now (at least for this release).
We'll probably never have all these flashes at hand, so maybe we'll agree for a time limit
after which we'll switch to late_init() or post_bfpt/sfpd() solely based on datasheet info.
If the datasheets will be wrong, we'll have bugs and people will scream, but nothing that
we can't handle/fix.

Cheers,
ta

> 
>>
>> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
>> ---
>>  drivers/mtd/spi-nor/core.h | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
>> index 13d5c5edfd27..625f4eed75f1 100644
>> --- a/drivers/mtd/spi-nor/core.h
>> +++ b/drivers/mtd/spi-nor/core.h
>> @@ -289,9 +289,8 @@ struct spi_nor_flash_parameter {
>>
>>  /**
>>   * struct spi_nor_fixups - SPI NOR fixup hooks
>> - * @default_init: called after default flash parameters init. Used to tweak
>> - *                flash parameters when information provided by the flash_info
>> - *                table is incomplete or wrong.
>> + * @default_init: Deprecated. Use the post_{bfpt, sfdp}, or the late_init()
>> + *                hooks instead.
>>   * @post_bfpt: called after the BFPT table has been parsed
>>   * @post_sfdp: called after SFDP has been parsed (is also called for SPI NORs
>>   *             that do not support RDSFDP). Typically used to tweak various
>> --
>> 2.25.1
>>
> 
> --
> Regards,
> Pratyush Yadav
> Texas Instruments Inc.
> 

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2021-10-01 14:19 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-27  4:51 [PATCH v2 00/35] mtd: spi-nor: Handle ID collisions and clean params init Tudor Ambarus
2021-07-27  4:51 ` [PATCH v2 01/35] mtd: spi-nor: core: Introduce SPI_NOR_PARSE_SFDP Tudor Ambarus
2021-08-04  8:09   ` Pratyush Yadav
2021-08-23 22:17   ` Michael Walle
2021-07-27  4:51 ` [PATCH v2 02/35] mtd: spi-nor: core: Report correct name in case of ID collisions Tudor Ambarus
2021-08-04  8:23   ` Pratyush Yadav
2021-08-23 22:32     ` Michael Walle
2021-07-27  4:51 ` [PATCH v2 03/35] mtd: spi-nor: macronix: Handle ID collision b/w MX25L3233F and MX25L3205D Tudor Ambarus
2021-08-23 22:42   ` Michael Walle
2021-10-01  8:41     ` Tudor.Ambarus
2021-07-27  4:51 ` [PATCH v2 04/35] mtd: spi-nor: macronix: Handle ID collision b/w MX25L12805D and MX25L12835F Tudor Ambarus
2021-08-23 22:44   ` Michael Walle
2021-07-27  4:51 ` [PATCH v2 05/35] mtd: spi-nor: Introduce Manufacturer ID collisions driver Tudor Ambarus
2021-08-16 18:28   ` Pratyush Yadav
2021-08-23 22:47   ` Michael Walle
2021-10-01  9:16     ` Tudor.Ambarus
2021-10-24 17:44   ` Michael Walle
2021-11-06  9:58     ` Tudor.Ambarus
2021-07-27  4:51 ` [PATCH v2 06/35] mtd: spi-nor: manuf-id-collisions: Add support for xt25f128b Tudor Ambarus
2021-07-27 15:52   ` Chris Morgan
2021-07-28  4:10     ` Tudor.Ambarus
2021-08-16 18:43   ` Pratyush Yadav
2021-10-01  9:26     ` Tudor.Ambarus
2021-07-27  4:51 ` [PATCH v2 07/35] mtd: spi-nor: manuf-id-collisions: Add support for xm25qh64c Tudor Ambarus
2021-08-16 18:45   ` Pratyush Yadav
2021-07-27  4:51 ` [PATCH v2 08/35] mtd: spi-nor: core: Introduce the ate_init() hook Tudor Ambarus
2021-08-16 18:54   ` Pratyush Yadav
2021-09-09 21:40     ` Michael Walle
2021-10-01  9:44       ` Tudor.Ambarus
2021-10-01  9:38     ` Tudor.Ambarus
2021-07-27  4:51 ` [PATCH v2 09/35] mtd: spi-nor: atmel: Use flash late_init() for locking Tudor Ambarus
2021-08-16 19:06   ` Pratyush Yadav
2021-09-09 21:44     ` Michael Walle
2021-10-01 11:40       ` Tudor.Ambarus
2021-10-02 12:58         ` Michael Walle
2021-10-11  6:27         ` Pratyush Yadav
2021-07-27  4:51 ` [PATCH v2 10/35] mtd: spi-nor: sst: " Tudor Ambarus
2021-08-16 19:09   ` Pratyush Yadav
2021-10-01 11:43     ` Tudor.Ambarus
2021-10-01 12:19       ` Pratyush Yadav
2021-09-09 21:52   ` Michael Walle
2021-07-27  4:51 ` [PATCH v2 11/35] mtd: spi-nor: winbond: Use manufacturer late_init() for OTP ops Tudor Ambarus
2021-08-16 19:17   ` Pratyush Yadav
2021-09-09 21:50     ` Michael Walle
2021-10-01 11:58       ` Tudor.Ambarus
2021-10-01 11:54     ` Tudor.Ambarus
2021-10-11  6:54       ` Pratyush Yadav
2021-07-27  4:51 ` [PATCH v2 12/35] mtd: spi-nor: xilinx: Use manufacturer late_init() to set setup method Tudor Ambarus
2021-08-16 19:19   ` Pratyush Yadav
2021-09-09 21:53   ` Michael Walle
2021-07-27  4:52 ` [PATCH v2 13/35] mtd: spi-nor: sst: Use manufacturer late_init() to set _write() Tudor Ambarus
2021-08-16 19:20   ` Pratyush Yadav
2021-09-09 21:54   ` Michael Walle
2021-07-27  4:52 ` [PATCH v2 14/35] mtd: spi-nor: spansion: Use manufacturer late_init() Tudor Ambarus
2021-08-16 19:22   ` Pratyush Yadav
2021-09-09 22:02   ` Michael Walle
2021-10-01 12:14     ` Tudor.Ambarus
2021-10-02 13:14       ` Michael Walle
2021-07-27  4:52 ` [PATCH v2 15/35] mtd: spi-nor: core: Call spi_nor_post_sfdp_fixups() only when SFDP is defined Tudor Ambarus
2021-08-16 19:31   ` Pratyush Yadav
2021-10-01 12:31     ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 16/35] mtd: spi-nor: core: Mark default_init() as deprecated Tudor Ambarus
2021-08-16 19:36   ` Pratyush Yadav
2021-10-01 14:18     ` Tudor.Ambarus [this message]
2021-10-01 17:06       ` Pratyush Yadav
2021-07-27  4:52 ` [PATCH v2 17/35] mtd: spi-nor: Introduce spi_nor_nonsfdp_flags_init() Tudor Ambarus
2021-08-17 10:24   ` Pratyush Yadav
2021-08-17 12:15     ` Tudor.Ambarus
2021-10-22 11:21     ` Michael Walle
2021-10-22 12:10       ` Pratyush Yadav
2021-10-22 12:42         ` Tudor.Ambarus
2021-10-22 12:59           ` Michael Walle
2021-10-22 13:25             ` Tudor.Ambarus
2021-10-24 17:05               ` Michael Walle
2021-10-25 12:18                 ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 18/35] mtd: spi-nor: Get rid of SPI_NOR_4B_OPCODES flag Tudor Ambarus
2021-08-17 12:16   ` Pratyush Yadav
2021-10-04  3:18     ` Tudor.Ambarus
2021-10-19 17:26       ` Pratyush Yadav
2021-10-20  9:55         ` Tudor.Ambarus
2021-10-21  8:44           ` Tudor.Ambarus
2021-10-21  9:30             ` Pratyush Yadav
2021-10-22 11:37               ` Michael Walle
2021-10-22 12:43                 ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 19/35] mtd: spi-nor: Get rid of SPI_NOR_IO_MODE_EN_VOLATILE flag Tudor Ambarus
2021-08-17 12:21   ` Pratyush Yadav
2021-10-04  3:52     ` Tudor.Ambarus
2021-10-11  6:15       ` Pratyush Yadav
2021-07-27  4:52 ` [PATCH v2 20/35] mtd: spi-nor: core: Use container_of to get the pointer to struct spi_nor Tudor Ambarus
2021-07-27  7:08   ` Rasmus Villemoes
2021-10-22  8:00     ` Tudor.Ambarus
2021-08-17 12:23   ` Pratyush Yadav
2021-07-27  4:52 ` [PATCH v2 21/35] mtd: spi-nor: Introduce spi_nor_set_mtd_info() Tudor Ambarus
2021-08-16  7:25   ` Tudor.Ambarus
2021-08-17 16:23   ` Pratyush Yadav
2021-10-22 11:53   ` Michael Walle
2021-07-27  4:52 ` [PATCH v2 22/35] mtd: spi-nor: core: Use common naming scheme for setting mtd_info fields Tudor Ambarus
2021-08-17 16:26   ` Pratyush Yadav
2021-10-22 11:57   ` Michael Walle
2021-10-22 12:51     ` Tudor.Ambarus
2021-10-22 13:08       ` Michael Walle
2021-10-22 13:34         ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 23/35] mtd: spi-nor: Get rid of nor->page_size Tudor Ambarus
2021-08-17 16:33   ` Pratyush Yadav
2021-10-22 12:01   ` Michael Walle
2021-07-27  4:52 ` [PATCH v2 24/35] mtd: spi-nor: core: Fix spi_nor_flash_parameter otp description Tudor Ambarus
2021-08-17 16:47   ` Pratyush Yadav
2021-10-22 12:07   ` Michael Walle
2021-07-27  4:52 ` [PATCH v2 25/35] mtd: spi-nor: core: Move spi_nor_set_addr_width() in spi_nor_setup() Tudor Ambarus
2021-08-17 16:52   ` Pratyush Yadav
2021-10-22 12:12   ` Michael Walle
2021-10-22 12:36     ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 26/35] mtd: spi-nor: core: Introduce spi_nor_init_default_params() Tudor Ambarus
2021-08-24 17:30   ` Pratyush Yadav
2021-10-04  4:17     ` Tudor.Ambarus
2021-10-22 12:41       ` Michael Walle
2021-10-22 12:55         ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 27/35] mtd: spi-nor: core: Init flash params based on SFDP first for new flash additions Tudor Ambarus
2021-08-24 17:51   ` Pratyush Yadav
2021-10-04  5:01     ` Tudor.Ambarus
2021-10-04 11:36       ` Tudor.Ambarus
2021-07-27  4:52 ` [PATCH v2 28/35] mtd: spi-nor: sst: sst26vf064b: Use SPI_NOR_PARSE_SFDP Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 29/35] mtd: spi-nor: winbond: w25q256jvm: " Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 30/35] mtd: spi-nor: issi: is25lp256: " Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 31/35] mtd: spi-nor: spansion: s25fl256s0: Skip SFDP parsing Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 32/35] mtd: spi-nor: gigadevice: gd25q256: Use SPI_NOR_PARSE_SFDP Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 33/35] mtd: spi-nor: micron-st: n25q256a: " Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 34/35] mtd: spi-nor: macronix: mx25l25635e: " Tudor Ambarus
2021-07-27  4:52 ` [PATCH v2 35/35] docs: mtd: spi-nor: Add details about how to propose a new flash addition Tudor Ambarus
2021-07-27  7:22   ` Michael Walle
2021-07-27  8:09     ` Tudor.Ambarus
2021-07-27  8:49       ` Michael Walle
2021-08-24 17:58     ` 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=33dad358-b6f7-292b-2f02-7b5c9f9c8b2a@microchip.com \
    --to=tudor.ambarus@microchip.com \
    --cc=Nicolas.Ferre@microchip.com \
    --cc=code@reto-schneider.ch \
    --cc=esben@geanix.com \
    --cc=heiko.thiery@gmail.com \
    --cc=jaimeliao@mxic.com.tw \
    --cc=knaerzche@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=macromorgan@hotmail.com \
    --cc=mail@david-bauer.net \
    --cc=michael@walle.cc \
    --cc=miquel.raynal@bootlin.com \
    --cc=p.yadav@ti.com \
    --cc=richard@nod.at \
    --cc=sr@denx.de \
    --cc=vigneshr@ti.com \
    --cc=zhengxunli@mxic.com.tw \
    /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;
as well as URLs for NNTP newsgroup(s).