[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