[PATCH] mtd: nand: Support 'EXIT GET STATUS' command in nand_command_lp()

Boris Brezillon boris.brezillon at free-electrons.com
Mon May 29 11:50:37 PDT 2017


On Tue, 16 May 2017 18:35:45 +0200
Boris Brezillon <boris.brezillon at free-electrons.com> wrote:

> READ0 is sometimes used to exit GET STATUS mode. When this is the case
> no address cycles are requested, and we can use this information to
> detect that READSTART should not be issued after READ0 or that we
> shouldn't wait for the chip to be ready.
> 

Applied to nand/next.

> Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
> ---
>  drivers/mtd/nand/nand_base.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 08ff98c47e1f..fe87bd3513fa 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -753,6 +753,16 @@ static void nand_command(struct mtd_info *mtd, unsigned int command,
>  		return;
>  
>  		/* This applies to read commands */
> +	case NAND_CMD_READ0:
> +		/*
> +		 * READ0 is sometimes used to exit GET STATUS mode. When this
> +		 * is the case no address cycles are requested, and we can use
> +		 * this information to detect that we should not wait for the
> +		 * device to be ready.
> +		 */
> +		if (column == -1 && page_addr == -1)
> +			return;
> +
>  	default:
>  		/*
>  		 * If we don't have access to the busy pin, we apply the given
> @@ -887,6 +897,15 @@ static void nand_command_lp(struct mtd_info *mtd, unsigned int command,
>  		return;
>  
>  	case NAND_CMD_READ0:
> +		/*
> +		 * READ0 is sometimes used to exit GET STATUS mode. When this
> +		 * is the case no address cycles are requested, and we can use
> +		 * this information to detect that READSTART should not be
> +		 * issued.
> +		 */
> +		if (column == -1 && page_addr == -1)
> +			return;
> +
>  		chip->cmd_ctrl(mtd, NAND_CMD_READSTART,
>  			       NAND_NCE | NAND_CLE | NAND_CTRL_CHANGE);
>  		chip->cmd_ctrl(mtd, NAND_CMD_NONE,




More information about the linux-mtd mailing list