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 2/4] drivers: mtd: spi-nand: try a regular dirmap if creating a dirmap for continuous reading fails
Date: Wed, 06 Aug 2025 11:03:43 +0200	[thread overview]
Message-ID: <87cy98g6ts.fsf@bootlin.com> (raw)
In-Reply-To: <74646064-0c8c-46b9-8ec3-653c4f80b70f@iopsys.eu> (Mikhail Kshevetskiy's message of "Tue, 5 Aug 2025 18:35:32 +0300")

Hello,

>>> @@ -1114,11 +1114,32 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>>>  
>>>  	spinand->dirmaps[plane].wdesc = desc;
>>>  
>>> -	if (spinand->cont_read_possible)
>>> +	desc = NULL;
>>> +	if (spinand->cont_read_possible) {
>>> +		/*
>>> +		 * spi-controllers may return an error if info.length is
>>> +		 * too large
>>> +		 */
>>>  		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);
>>> +		info.op_tmpl = *spinand->op_templates.read_cache;
>>> +		desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
>>> +						  spinand->spimem, &info);
>>> +	}
>>> +
>>> +	if (IS_ERR_OR_NULL(desc)) {
>> Here if the problem is continuous reading, I expect an error and not a
>> NULL pointer.
> NULL is possible if flash does not supports continuous reading
>>
>>> +		/*
>>> +		 * continuous reading is not supported by flash or
>> Not by the flash, here if we get an error, it is the spi controller
>> (still without '-' ;) ) that fails (please fix the comment).
>
> we can go here in 2 cases:

Yes, and that is misleading. It feels like the code is unclear this
way. Could we find a better organization?

> 1) spinand->cont_read_possible is false (flash does not supports
> continuous reading)
>
> 2) spi controller returns an error (spi controller does not like
> continuous reading)

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 2/4] drivers: mtd: spi-nand: try a regular dirmap if creating a dirmap for continuous reading fails
Date: Wed, 06 Aug 2025 11:03:43 +0200	[thread overview]
Message-ID: <87cy98g6ts.fsf@bootlin.com> (raw)
In-Reply-To: <74646064-0c8c-46b9-8ec3-653c4f80b70f@iopsys.eu> (Mikhail Kshevetskiy's message of "Tue, 5 Aug 2025 18:35:32 +0300")

Hello,

>>> @@ -1114,11 +1114,32 @@ static int spinand_create_dirmap(struct spinand_device *spinand,
>>>  
>>>  	spinand->dirmaps[plane].wdesc = desc;
>>>  
>>> -	if (spinand->cont_read_possible)
>>> +	desc = NULL;
>>> +	if (spinand->cont_read_possible) {
>>> +		/*
>>> +		 * spi-controllers may return an error if info.length is
>>> +		 * too large
>>> +		 */
>>>  		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);
>>> +		info.op_tmpl = *spinand->op_templates.read_cache;
>>> +		desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
>>> +						  spinand->spimem, &info);
>>> +	}
>>> +
>>> +	if (IS_ERR_OR_NULL(desc)) {
>> Here if the problem is continuous reading, I expect an error and not a
>> NULL pointer.
> NULL is possible if flash does not supports continuous reading
>>
>>> +		/*
>>> +		 * continuous reading is not supported by flash or
>> Not by the flash, here if we get an error, it is the spi controller
>> (still without '-' ;) ) that fails (please fix the comment).
>
> we can go here in 2 cases:

Yes, and that is misleading. It feels like the code is unclear this
way. Could we find a better organization?

> 1) spinand->cont_read_possible is false (flash does not supports
> continuous reading)
>
> 2) spi controller returns an error (spi controller does not like
> continuous reading)

Thanks,
Miquèl

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

  reply	other threads:[~2025-08-06  9:15 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
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 [this message]
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=87cy98g6ts.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.