All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Cc: Richard Weinberger <richard@nod.at>,
	 Vignesh Raghavendra <vigneshr@ti.com>,
	 Lorenzo Bianconi <lorenzo@kernel.org>,
	 Ray Liu <ray.liu@airoha.com>,  Mark Brown <broonie@kernel.org>,
	 Tudor Ambarus <tudor.ambarus@linaro.org>,
	 Martin Kurbanov <mmkurbanov@salutedevices.com>,
	 Takahiro Kuwano <Takahiro.Kuwano@infineon.com>,
	 Cheng Ming Lin <chengminglin@mxic.com.tw>,
	 linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org
Subject: Re: [PATCH 1/4] drivers: mtd: spi-nand: fix direct mapping creation sizes.
Date: Tue, 05 Aug 2025 17:24:50 +0200	[thread overview]
Message-ID: <87sei5hjul.fsf@bootlin.com> (raw)
In-Reply-To: <20250804192132.1406387-2-mikhail.kshevetskiy@iopsys.eu> (Mikhail Kshevetskiy's message of "Mon, 4 Aug 2025 22:21:29 +0300")

Hello Mikhail,

Thanks a lot for this series!

On 04/08/2025 at 22:21:29 +03, Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu> wrote:

> Continuous mode is only supported for non-raw data reads, thus raw I/O
> or non-raw writing requires only single flash page mapping.
>
> Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
> ---
>  drivers/mtd/nand/spi/core.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
> index b0898990b2a5..b42c42ec58a4 100644
> --- a/drivers/mtd/nand/spi/core.c
> +++ b/drivers/mtd/nand/spi/core.c
> @@ -1103,9 +1103,6 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>  	};
>  	struct spi_mem_dirmap_desc *desc;
>  
> -	if (spinand->cont_read_possible)
> -		info.length = nanddev_eraseblock_size(nand);
> -
>  	/* The plane number is passed in MSB just above the column address */
>  	info.offset = plane << fls(nand->memorg.pagesize);
>  
> @@ -1117,6 +1114,8 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>  
>  	spinand->dirmaps[plane].wdesc = desc;
>  
> +	if (spinand->cont_read_possible)
> +		info.length = nanddev_eraseblock_size(nand);
>  	info.op_tmpl = *spinand->op_templates.read_cache;
>  	desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
>  					  spinand->spimem, &info);
> @@ -1132,6 +1131,9 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>  		return 0;
>  	}
>  
> +	// ECC reading/writing always happen in non-continuous mode

This comment does not sound helpful, at least I do not understand it?
(and the comment style should be /* */)

> +	info.length = nanddev_page_size(nand) + nanddev_per_page_oobsize(nand);
> +
>  	info.op_tmpl = *spinand->op_templates.update_cache;
>  	info.op_tmpl.data.ecc = true;
>  	desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,

May I suggest to use two different dirmap infos? One with a large size
(for reads) and a page-sized one for other cases (including the fallback
you're introducing in PATCH 2).

Thanks,
Miquèl


WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Cc: Richard Weinberger <richard@nod.at>,
	 Vignesh Raghavendra <vigneshr@ti.com>,
	 Lorenzo Bianconi <lorenzo@kernel.org>,
	 Ray Liu <ray.liu@airoha.com>,  Mark Brown <broonie@kernel.org>,
	 Tudor Ambarus <tudor.ambarus@linaro.org>,
	 Martin Kurbanov <mmkurbanov@salutedevices.com>,
	 Takahiro Kuwano <Takahiro.Kuwano@infineon.com>,
	 Cheng Ming Lin <chengminglin@mxic.com.tw>,
	 linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org, linux-spi@vger.kernel.org
Subject: Re: [PATCH 1/4] drivers: mtd: spi-nand: fix direct mapping creation sizes.
Date: Tue, 05 Aug 2025 17:24:50 +0200	[thread overview]
Message-ID: <87sei5hjul.fsf@bootlin.com> (raw)
In-Reply-To: <20250804192132.1406387-2-mikhail.kshevetskiy@iopsys.eu> (Mikhail Kshevetskiy's message of "Mon, 4 Aug 2025 22:21:29 +0300")

Hello Mikhail,

Thanks a lot for this series!

On 04/08/2025 at 22:21:29 +03, Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu> wrote:

> Continuous mode is only supported for non-raw data reads, thus raw I/O
> or non-raw writing requires only single flash page mapping.
>
> Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
> ---
>  drivers/mtd/nand/spi/core.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
> index b0898990b2a5..b42c42ec58a4 100644
> --- a/drivers/mtd/nand/spi/core.c
> +++ b/drivers/mtd/nand/spi/core.c
> @@ -1103,9 +1103,6 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>  	};
>  	struct spi_mem_dirmap_desc *desc;
>  
> -	if (spinand->cont_read_possible)
> -		info.length = nanddev_eraseblock_size(nand);
> -
>  	/* The plane number is passed in MSB just above the column address */
>  	info.offset = plane << fls(nand->memorg.pagesize);
>  
> @@ -1117,6 +1114,8 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>  
>  	spinand->dirmaps[plane].wdesc = desc;
>  
> +	if (spinand->cont_read_possible)
> +		info.length = nanddev_eraseblock_size(nand);
>  	info.op_tmpl = *spinand->op_templates.read_cache;
>  	desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
>  					  spinand->spimem, &info);
> @@ -1132,6 +1131,9 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>  		return 0;
>  	}
>  
> +	// ECC reading/writing always happen in non-continuous mode

