From: Pratyush Yadav <p.yadav@ti.com>
To: Tudor Ambarus <tudor.ambarus@microchip.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 27/35] mtd: spi-nor: core: Init flash params based on SFDP first for new flash additions
Date: Tue, 24 Aug 2021 23:21:40 +0530 [thread overview]
Message-ID: <20210824175138.vggtefa5xoomcjto@ti.com> (raw)
In-Reply-To: <20210727045222.905056-28-tudor.ambarus@microchip.com>
On 27/07/21 07:52AM, Tudor Ambarus wrote:
> Remove the spagetti way of initializing flash parameters and settings,
> at least for the new flash additions (for now). All flash entries should
> be converted to either use SPI_NOR_PARSE_SFDP or SPI_NOR_SKIP_SFDP.
> SPI_NOR_SKIP_SFDP should be set either when the SFDP tables are completely
> wrong and we can't parse relevant data, or when the SFDP tables are not
> defined at all, or when RDSFDP command is not supported by the flash.
> After all the flash entries will be converted to use these flags and after
> the default_init() hook will be removed, the
> spi_nor_init_params_deprecated() will be replaced by
> spi_nor_info_init_params(). The flash parameters and settings will be
> initialized either by parsing SFDP, or via the flash info flags.
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
> ---
> drivers/mtd/spi-nor/core.c | 103 +++++++++++++++++++++++++------------
> 1 file changed, 70 insertions(+), 33 deletions(-)
>
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index 9193317f897d..ef06a8d6abb8 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2627,28 +2627,6 @@ static void spi_nor_post_sfdp_fixups(struct spi_nor *nor)
> nor->info->fixups->post_sfdp(nor);
> }
>
> -/**
> - * spi_nor_sfdp_init_params() - Initialize the flash's parameters and settings
> - * based on JESD216 SFDP standard.
> - * @nor: pointer to a 'struct spi_nor'.
> - *
> - * The method has a roll-back mechanism: in case the SFDP parsing fails, the
> - * legacy flash parameters and settings will be restored.
> - */
> -static void spi_nor_sfdp_init_params(struct spi_nor *nor)
> -{
> - struct spi_nor_flash_parameter sfdp_params;
> -
> - memcpy(&sfdp_params, nor->params, sizeof(sfdp_params));
> -
> - if (!spi_nor_parse_sfdp(nor))
> - return spi_nor_post_sfdp_fixups(nor);
> -
> - memcpy(nor->params, &sfdp_params, sizeof(*nor->params));
> - nor->addr_width = 0;
> - nor->flags &= ~SNOR_F_4B_OPCODES;
> -}
> -
> /**
> * spi_nor_info_init_params() - Initialize the flash's parameters and settings
> * based on nor->info data.
> @@ -2722,6 +2700,39 @@ static void spi_nor_info_init_params(struct spi_nor *nor)
> spi_nor_init_uniform_erase_map(map, erase_mask, params->size);
> }
>
> +/**
> + * spi_nor_sfdp_init_params() - Initialize the flash's parameters and settings
> + * based on JESD216 SFDP standard.
> + * @nor: pointer to a 'struct spi_nor'.
Missing documentation for treat_id_collisions.
Also, I assume this will go away when we get rid of
spi_nor_init_params_deprecated(), correct?
> + *
> + * The method has a roll-back mechanism: in case the SFDP parsing fails, the
> + * legacy flash parameters and settings will be restored.
> + */
> +static void spi_nor_sfdp_init_params(struct spi_nor *nor,
> + bool treat_id_collisions)
> +{
> + struct spi_nor_flash_parameter sfdp_params;
> +
> + memcpy(&sfdp_params, nor->params, sizeof(sfdp_params));
> +
> + if (!spi_nor_parse_sfdp(nor))
> + return spi_nor_post_sfdp_fixups(nor);
> +
> + memcpy(nor->params, &sfdp_params, sizeof(*nor->params));
> + nor->addr_width = 0;
> + nor->flags &= ~SNOR_F_4B_OPCODES;
> +
> + if (!treat_id_collisions)
> + return;
No, this doesn't seem quite right. Why would you not want to treat ID
collisions for flashes that use spi_nor_init_params_deprecated()? What
makes this not possible for them?
Anyway, even if we don't want to treat ID collisions for those flashes,
we can't just return here. In the previous code, nor->params is already
initialized by spi_nor_info_init_params() so restoring that via memcpy()
would make sense since it would restore the info-initialized state. Now
it would be just 0, with no useful information in there. You are bound
to run into errors somewhere down the line.
So I think you either need to make this function return an error and
propagate it up the call chain or run spi_nor_info_init_params() for
both type of flashes to make sure we do our best effort to initialize
the flash.
> + /*
> + * Fallback to flash info params init in case the SFDP parsing fails.
> + * Used to handle ID collisions between flashes that define the SFDP
> + * tables and flashes that don't.
> + */
> + spi_nor_info_init_params(nor);
> + spi_nor_manufacturer_init_params(nor);
> +}
> +
> /**
> * spi_nor_late_init_params() - Late initialization of default flash parameters.
> * @nor: pointer to a 'struct spi_nor'
> @@ -2797,7 +2808,9 @@ static void spi_nor_nonsfdp_flags_init(struct spi_nor *nor)
> }
>
> /**
> - * spi_nor_init_params() - Initialize the flash's parameters and settings.
> + * spi_nor_init_params_deprecated() - Initialize the flash's parameters and
> + * settings. The function is deprecated, it will be removed and replaced with
> + * spi_nor_info_init_params().
> * @nor: pointer to a 'struct spi_nor'.
> *
> * The flash parameters and settings are initialized based on a sequence of
> @@ -2821,11 +2834,40 @@ static void spi_nor_nonsfdp_flags_init(struct spi_nor *nor)
> * Please note that there are ->post_{bfpt, sfdp}() fixup hooks that can
> * overwrite the flash parameters and settings immediately after table
> * parsing.
> + */
> +static void spi_nor_init_params_deprecated(struct spi_nor *nor)
> +{
> + spi_nor_info_init_params(nor);
> + spi_nor_manufacturer_init_params(nor);
> +
> + if ((nor->info->flags & (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> + SPI_NOR_OCTAL_READ | SPI_NOR_OCTAL_DTR_READ)) &&
> + !(nor->info->flags & SPI_NOR_SKIP_SFDP))
> + spi_nor_sfdp_init_params(nor, false);
> +}
> +
> +/**
> + * spi_nor_init_params() - Initialize the flash's parameters and settings.
> + * @nor: pointer to a 'struct spi_nor'.
> + *
> + * The flash parameters and settings are initialized based on a sequence of
> + * calls that are ordered by priority:
> + *
> + * 1/ Default flash parameters initialization. The initializations are done
> + * for all the flashes, regardless if the support SFDP or not.
> + * spi_nor_init_default_params()
> + * which can be overwritten by:
> *
> + * 2/ SFDP based or the deprecated way of initializing flash parameters.
> + * Ideally at this step the flash parameters init will be done either by
> + * parsing SFDP, where supported, or statically via flash_info flags.
> + * spi_nor_sfdp_init_params() or spi_nor_init_params_deprecated()
> * which can be overwritten by:
> - * 4/ Late flash parameters initialization, used to initialize flash
> + *
> + * 3/ Late flash parameters initialization, used to initialize flash
> * parameters that are not declared in the JESD216 SFDP standard.
> * spi_nor_late_init_params()
> + *
Not really related to this patch, but we need to document the return
value here as well.
> */
> static int spi_nor_init_params(struct spi_nor *nor)
> {
> @@ -2835,15 +2877,10 @@ static int spi_nor_init_params(struct spi_nor *nor)
>
> spi_nor_init_default_params(nor);
>
> - spi_nor_info_init_params(nor);
> -
> - spi_nor_manufacturer_init_params(nor);
> -
> - if ((nor->info->flags & (SPI_NOR_PARSE_SFDP |
> - SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> - SPI_NOR_OCTAL_READ | SPI_NOR_OCTAL_DTR_READ)) &&
> - !(nor->info->flags & SPI_NOR_SKIP_SFDP))
> - spi_nor_sfdp_init_params(nor);
> + if (nor->info->flags & SPI_NOR_PARSE_SFDP)
> + spi_nor_sfdp_init_params(nor, true);
> + else
> + spi_nor_init_params_deprecated(nor);
>
> spi_nor_late_init_params(nor);
>
> --
> 2.25.1
>
--
Regards,
Pratyush Yadav
Texas Instruments Inc.
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Pratyush Yadav <p.yadav@ti.com>
To: Tudor Ambarus <tudor.ambarus@microchip.com>
Cc: macromorgan@hotmail.com, vigneshr@ti.com, jaimeliao@mxic.com.tw,
richard@nod.at, esben@geanix.com, linux@rasmusvillemoes.dk,
knaerzche@gmail.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,
figgyc@figgyc.uk, mail@david-bauer.net, zhengxunli@mxic.com.tw
Subject: Re: [PATCH v2 27/35] mtd: spi-nor: core: Init flash params based on SFDP first for new flash additions
Date: Tue, 24 Aug 2021 23:21:40 +0530 [thread overview]
Message-ID: <20210824175138.vggtefa5xoomcjto@ti.com> (raw)
In-Reply-To: <20210727045222.905056-28-tudor.ambarus@microchip.com>
On 27/07/21 07:52AM, Tudor Ambarus wrote:
> Remove the spagetti way of initializing flash parameters and settings,
> at least for the new flash additions (for now). All flash entries should
> be converted to either use SPI_NOR_PARSE_SFDP or SPI_NOR_SKIP_SFDP.
> SPI_NOR_SKIP_SFDP should be set either when the SFDP tables are completely
> wrong and we can't parse relevant data, or when the SFDP tables are not
> defined at all, or when RDSFDP command is not supported by the flash.
> After all the flash entries will be converted to use these flags and after
> the default_init() hook will be removed, the
> spi_nor_init_params_deprecated() will be replaced by
> spi_nor_info_init_params(). The flash parameters and settings will be
> initialized either by parsing SFDP, or via the flash info flags.
>
> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
> ---
> drivers/mtd/spi-nor/core.c | 103 +++++++++++++++++++++++++------------
> 1 file changed, 70 insertions(+), 33 deletions(-)
>
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index 9193317f897d..ef06a8d6abb8 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2627,28 +2627,6 @@ static void spi_nor_post_sfdp_fixups(struct spi_nor *nor)
> nor->info->fixups->post_sfdp(nor);
> }
>
> -/**
> - * spi_nor_sfdp_init_params() - Initialize the flash's parameters and settings
> - * based on JESD216 SFDP standard.
> - * @nor: pointer to a 'struct spi_nor'.
> - *
> - * The method has a roll-back mechanism: in case the SFDP parsing fails, the
> - * legacy flash parameters and settings will be restored.
> - */
> -static void spi_nor_sfdp_init_params(struct spi_nor *nor)
> -{
> - struct spi_nor_flash_parameter sfdp_params;
> -
> - memcpy(&sfdp_params, nor->params, sizeof(sfdp_params));
> -
> - if (!spi_nor_parse_sfdp(nor))
> - return spi_nor_post_sfdp_fixups(nor);
> -
> - memcpy(nor->params, &sfdp_params, sizeof(*nor->params));
> - nor->addr_width = 0;
> - nor->flags &= ~SNOR_F_4B_OPCODES;
> -}
> -
> /**
> * spi_nor_info_init_params() - Initialize the flash's parameters and settings
> * based on nor->info data.
> @@ -2722,6 +2700,39 @@ static void spi_nor_info_init_params(struct spi_nor *nor)
> spi_nor_init_uniform_erase_map(map, erase_mask, params->size);
> }
>
> +/**
> + * spi_nor_sfdp_init_params() - Initialize the flash's parameters and settings
> + * based on JESD216 SFDP standard.
> + * @nor: pointer to a 'struct spi_nor'.
Missing documentation for treat_id_collisions.
Also, I assume this will go away when we get rid of
spi_nor_init_params_deprecated(), correct?
> + *
> + * The method has a roll-back mechanism: in case the SFDP parsing fails, the
> + * legacy flash parameters and settings will be restored.
> + */
> +static void spi_nor_sfdp_init_params(struct spi_nor *nor,
> + bool treat_id_collisions)
> +{
> + struct spi_nor_flash_parameter sfdp_params;
> +
> + memcpy(&sfdp_params, nor->params, sizeof(sfdp_params));
> +
> + if (!spi_nor_parse_sfdp(nor))
> + return spi_nor_post_sfdp_fixups(nor);
> +
> + memcpy(nor->params, &sfdp_params, sizeof(*nor->params));
> + nor->addr_width = 0;
> + nor->flags &= ~SNOR_F_4B_OPCODES;
> +
> + if (!treat_id_collisions)
> + return;
No, this doesn't seem quite right. Why would you not want to treat ID
collisions for flashes that use spi_nor_init_params_deprecated()? What
makes this not possible for them?
Anyway, even if we don't want to treat ID collisions for those flashes,
we can't just return here. In the previous code, nor->params is already
initialized by spi_nor_info_init_params() so restoring that via memcpy()
would make sense since it would restore the info-initialized state. Now
it would be just 0, with no useful information in there. You are bound
to run into errors somewhere down the line.
So I think you either need to make this function return an error and
propagate it up the call chain or run spi_nor_info_init_params() for
both type of flashes to make sure we do our best effort to initialize
the flash.
> + /*
> + * Fallback to flash info params init in case the SFDP parsing fails.
> + * Used to handle ID collisions between flashes that define the SFDP
> + * tables and flashes that don't.
> + */
> + spi_nor_info_init_params(nor);
> + spi_nor_manufacturer_init_params(nor);
> +}
> +
> /**
> * spi_nor_late_init_params() - Late initialization of default flash parameters.
> * @nor: pointer to a 'struct spi_nor'
> @@ -2797,7 +2808,9 @@ static void spi_nor_nonsfdp_flags_init(struct spi_nor *nor)
> }
>
> /**
> - * spi_nor_init_params() - Initialize the flash's parameters and settings.
> + * spi_nor_init_params_deprecated() - Initialize the flash's parameters and
> + * settings. The function is deprecated, it will be removed and replaced with
> + * spi_nor_info_init_params().
> * @nor: pointer to a 'struct spi_nor'.
> *
> * The flash parameters and settings are initialized based on a sequence of
> @@ -2821,11 +2834,40 @@ static void spi_nor_nonsfdp_flags_init(struct spi_nor *nor)
> * Please note that there are ->post_{bfpt, sfdp}() fixup hooks that can
> * overwrite the flash parameters and settings immediately after table
> * parsing.
> + */
> +static void spi_nor_init_params_deprecated(struct spi_nor *nor)
> +{
> + spi_nor_info_init_params(nor);
> + spi_nor_manufacturer_init_params(nor);
> +
> + if ((nor->info->flags & (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> + SPI_NOR_OCTAL_READ | SPI_NOR_OCTAL_DTR_READ)) &&
> + !(nor->info->flags & SPI_NOR_SKIP_SFDP))
> + spi_nor_sfdp_init_params(nor, false);
> +}
> +
> +/**
> + * spi_nor_init_params() - Initialize the flash's parameters and settings.
> + * @nor: pointer to a 'struct spi_nor'.
> + *
> + * The flash parameters and settings are initialized based on a sequence of
> + * calls that are ordered by priority:
> + *
> + * 1/ Default flash parameters initialization. The initializations are done
> + * for all the flashes, regardless if the support SFDP or not.
> + * spi_nor_init_default_params()
> + * which can be overwritten by:
> *
> + * 2/ SFDP based or the deprecated way of initializing flash parameters.
> + * Ideally at this step the flash parameters init will be done either by
> + * parsing SFDP, where supported, or statically via flash_info flags.
> + * spi_nor_sfdp_init_params() or spi_nor_init_params_deprecated()
> * which can be overwritten by:
> - * 4/ Late flash parameters initialization, used to initialize flash
> + *
> + * 3/ Late flash parameters initialization, used to initialize flash
> * parameters that are not declared in the JESD216 SFDP standard.
> * spi_nor_late_init_params()
> + *
Not really related to this patch, but we need to document the return
value here as well.
> */
> static int spi_nor_init_params(struct spi_nor *nor)
> {
> @@ -2835,15 +2877,10 @@ static int spi_nor_init_params(struct spi_nor *nor)
>
> spi_nor_init_default_params(nor);
>
> - spi_nor_info_init_params(nor);
> -
> - spi_nor_manufacturer_init_params(nor);
> -
> - if ((nor->info->flags & (SPI_NOR_PARSE_SFDP |
> - SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> - SPI_NOR_OCTAL_READ | SPI_NOR_OCTAL_DTR_READ)) &&
> - !(nor->info->flags & SPI_NOR_SKIP_SFDP))
> - spi_nor_sfdp_init_params(nor);
> + if (nor->info->flags & SPI_NOR_PARSE_SFDP)
> + spi_nor_sfdp_init_params(nor, true);
> + else
> + spi_nor_init_params_deprecated(nor);
>
> spi_nor_late_init_params(nor);
>
> --
> 2.25.1
>
--
Regards,
Pratyush Yadav
Texas Instruments Inc.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-08-24 17:53 UTC|newest]
Thread overview: 266+ 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 ` Tudor Ambarus
2021-07-27 4:51 ` [PATCH v2 01/35] mtd: spi-nor: core: Introduce SPI_NOR_PARSE_SFDP Tudor Ambarus
2021-07-27 4:51 ` Tudor Ambarus
2021-08-04 8:09 ` Pratyush Yadav
2021-08-04 8:09 ` Pratyush Yadav
2021-08-23 22:17 ` Michael Walle
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-07-27 4:51 ` Tudor Ambarus
2021-08-04 8:23 ` Pratyush Yadav
2021-08-04 8:23 ` Pratyush Yadav
2021-08-23 22:32 ` Michael Walle
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-07-27 4:51 ` Tudor Ambarus
2021-08-23 22:42 ` Michael Walle
2021-08-23 22:42 ` Michael Walle
2021-10-01 8:41 ` Tudor.Ambarus
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-07-27 4:51 ` Tudor Ambarus
2021-08-23 22:44 ` Michael Walle
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-07-27 4:51 ` Tudor Ambarus
2021-08-16 18:28 ` Pratyush Yadav
2021-08-16 18:28 ` Pratyush Yadav
2021-08-23 22:47 ` Michael Walle
2021-08-23 22:47 ` Michael Walle
2021-10-01 9:16 ` Tudor.Ambarus
2021-10-01 9:16 ` Tudor.Ambarus
2021-10-24 17:44 ` Michael Walle
2021-10-24 17:44 ` Michael Walle
2021-11-06 9:58 ` Tudor.Ambarus
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 4:51 ` Tudor Ambarus
2021-07-27 15:52 ` Chris Morgan
2021-07-27 15:52 ` Chris Morgan
2021-07-28 4:10 ` Tudor.Ambarus
2021-07-28 4:10 ` Tudor.Ambarus
2021-08-16 18:43 ` Pratyush Yadav
2021-08-16 18:43 ` Pratyush Yadav
2021-10-01 9:26 ` Tudor.Ambarus
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-07-27 4:51 ` Tudor Ambarus
2021-08-16 18:45 ` Pratyush Yadav
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-07-27 4:51 ` Tudor Ambarus
2021-08-16 18:54 ` Pratyush Yadav
2021-08-16 18:54 ` Pratyush Yadav
2021-09-09 21:40 ` Michael Walle
2021-09-09 21:40 ` Michael Walle
2021-10-01 9:44 ` Tudor.Ambarus
2021-10-01 9:44 ` Tudor.Ambarus
2021-10-01 9:38 ` 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-07-27 4:51 ` Tudor Ambarus
2021-08-16 19:06 ` Pratyush Yadav
2021-08-16 19:06 ` Pratyush Yadav
2021-09-09 21:44 ` Michael Walle
2021-09-09 21:44 ` Michael Walle
2021-10-01 11:40 ` Tudor.Ambarus
2021-10-01 11:40 ` Tudor.Ambarus
2021-10-02 12:58 ` Michael Walle
2021-10-02 12:58 ` Michael Walle
2021-10-11 6:27 ` Pratyush Yadav
2021-10-11 6:27 ` Pratyush Yadav
2021-07-27 4:51 ` [PATCH v2 10/35] mtd: spi-nor: sst: " Tudor Ambarus
2021-07-27 4:51 ` Tudor Ambarus
2021-08-16 19:09 ` Pratyush Yadav
2021-08-16 19:09 ` Pratyush Yadav
2021-10-01 11:43 ` Tudor.Ambarus
2021-10-01 11:43 ` Tudor.Ambarus
2021-10-01 12:19 ` Pratyush Yadav
2021-10-01 12:19 ` Pratyush Yadav
2021-09-09 21:52 ` Michael Walle
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-07-27 4:51 ` Tudor Ambarus
2021-08-16 19:17 ` Pratyush Yadav
2021-08-16 19:17 ` Pratyush Yadav
2021-09-09 21:50 ` Michael Walle
2021-09-09 21:50 ` Michael Walle
2021-10-01 11:58 ` Tudor.Ambarus
2021-10-01 11:58 ` Tudor.Ambarus
2021-10-01 11:54 ` Tudor.Ambarus
2021-10-01 11:54 ` Tudor.Ambarus
2021-10-11 6:54 ` Pratyush Yadav
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-07-27 4:51 ` Tudor Ambarus
2021-08-16 19:19 ` Pratyush Yadav
2021-08-16 19:19 ` Pratyush Yadav
2021-09-09 21:53 ` Michael Walle
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-07-27 4:52 ` Tudor Ambarus
2021-08-16 19:20 ` Pratyush Yadav
2021-08-16 19:20 ` Pratyush Yadav
2021-09-09 21:54 ` Michael Walle
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-07-27 4:52 ` Tudor Ambarus
2021-08-16 19:22 ` Pratyush Yadav
2021-08-16 19:22 ` Pratyush Yadav
2021-09-09 22:02 ` Michael Walle
2021-09-09 22:02 ` Michael Walle
2021-10-01 12:14 ` Tudor.Ambarus
2021-10-01 12:14 ` Tudor.Ambarus
2021-10-02 13:14 ` Michael Walle
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-07-27 4:52 ` Tudor Ambarus
2021-08-16 19:31 ` Pratyush Yadav
2021-08-16 19:31 ` Pratyush Yadav
2021-10-01 12:31 ` Tudor.Ambarus
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-07-27 4:52 ` Tudor Ambarus
2021-08-16 19:36 ` Pratyush Yadav
2021-08-16 19:36 ` Pratyush Yadav
2021-10-01 14:18 ` Tudor.Ambarus
2021-10-01 14:18 ` Tudor.Ambarus
2021-10-01 17:06 ` Pratyush Yadav
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 10:24 ` Pratyush Yadav
2021-08-17 10:24 ` Pratyush Yadav
2021-08-17 12:15 ` Tudor.Ambarus
2021-08-17 12:15 ` Tudor.Ambarus
2021-10-22 11:21 ` Michael Walle
2021-10-22 11:21 ` Michael Walle
2021-10-22 12:10 ` Pratyush Yadav
2021-10-22 12:10 ` Pratyush Yadav
2021-10-22 12:42 ` Tudor.Ambarus
2021-10-22 12:42 ` Tudor.Ambarus
2021-10-22 12:59 ` Michael Walle
2021-10-22 12:59 ` Michael Walle
2021-10-22 13:25 ` Tudor.Ambarus
2021-10-22 13:25 ` Tudor.Ambarus
2021-10-24 17:05 ` Michael Walle
2021-10-24 17:05 ` Michael Walle
2021-10-25 12:18 ` Tudor.Ambarus
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 12:16 ` Pratyush Yadav
2021-08-17 12:16 ` Pratyush Yadav
2021-10-04 3:18 ` Tudor.Ambarus
2021-10-04 3:18 ` Tudor.Ambarus
2021-10-19 17:26 ` Pratyush Yadav
2021-10-19 17:26 ` Pratyush Yadav
2021-10-20 9:55 ` Tudor.Ambarus
2021-10-20 9:55 ` Tudor.Ambarus
2021-10-21 8:44 ` Tudor.Ambarus
2021-10-21 8:44 ` Tudor.Ambarus
2021-10-21 9:30 ` Pratyush Yadav
2021-10-21 9:30 ` Pratyush Yadav
2021-10-22 11:37 ` Michael Walle
2021-10-22 11:37 ` Michael Walle
2021-10-22 12:43 ` Tudor.Ambarus
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 12:21 ` Pratyush Yadav
2021-08-17 12:21 ` Pratyush Yadav
2021-10-04 3:52 ` Tudor.Ambarus
2021-10-04 3:52 ` Tudor.Ambarus
2021-10-11 6:15 ` Pratyush Yadav
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 4:52 ` Tudor Ambarus
2021-07-27 7:08 ` Rasmus Villemoes
2021-07-27 7:08 ` Rasmus Villemoes
2021-10-22 8:00 ` Tudor.Ambarus
2021-10-22 8:00 ` Tudor.Ambarus
2021-08-17 12:23 ` Pratyush Yadav
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-07-27 4:52 ` Tudor Ambarus
2021-08-16 7:25 ` Tudor.Ambarus
2021-08-16 7:25 ` Tudor.Ambarus
2021-08-17 16:23 ` Pratyush Yadav
2021-08-17 16:23 ` Pratyush Yadav
2021-10-22 11:53 ` Michael Walle
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 16:26 ` Pratyush Yadav
2021-08-17 16:26 ` Pratyush Yadav
2021-10-22 11:57 ` Michael Walle
2021-10-22 11:57 ` Michael Walle
2021-10-22 12:51 ` Tudor.Ambarus
2021-10-22 12:51 ` Tudor.Ambarus
2021-10-22 13:08 ` Michael Walle
2021-10-22 13:08 ` Michael Walle
2021-10-22 13:34 ` Tudor.Ambarus
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 16:33 ` Pratyush Yadav
2021-08-17 16:33 ` Pratyush Yadav
2021-10-22 12:01 ` Michael Walle
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 16:47 ` Pratyush Yadav
2021-08-17 16:47 ` Pratyush Yadav
2021-10-22 12:07 ` Michael Walle
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-07-27 4:52 ` Tudor Ambarus
2021-08-17 16:52 ` Pratyush Yadav
2021-08-17 16:52 ` Pratyush Yadav
2021-10-22 12:12 ` Michael Walle
2021-10-22 12:12 ` Michael Walle
2021-10-22 12:36 ` Tudor.Ambarus
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-07-27 4:52 ` Tudor Ambarus
2021-08-24 17:30 ` Pratyush Yadav
2021-08-24 17:30 ` Pratyush Yadav
2021-10-04 4:17 ` Tudor.Ambarus
2021-10-04 4:17 ` Tudor.Ambarus
2021-10-22 12:41 ` Michael Walle
2021-10-22 12:41 ` Michael Walle
2021-10-22 12:55 ` Tudor.Ambarus
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-07-27 4:52 ` Tudor Ambarus
2021-08-24 17:51 ` Pratyush Yadav [this message]
2021-08-24 17:51 ` Pratyush Yadav
2021-10-04 5:01 ` Tudor.Ambarus
2021-10-04 5:01 ` Tudor.Ambarus
2021-10-04 11:36 ` 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 ` Tudor Ambarus
2021-07-27 4:52 ` [PATCH v2 29/35] mtd: spi-nor: winbond: w25q256jvm: " Tudor Ambarus
2021-07-27 4:52 ` Tudor Ambarus
2021-07-27 4:52 ` [PATCH v2 30/35] mtd: spi-nor: issi: is25lp256: " Tudor Ambarus
2021-07-27 4:52 ` 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 ` 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 ` Tudor Ambarus
2021-07-27 4:52 ` [PATCH v2 33/35] mtd: spi-nor: micron-st: n25q256a: " Tudor Ambarus
2021-07-27 4:52 ` Tudor Ambarus
2021-07-27 4:52 ` [PATCH v2 34/35] mtd: spi-nor: macronix: mx25l25635e: " Tudor Ambarus
2021-07-27 4:52 ` 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 4:52 ` Tudor Ambarus
2021-07-27 7:22 ` Michael Walle
2021-07-27 7:22 ` Michael Walle
2021-07-27 8:09 ` Tudor.Ambarus
2021-07-27 8:09 ` Tudor.Ambarus
2021-07-27 8:49 ` Michael Walle
2021-07-27 8:49 ` Michael Walle
2021-08-24 17:58 ` Pratyush Yadav
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=20210824175138.vggtefa5xoomcjto@ti.com \
--to=p.yadav@ti.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=nicolas.ferre@microchip.com \
--cc=richard@nod.at \
--cc=sr@denx.de \
--cc=tudor.ambarus@microchip.com \
--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 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.