Re: [PATCH RFC] mtd: spinand: winbond: enable continuous read for W25N04LW
From: Miquel Raynal
Date: Tue Aug 25 2026 - 05:10:57 EST
Hi Dominique,
On 14/08/2026 at 08:15:58 GMT, Dominique Martinet <dominique.martinet@xxxxxxxxxxxxxxxxx> wrote:
> This enables continuous read for W25N04LW:
> - The ops are basically the same as cont_read_cache_dual_quad_dtr_variants
> without the speed limit (this chip has no HFREQ flag that would change
> the required delays) and without DTR ops (not supported)
> - w25n0xjw_set_cont_read() can be reused
>
> Unfortunately on my system (i.MX 8ULP LPSPI) the first time continuous
> read is used spinand_read_from_cache_op() falls into this if and
> disables continuous read, so this didn't go any further:
Ah, too bad :-)
> /*
> * Dirmap accesses are allowed to toggle the CS.
> * Toggling the CS during a continuous read is forbidden.
> */
> if (nbytes && req->continuous) {
> /*
> * Spi controller with broken support of continuous
> * reading was detected. Disable future use of
> * continuous reading and return -EAGAIN to retry
> * reading within regular mode.
> */
> spinand->cont_read_possible = false;
> return -EAGAIN;
> }
>
> I'm leaving this patch for anyone who could have hardware for this (or
> eventually myself after I have time to check the SPI driver...)
>
> Fun fact:
> nanddump -C is about 9% faster than nanddump on large data (tried 10MB)
> even if continuous read is not supported.
That is strange. Is this really reproducible? Can you disable CPU PM and
try again? There should be no impact if continuous read is disabled.
Thanks,
Miquèl