This comment does not sound helpful, at least I do not understand it?
(and the comment style should be /* */)

> +	info.length = nanddev_page_size(nand) + nanddev_per_page_oobsize(nand);
> +
>  	info.op_tmpl = *spinand->op_templates.update_cache;
>  	info.op_tmpl.data.ecc = true;
>  	desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,

May I suggest to use two different dirmap infos? One with a large size
(for reads) and a page-sized one for other cases (including the fallback
you're introducing in PATCH 2).

Thanks,
Miquèl

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

  reply	other threads:[~2025-08-05 16:30 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-04 19:21 [PATCH 0/4] drivers: mtd: spi-nand: fix continuous reading mode Mikhail Kshevetskiy
2025-08-04 19:21 ` Mikhail Kshevetskiy
2025-08-04 19:21 ` [PATCH 1/4] drivers: mtd: spi-nand: fix direct mapping creation sizes Mikhail Kshevetskiy
2025-08-04 19:21   ` Mikhail Kshevetskiy
2025-08-05 15:24   ` Miquel Raynal [this message]
2025-08-05 15:24     ` Miquel Raynal
2025-08-04 19:21 ` [PATCH 2/4] drivers: mtd: spi-nand: try a regular dirmap if creating a dirmap for continuous reading fails Mikhail Kshevetskiy
2025-08-04 19:21   ` Mikhail Kshevetskiy
2025-08-05 15:30   ` Miquel Raynal
2025-08-05 15:30     ` Miquel Raynal
2025-08-05 15:35     ` Mikhail Kshevetskiy
2025-08-05 15:35       ` Mikhail Kshevetskiy
2025-08-06  9:03       ` Miquel Raynal
2025-08-06  9:03         ` Miquel Raynal
2025-08-08 21:01         ` [PATCH v2 0/4] mtd: spinand: fix continuous reading mode support Mikhail Kshevetskiy
2025-08-08 21:01           ` Mikhail Kshevetskiy
2025-08-08 21:01           ` [PATCH v2 1/4] mtd: spinand: fix direct mapping creation sizes Mikhail Kshevetskiy
2025-08-08 21:01             ` Mikhail Kshevetskiy
2025-08-08 21:01           ` [PATCH v2 2/4] mtd: spinand: try a regular dirmap if creating a dirmap for continuous reading fails Mikhail Kshevetskiy
2025-08-08 21:01             ` Mikhail Kshevetskiy
2025-08-08 21:01           ` [PATCH v2 3/4] mtd: spinand: repeat reading in regular mode if " Mikhail Kshevetskiy
2025-08-08 21:01             ` Mikhail Kshevetskiy
2025-08-08 21:01           ` [PATCH v2 4/4] spi: spi-airoha-snfi: return an error for continuous mode dirmap creation cases Mikhail Kshevetskiy
2025-08-08 21:01             ` Mikhail Kshevetskiy
2025-08-04 19:21 ` [PATCH 3/4] drivers: mtd: spi-nand: repeat reading in regular mode if continuous reading fails Mikhail Kshevetskiy
2025-08-04 19:21   ` Mikhail Kshevetskiy
2025-08-05 15:36   ` Miquel Raynal
2025-08-05 15:36     ` Miquel Raynal
2025-08-18 12:05     ` Mikhail Kshevetskiy
2025-08-18 12:05       ` Mikhail Kshevetskiy
2025-08-04 19:21 ` [PATCH 4/4] drivers: spi: spi-airoha-snfi: return an error for continuous mode dirmap creation cases Mikhail Kshevetskiy
2025-08-04 19:21   ` Mikhail Kshevetskiy

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=87sei5hjul.fsf@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=Takahiro.Kuwano@infineon.com \
    --cc=broonie@kernel.org \
    --cc=chengminglin@mxic.com.tw \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=lorenzo@kernel.org \
    --cc=mikhail.kshevetskiy@iopsys.eu \
    --cc=mmkurbanov@salutedevices.com \
    --cc=ray.liu@airoha.com \
    --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.