All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Michael Walle <mwalle@kernel.org>
Cc: Tudor Ambarus <tudor.ambarus@linaro.org>,
	Pratyush Yadav <pratyush@kernel.org>,
	Michael Walle <michael@walle.cc>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org
Subject: Re: [PATCH 08/41] mtd: spi-nor: default .n_banks to 1
Date: Mon, 7 Aug 2023 15:51:17 +0200	[thread overview]
Message-ID: <20230807155117.704f4401@xps-13> (raw)
In-Reply-To: <20230807-mtd-flash-info-db-rework-v1-8-3d3d5bef4ba4@kernel.org>

Hi Michael,

mwalle@kernel.org wrote on Mon, 07 Aug 2023 15:21:02 +0200:

> If .n_banks is not set in the flash_info database, the default value
> should be 1. This way, we don't have to always set the .n_banks
> parameter in flash_info.
> 
> Signed-off-by: Michael Walle <mwalle@kernel.org>
> ---
>  drivers/mtd/spi-nor/core.c   | 3 +--
>  drivers/mtd/spi-nor/core.h   | 8 ++++----
>  drivers/mtd/spi-nor/xilinx.c | 1 -
>  3 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index ea94fb0da1e5..015152ba8973 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2016,7 +2016,6 @@ static const struct spi_nor_manufacturer *manufacturers[] = {
>  
>  static const struct flash_info spi_nor_generic_flash = {
>  	.name = "spi-nor-generic",
> -	.n_banks = 1,
>  	.parse_sfdp = true,
>  };
>  
> @@ -2996,7 +2995,7 @@ static void spi_nor_init_default_params(struct spi_nor *nor)
>  	params->size = info->size;
>  	params->bank_size = params->size;
>  	params->page_size = info->page_size ?: SPI_NOR_DEFAULT_PAGE_SIZE;
> -	params->n_banks = info->n_banks;
> +	params->n_banks = info->n_banks ?: SPI_NOR_DEFAULT_N_BANKS;

Same here, I'm not against ternary operators at all, but the 

	? /* nothing */ : <something>

form is strange.

>  
>  	if (!(info->flags & SPI_NOR_NO_FR)) {
>  		/* Default to Fast Read for DT and non-DT platform devices. */
> diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
> index fe1ce232a6c8..c90445e186c0 100644
> --- a/drivers/mtd/spi-nor/core.h
> +++ b/drivers/mtd/spi-nor/core.h
> @@ -15,6 +15,7 @@
>   * have the page size defined within their SFDP tables.
>   */
>  #define SPI_NOR_DEFAULT_PAGE_SIZE 256
> +#define SPI_NOR_DEFAULT_N_BANKS 1
>  
>  /* Standard SPI NOR flash operations. */
>  #define SPI_NOR_READID_OP(naddr, ndummy, buf, len)			\
> @@ -453,7 +454,7 @@ struct spi_nor_fixups {
>   * @size:           the size of the flash in bytes.
>   * @sector_size:    the size listed here is what works with SPINOR_OP_SE, which
>   *                  isn't necessarily called a "sector" by the vendor.
> - * @n_banks:        the number of banks.
> + * @n_banks:        (optional) the number of banks. Defaults to 1.
>   * @page_size:      (optional) the flash's page size. Defaults to 256.
>   * @addr_nbytes:    number of address bytes to send.
>   *
> @@ -570,7 +571,7 @@ struct flash_info {
>  /* Used when the "_ext_id" is two bytes at most */
>  #define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors)		\
>  	SPI_NOR_ID((_jedec_id), (_ext_id)),				\
> -	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 1),
> +	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 0),
>  
>  #define INFOB(_jedec_id, _ext_id, _sector_size, _n_sectors, _n_banks)	\
>  	SPI_NOR_ID((_jedec_id), (_ext_id)),				\
> @@ -578,13 +579,12 @@ struct flash_info {
>  
>  #define INFO6(_jedec_id, _ext_id, _sector_size, _n_sectors)		\
>  	SPI_NOR_ID6((_jedec_id), (_ext_id)),				\
> -	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 1),
> +	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 0),
>  
>  #define CAT25_INFO(_sector_size, _n_sectors, _page_size, _addr_nbytes)	\
>  		.size = (_sector_size) * (_n_sectors),			\
>  		.sector_size = (_sector_size),				\
>  		.page_size = (_page_size),				\
> -		.n_banks = 1,						\
>  		.addr_nbytes = (_addr_nbytes),				\
>  		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR,		\
>  
> diff --git a/drivers/mtd/spi-nor/xilinx.c b/drivers/mtd/spi-nor/xilinx.c
> index 284e2e4970ab..8d4539e32dfe 100644
> --- a/drivers/mtd/spi-nor/xilinx.c
> +++ b/drivers/mtd/spi-nor/xilinx.c
> @@ -26,7 +26,6 @@
>  		.size = 8 * (_page_size) * (_n_sectors),		\
>  		.sector_size = (8 * (_page_size)),			\
>  		.page_size = (_page_size),				\
> -		.n_banks = 1,						\
>  		.flags = SPI_NOR_NO_FR
>  
>  /* Xilinx S3AN share MFR with Atmel SPI NOR */
> 

But otherwise

Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>


Thanks,
Miquèl

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

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Michael Walle <mwalle@kernel.org>
Cc: Tudor Ambarus <tudor.ambarus@linaro.org>,
	Pratyush Yadav <pratyush@kernel.org>,
	Michael Walle <michael@walle.cc>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org
Subject: Re: [PATCH 08/41] mtd: spi-nor: default .n_banks to 1
Date: Mon, 7 Aug 2023 15:51:17 +0200	[thread overview]
Message-ID: <20230807155117.704f4401@xps-13> (raw)
In-Reply-To: <20230807-mtd-flash-info-db-rework-v1-8-3d3d5bef4ba4@kernel.org>

Hi Michael,

mwalle@kernel.org wrote on Mon, 07 Aug 2023 15:21:02 +0200:

> If .n_banks is not set in the flash_info database, the default value
> should be 1. This way, we don't have to always set the .n_banks
> parameter in flash_info.
> 
> Signed-off-by: Michael Walle <mwalle@kernel.org>
> ---
>  drivers/mtd/spi-nor/core.c   | 3 +--
>  drivers/mtd/spi-nor/core.h   | 8 ++++----
>  drivers/mtd/spi-nor/xilinx.c | 1 -
>  3 files changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index ea94fb0da1e5..015152ba8973 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2016,7 +2016,6 @@ static const struct spi_nor_manufacturer *manufacturers[] = {
>  
>  static const struct flash_info spi_nor_generic_flash = {
>  	.name = "spi-nor-generic",
> -	.n_banks = 1,
>  	.parse_sfdp = true,
>  };
>  
> @@ -2996,7 +2995,7 @@ static void spi_nor_init_default_params(struct spi_nor *nor)
>  	params->size = info->size;
>  	params->bank_size = params->size;
>  	params->page_size = info->page_size ?: SPI_NOR_DEFAULT_PAGE_SIZE;
> -	params->n_banks = info->n_banks;
> +	params->n_banks = info->n_banks ?: SPI_NOR_DEFAULT_N_BANKS;

Same here, I'm not against ternary operators at all, but the 

	? /* nothing */ : <something>

form is strange.

>  
>  	if (!(info->flags & SPI_NOR_NO_FR)) {
>  		/* Default to Fast Read for DT and non-DT platform devices. */
> diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
> index fe1ce232a6c8..c90445e186c0 100644
> --- a/drivers/mtd/spi-nor/core.h
> +++ b/drivers/mtd/spi-nor/core.h
> @@ -15,6 +15,7 @@
>   * have the page size defined within their SFDP tables.
>   */
>  #define SPI_NOR_DEFAULT_PAGE_SIZE 256
> +#define SPI_NOR_DEFAULT_N_BANKS 1
>  
>  /* Standard SPI NOR flash operations. */
>  #define SPI_NOR_READID_OP(naddr, ndummy, buf, len)			\
> @@ -453,7 +454,7 @@ struct spi_nor_fixups {
>   * @size:           the size of the flash in bytes.
>   * @sector_size:    the size listed here is what works with SPINOR_OP_SE, which
>   *                  isn't necessarily called a "sector" by the vendor.
> - * @n_banks:        the number of banks.
> + * @n_banks:        (optional) the number of banks. Defaults to 1.
>   * @page_size:      (optional) the flash's page size. Defaults to 256.
>   * @addr_nbytes:    number of address bytes to send.
>   *
> @@ -570,7 +571,7 @@ struct flash_info {
>  /* Used when the "_ext_id" is two bytes at most */
>  #define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors)		\
>  	SPI_NOR_ID((_jedec_id), (_ext_id)),				\
> -	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 1),
> +	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 0),
>  
>  #define INFOB(_jedec_id, _ext_id, _sector_size, _n_sectors, _n_banks)	\
>  	SPI_NOR_ID((_jedec_id), (_ext_id)),				\
> @@ -578,13 +579,12 @@ struct flash_info {
>  
>  #define INFO6(_jedec_id, _ext_id, _sector_size, _n_sectors)		\
>  	SPI_NOR_ID6((_jedec_id), (_ext_id)),				\
> -	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 1),
> +	SPI_NOR_GEOMETRY((_sector_size), (_n_sectors), 0),
>  
>  #define CAT25_INFO(_sector_size, _n_sectors, _page_size, _addr_nbytes)	\
>  		.size = (_sector_size) * (_n_sectors),			\
>  		.sector_size = (_sector_size),				\
>  		.page_size = (_page_size),				\
> -		.n_banks = 1,						\
>  		.addr_nbytes = (_addr_nbytes),				\
>  		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR,		\
>  
> diff --git a/drivers/mtd/spi-nor/xilinx.c b/drivers/mtd/spi-nor/xilinx.c
> index 284e2e4970ab..8d4539e32dfe 100644
> --- a/drivers/mtd/spi-nor/xilinx.c
> +++ b/drivers/mtd/spi-nor/xilinx.c
> @@ -26,7 +26,6 @@
>  		.size = 8 * (_page_size) * (_n_sectors),		\
>  		.sector_size = (8 * (_page_size)),			\
>  		.page_size = (_page_size),				\
> -		.n_banks = 1,						\
>  		.flags = SPI_NOR_NO_FR
>  
>  /* Xilinx S3AN share MFR with Atmel SPI NOR */
> 

But otherwise

Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>


Thanks,
Miquèl

  reply	other threads:[~2023-08-07 13:51 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-07 13:20 [PATCH 00/41] mtd: spi-nor: clean the flash_info database up Michael Walle
2023-08-07 13:20 ` Michael Walle
2023-08-07 13:20 ` [PATCH 01/41] mtd: spi-nor: remove catalyst 'flashes' Michael Walle
2023-08-07 13:20   ` Michael Walle
2023-08-08  7:21   ` kernel test robot
2023-08-08  7:21     ` kernel test robot
2023-08-08 18:34   ` kernel test robot
2023-08-08 18:34     ` kernel test robot
2023-08-07 13:20 ` [PATCH 02/41] mtd: spi-nor: remove Fujitsu MB85RS1MT support Michael Walle
2023-08-07 13:20   ` Michael Walle
2023-08-08  9:04   ` kernel test robot
2023-08-08  9:04     ` kernel test robot
2023-08-07 13:20 ` [PATCH 03/41] mtd: spi-nor: xilinx: use SPI_NOR_ID() in S3AN_INFO() Michael Walle
2023-08-07 13:20   ` Michael Walle
2023-08-07 13:20 ` [PATCH 04/41] mtd: spi-nor: xilinx: remove addr_nbytes from S3AN_INFO() Michael Walle
2023-08-07 13:20   ` Michael Walle
2023-08-07 13:20 ` [PATCH 05/41] mtd: spi-nor: convert .n_sectors to .size Michael Walle
2023-08-07 13:20   ` Michael Walle
2023-08-07 13:21 ` [PATCH 06/41] mtd: spi-nor: default page_size to 256 bytes Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:47   ` Miquel Raynal
2023-08-07 13:47     ` Miquel Raynal
2023-08-07 14:29     ` Michael Walle
2023-08-07 14:29       ` Michael Walle
2023-08-07 14:33       ` Miquel Raynal
2023-08-07 14:33         ` Miquel Raynal
2023-08-07 13:21 ` [PATCH 07/41] mtd: spi-nor: store .n_banks in struct spi_nor_flash_parameter Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:49   ` Miquel Raynal
2023-08-07 13:49     ` Miquel Raynal
2023-08-07 13:21 ` [PATCH 08/41] mtd: spi-nor: default .n_banks to 1 Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:51   ` Miquel Raynal [this message]
2023-08-07 13:51     ` Miquel Raynal
2023-08-07 13:21 ` [PATCH 09/41] mtd: spi-nor: push 4k SE handling into spi_nor_select_uniform_erase() Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 10/41] mtd: spi-nor: make sector_size optional Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 11/41] mtd: spi-nor: drop .parse_sfdp Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 12/41] mtd: spi-nor: introduce (temporary) INFO0() Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 13/41] mtd: spi-nor: move the .id and .id_len into an own structure Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 14/41] mtd: spi-nor: rename .otp_org to .otp and make it a pointer Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 15/41] mtd: spi-nor: add SNOR_ID() and SNOR_OTP() Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 16/41] mtd: spi-nor: remove or move flash_info comments Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 17/41] mtd: spi-nor: atmel: convert flash_info to new format Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 18/41] mtd: spi-nor: eon: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 19/41] mtd: spi-nor: esmt: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 20/41] mtd: spi-nor: everspin: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 21/41] mtd: spi-nor: gigadevice: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 22/41] mtd: spi-nor: intel: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 23/41] mtd: spi-nor: issi: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 24/41] mtd: spi-nor: macronix: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 25/41] mtd: spi-nor: micron-st: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 26/41] mtd: spi-nor: spansion: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 27/41] mtd: spi-nor: sst: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 28/41] mtd: spi-nor: winbond: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 29/41] mtd: spi-nor: xilinx: use new macros in S3AN_INFO() Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 30/41] mtd: spi-nor: xmc: convert flash_info to new format Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 31/41] mtd: spi-nor: atmel: sort flash_info database Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 32/41] mtd: spi-nor: eon: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 33/41] mtd: spi-nor: gigadevice: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 34/41] mtd: spi-nor: issi: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 35/41] mtd: spi-nor: macronix: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 36/41] mtd: spi-nor: micron-st: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 37/41] mtd: spi-nor: spansion: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 38/41] mtd: spi-nor: sst: " Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 39/41] mtd: spi-nor: winbond: sort flash_info entries Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 40/41] mtd: spi-nor: atmel: drop duplicate entry Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-07 13:21 ` [PATCH 41/41] mtd: spi-nor: core: get rid of the INFOx() macros Michael Walle
2023-08-07 13:21   ` Michael Walle
2023-08-08  9:21 ` [PATCH 00/41] mtd: spi-nor: clean the flash_info database up Tudor Ambarus
2023-08-08  9:21   ` Tudor Ambarus
2023-08-08  9:25   ` Michael Walle
2023-08-08  9:25     ` 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=20230807155117.704f4401@xps-13 \
    --to=miquel.raynal@bootlin.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=michael@walle.cc \
    --cc=mwalle@kernel.org \
    --cc=pratyush@kernel.org \
    --cc=richard@nod.at \
    --cc=tudor.ambarus@linaro.org \
    --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 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.