[PATCH v1 02/14] mtd: spi-nor: slightly refactor the spi_nor_setup()

Tudor.Ambarus at microchip.com Tudor.Ambarus at microchip.com
Wed Feb 9 19:00:37 PST 2022


On 2/2/22 16:58, Michael Walle wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Instead of always using a function pointer (and initializing it to our
> default), just call the default function if the flash didn't set its own
> one. That will make the call flow easier to follow.
> 
> Also mark the parameter as optional now.

what should be done in the future?

> 
> Signed-off-by: Michael Walle <michael at walle.cc>

Reviewed-by: Tudor Ambarus <tudor.ambarus at microchip.com>

> ---
>  drivers/mtd/spi-nor/core.c | 10 +++++-----
>  drivers/mtd/spi-nor/core.h |  8 ++++----
>  2 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index f05ece6018dc..c8cc906cf771 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2532,11 +2532,12 @@ static int spi_nor_setup(struct spi_nor *nor,
>  {
>         int ret;
> 
> -       if (nor->params->setup) {
> +       if (nor->params->setup)
>                 ret = nor->params->setup(nor, hwcaps);
> -               if (ret)
> -                       return ret;
> -       }
> +       else
> +               ret = spi_nor_default_setup(nor, hwcaps);
> +       if (ret)
> +               return ret;
> 
>         return spi_nor_set_addr_width(nor);
>  }
> @@ -2786,7 +2787,6 @@ static void spi_nor_init_default_params(struct spi_nor *nor)
> 
>         params->quad_enable = spi_nor_sr2_bit1_quad_enable;
>         params->set_4byte_addr_mode = spansion_set_4byte_addr_mode;
> -       params->setup = spi_nor_default_setup;
>         params->otp.org = &info->otp_org;
> 
>         /* Default to 16-bit Write Status (01h) Command */
> diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
> index c6578d3f598b..10f478547dc2 100644
> --- a/drivers/mtd/spi-nor/core.h
> +++ b/drivers/mtd/spi-nor/core.h
> @@ -257,10 +257,10 @@ struct spi_nor_otp {
>   * @convert_addr:      converts an absolute address into something the flash
>   *                      will understand. Particularly useful when pagesize is
>   *                      not a power-of-2.
> - * @setup:              configures the SPI NOR memory. Useful for SPI NOR
> - *                      flashes that have peculiarities to the SPI NOR standard
> - *                      e.g. different opcodes, specific address calculation,
> - *                      page size, etc.
> + * @setup:             (optional) configures the SPI NOR memory. Useful for
> + *                     SPI NOR flashes that have peculiarities to the SPI NOR
> + *                     standard e.g. different opcodes, specific address
> + *                     calculation, page size, etc.
>   * @locking_ops:       SPI NOR locking methods.
>   */
>  struct spi_nor_flash_parameter {
> --
> 2.30.2
> 



More information about the linux-mtd mailing list