Hi Leo,

liangyany...@gmail.com wrote on Wed,  2 Nov 2022 14:14:30 +0800:

> This patch bypasses the limitation of length for read operations
> in MTD test module. Thus, the total length of a read operation
> can be passed down to the continuous read operation in SPI NAND
> layer.
> 
> Signed-off-by: Leo Yu <liangyany...@gmail.com>
> ---
>  cmd/mtd.c               | 2 ++
>  include/linux/mtd/mtd.h | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/cmd/mtd.c b/cmd/mtd.c
> index ad5cc9827d..0b601e08a3 100644
> --- a/cmd/mtd.c
> +++ b/cmd/mtd.c
> @@ -335,6 +335,8 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int 
> argc,
>       io_op.ooblen = woob ? mtd->oobsize : 0;
>       io_op.datbuf = buf;
>       io_op.oobbuf = woob ? &buf[len] : NULL;
> +     /* Total length of this read operation passed by user */
> +     io_op.totallen = len;

Where is this used?

> 
>       /* Search for the first good block after the given offset */
>       off = start_off;
> diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
> index ff635bd716..df8a231c82 100644
> --- a/include/linux/mtd/mtd.h
> +++ b/include/linux/mtd/mtd.h
> @@ -79,6 +79,7 @@ struct mtd_erase_region_info {
>   *           mode = MTD_OPS_PLACE_OOB or MTD_OPS_RAW)
>   * @datbuf:  data buffer - if NULL only oob data are read/written
>   * @oobbuf:  oob data buffer
> + * @totallen:   total number of data bytes to read in one read operation 
> (for continuous read mode)
>   */
>  struct mtd_oob_ops {
>       unsigned int    mode;
> @@ -89,6 +90,7 @@ struct mtd_oob_ops {
>       uint32_t        ooboffs;
>       uint8_t         *datbuf;
>       uint8_t         *oobbuf;
> +     size_t          totallen;
>  };
> 
>  #ifdef CONFIG_SYS_NAND_MAX_OOBFREE
> --
> 2.17.1
> 


Thanks,
Miquèl

Reply via email to