From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Miquel Raynal <miquel.raynal@free-electrons.com>
Cc: Hanna Hawa <hannah@marvell.com>, Stefan Agner <stefan@agner.ch>,
Nadav Haklai <nadavh@marvell.com>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
linux-mtd@lists.infradead.org,
Gregory Clement <gregory.clement@free-electrons.com>,
devel@driverdev.osuosl.org,
Maxim Levitsky <maximlevitsky@gmail.com>,
Kamal Dasu <kdasu.kdev@gmail.com>,
Richard Weinberger <richard@nod.at>,
Marek Vasut <marek.vasut@gmail.com>, Chen-Yu Tsai <wens@csie.org>,
bcm-kernel-feedback-list@broadcom.com,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
Sylvain Lemieux <slemieux.tyco@gmail.com>,
Marc Gonzalez <marc_gonzalez@sigmadesigns.com>,
Vladimir Zapolskiy <vz@mleia.com>,
linux-mediatek@lists.infradead.org,
Matthias Brugger <matthias.bgg@gmail.com>,
Han Xu <han.xu@nxp.com>, Ofer Heifetz <oferh@marvell.com>,
linux-arm-kernel@lists.infradead.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.o>
Subject: Re: [PATCH 1/5] mtd: nand: use usual return values for the ->erase() hook
Date: Thu, 30 Nov 2017 21:51:13 +0100 [thread overview]
Message-ID: <20171130215113.458d616f@bbrezillon> (raw)
In-Reply-To: <20171130170132.27522-2-miquel.raynal@free-electrons.com>
On Thu, 30 Nov 2017 18:01:28 +0100
Miquel Raynal <miquel.raynal@free-electrons.com> wrote:
> Avoid using specific defined values for checking returned status of the
> ->erase() hook. Instead, use usual negative error values on failure,
> zero otherwise.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
> ---
> drivers/mtd/nand/denali.c | 2 +-
> drivers/mtd/nand/docg4.c | 7 ++++++-
> drivers/mtd/nand/nand_base.c | 2 +-
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
> index 34008a02ddb0..3e19861a46c6 100644
> --- a/drivers/mtd/nand/denali.c
> +++ b/drivers/mtd/nand/denali.c
> @@ -951,7 +951,7 @@ static int denali_erase(struct mtd_info *mtd, int page)
> irq_status = denali_wait_for_irq(denali,
> INTR__ERASE_COMP | INTR__ERASE_FAIL);
>
> - return irq_status & INTR__ERASE_COMP ? 0 : NAND_STATUS_FAIL;
> + return irq_status & INTR__ERASE_COMP ? 0 : -EIO;
> }
>
> static int denali_setup_data_interface(struct mtd_info *mtd, int chipnr,
> diff --git a/drivers/mtd/nand/docg4.c b/drivers/mtd/nand/docg4.c
> index 2436cbc71662..45c01b4b34c7 100644
> --- a/drivers/mtd/nand/docg4.c
> +++ b/drivers/mtd/nand/docg4.c
> @@ -900,6 +900,7 @@ static int docg4_erase_block(struct mtd_info *mtd, int page)
> struct docg4_priv *doc = nand_get_controller_data(nand);
> void __iomem *docptr = doc->virtadr;
> uint16_t g4_page;
> + int status;
>
> dev_dbg(doc->dev, "%s: page %04x\n", __func__, page);
>
> @@ -939,7 +940,11 @@ static int docg4_erase_block(struct mtd_info *mtd, int page)
> poll_status(doc);
> write_nop(docptr);
>
> - return nand->waitfunc(mtd, nand);
> + status = nand->waitfunc(mtd, nand);
> + if (status < 0)
> + return status;
> +
> + return status & NAND_STATUS_FAIL ? -EIO : 0;
> }
>
> static int write_page(struct mtd_info *mtd, struct nand_chip *nand,
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 630048f5abdc..4d1f2bda6095 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3077,7 +3077,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
> status = chip->erase(mtd, page & chip->pagemask);
>
> /* See if block erase succeeded */
> - if (status & NAND_STATUS_FAIL) {
> + if (status) {
> pr_debug("%s: failed erase, page 0x%08x\n",
> __func__, page);
> instr->state = MTD_ERASE_FAILED;
You forgot to patch single_erase() accordingly.
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Miquel Raynal <miquel.raynal@free-electrons.com>
Cc: Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>,
Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
linux-mtd@lists.infradead.org,
Wenyou Yang <wenyou.yang@atmel.com>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Alexandre Belloni <alexandre.belloni@free-electrons.com>,
Kamal Dasu <kdasu.kdev@gmail.com>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
Han Xu <han.xu@nxp.com>, Vladimir Zapolskiy <vz@mleia.com>,
Sylvain Lemieux <slemieux.tyco@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
Maxim Levitsky <maximlevitsky@gmail.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>,
Chen-Yu Tsai <wens@csie.org>,
Marc Gonzalez <marc_gonzalez@sigmadesigns.com>,
Stefan Agner <stefan@agner.ch>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Gregory Clement <gregory.clement@free-electrons.com>,
Antoine Tenart <antoine.tenart@free-electrons.com>,
Nadav Haklai <nadavh@marvell.com>,
Ofer Heifetz <oferh@marvell.com>, Hanna Hawa <hannah@marvell.com>,
linux-arm-kernel@lists.infradead.org,
bcm-kernel-feedback-list@broadcom.com,
linux-mediatek@lists.infradead.org, devel@driverdev.osuosl.org
Subject: Re: [PATCH 1/5] mtd: nand: use usual return values for the ->erase() hook
Date: Thu, 30 Nov 2017 21:51:13 +0100 [thread overview]
Message-ID: <20171130215113.458d616f@bbrezillon> (raw)
In-Reply-To: <20171130170132.27522-2-miquel.raynal@free-electrons.com>
On Thu, 30 Nov 2017 18:01:28 +0100
Miquel Raynal <miquel.raynal@free-electrons.com> wrote:
> Avoid using specific defined values for checking returned status of the
> ->erase() hook. Instead, use usual negative error values on failure,
> zero otherwise.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
> ---
> drivers/mtd/nand/denali.c | 2 +-
> drivers/mtd/nand/docg4.c | 7 ++++++-
> drivers/mtd/nand/nand_base.c | 2 +-
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
> index 34008a02ddb0..3e19861a46c6 100644
> --- a/drivers/mtd/nand/denali.c
> +++ b/drivers/mtd/nand/denali.c
> @@ -951,7 +951,7 @@ static int denali_erase(struct mtd_info *mtd, int page)
> irq_status = denali_wait_for_irq(denali,
> INTR__ERASE_COMP | INTR__ERASE_FAIL);
>
> - return irq_status & INTR__ERASE_COMP ? 0 : NAND_STATUS_FAIL;
> + return irq_status & INTR__ERASE_COMP ? 0 : -EIO;
> }
>
> static int denali_setup_data_interface(struct mtd_info *mtd, int chipnr,
> diff --git a/drivers/mtd/nand/docg4.c b/drivers/mtd/nand/docg4.c
> index 2436cbc71662..45c01b4b34c7 100644
> --- a/drivers/mtd/nand/docg4.c
> +++ b/drivers/mtd/nand/docg4.c
> @@ -900,6 +900,7 @@ static int docg4_erase_block(struct mtd_info *mtd, int page)
> struct docg4_priv *doc = nand_get_controller_data(nand);
> void __iomem *docptr = doc->virtadr;
> uint16_t g4_page;
> + int status;
>
> dev_dbg(doc->dev, "%s: page %04x\n", __func__, page);
>
> @@ -939,7 +940,11 @@ static int docg4_erase_block(struct mtd_info *mtd, int page)
> poll_status(doc);
> write_nop(docptr);
>
> - return nand->waitfunc(mtd, nand);
> + status = nand->waitfunc(mtd, nand);
> + if (status < 0)
> + return status;
> +
> + return status & NAND_STATUS_FAIL ? -EIO : 0;
> }
>
> static int write_page(struct mtd_info *mtd, struct nand_chip *nand,
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 630048f5abdc..4d1f2bda6095 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3077,7 +3077,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
> status = chip->erase(mtd, page & chip->pagemask);
>
> /* See if block erase succeeded */
> - if (status & NAND_STATUS_FAIL) {
> + if (status) {
> pr_debug("%s: failed erase, page 0x%08x\n",
> __func__, page);
> instr->state = MTD_ERASE_FAILED;
You forgot to patch single_erase() accordingly.
WARNING: multiple messages have this Message-ID (diff)
From: boris.brezillon@free-electrons.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/5] mtd: nand: use usual return values for the ->erase() hook
Date: Thu, 30 Nov 2017 21:51:13 +0100 [thread overview]
Message-ID: <20171130215113.458d616f@bbrezillon> (raw)
In-Reply-To: <20171130170132.27522-2-miquel.raynal@free-electrons.com>
On Thu, 30 Nov 2017 18:01:28 +0100
Miquel Raynal <miquel.raynal@free-electrons.com> wrote:
> Avoid using specific defined values for checking returned status of the
> ->erase() hook. Instead, use usual negative error values on failure,
> zero otherwise.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
> ---
> drivers/mtd/nand/denali.c | 2 +-
> drivers/mtd/nand/docg4.c | 7 ++++++-
> drivers/mtd/nand/nand_base.c | 2 +-
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
> index 34008a02ddb0..3e19861a46c6 100644
> --- a/drivers/mtd/nand/denali.c
> +++ b/drivers/mtd/nand/denali.c
> @@ -951,7 +951,7 @@ static int denali_erase(struct mtd_info *mtd, int page)
> irq_status = denali_wait_for_irq(denali,
> INTR__ERASE_COMP | INTR__ERASE_FAIL);
>
> - return irq_status & INTR__ERASE_COMP ? 0 : NAND_STATUS_FAIL;
> + return irq_status & INTR__ERASE_COMP ? 0 : -EIO;
> }
>
> static int denali_setup_data_interface(struct mtd_info *mtd, int chipnr,
> diff --git a/drivers/mtd/nand/docg4.c b/drivers/mtd/nand/docg4.c
> index 2436cbc71662..45c01b4b34c7 100644
> --- a/drivers/mtd/nand/docg4.c
> +++ b/drivers/mtd/nand/docg4.c
> @@ -900,6 +900,7 @@ static int docg4_erase_block(struct mtd_info *mtd, int page)
> struct docg4_priv *doc = nand_get_controller_data(nand);
> void __iomem *docptr = doc->virtadr;
> uint16_t g4_page;
> + int status;
>
> dev_dbg(doc->dev, "%s: page %04x\n", __func__, page);
>
> @@ -939,7 +940,11 @@ static int docg4_erase_block(struct mtd_info *mtd, int page)
> poll_status(doc);
> write_nop(docptr);
>
> - return nand->waitfunc(mtd, nand);
> + status = nand->waitfunc(mtd, nand);
> + if (status < 0)
> + return status;
> +
> + return status & NAND_STATUS_FAIL ? -EIO : 0;
> }
>
> static int write_page(struct mtd_info *mtd, struct nand_chip *nand,
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 630048f5abdc..4d1f2bda6095 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3077,7 +3077,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
> status = chip->erase(mtd, page & chip->pagemask);
>
> /* See if block erase succeeded */
> - if (status & NAND_STATUS_FAIL) {
> + if (status) {
> pr_debug("%s: failed erase, page 0x%08x\n",
> __func__, page);
> instr->state = MTD_ERASE_FAILED;
You forgot to patch single_erase() accordingly.
next prev parent reply other threads:[~2017-11-30 20:51 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-30 17:01 [PATCH 0/5] Introduce the new NAND core interface: ->exec_op() Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` [PATCH 1/5] mtd: nand: use usual return values for the ->erase() hook Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 20:51 ` Boris Brezillon [this message]
2017-11-30 20:51 ` Boris Brezillon
2017-11-30 20:51 ` Boris Brezillon
2017-11-30 22:02 ` Miquel RAYNAL
2017-11-30 22:02 ` Miquel RAYNAL
2017-11-30 22:02 ` Miquel RAYNAL
2017-12-01 2:12 ` Masahiro Yamada
2017-12-01 2:12 ` Masahiro Yamada
2017-12-01 2:12 ` Masahiro Yamada
2017-12-01 9:39 ` Boris Brezillon
2017-12-01 9:39 ` Boris Brezillon
2017-12-01 9:39 ` Boris Brezillon
2017-11-30 17:01 ` [PATCH 2/5] mtd: nand: provide several helpers to do common NAND operations Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-12-01 2:38 ` Masahiro Yamada
2017-12-01 2:38 ` Masahiro Yamada
2017-12-01 2:38 ` Masahiro Yamada
2017-11-30 17:01 ` [PATCH 3/5] mtd: nand: force drivers to explicitly send READ/PROG commands Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-12-01 2:39 ` Masahiro Yamada
2017-12-01 2:39 ` Masahiro Yamada
2017-12-01 2:39 ` Masahiro Yamada
2017-11-30 17:01 ` [PATCH 4/5] mtd: nand: use a static data_interface in the nand_chip structure Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-12-01 9:38 ` Boris Brezillon
2017-12-01 9:38 ` Boris Brezillon
2017-12-01 9:38 ` Boris Brezillon
2017-11-30 17:01 ` [PATCH 5/5] mtd: nand: add ->exec_op() implementation Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 17:01 ` Miquel Raynal
2017-11-30 20:50 ` Boris Brezillon
2017-11-30 20:50 ` Boris Brezillon
2017-11-30 20:50 ` Boris Brezillon
2017-11-30 22:25 ` Miquel RAYNAL
2017-11-30 22:25 ` Miquel RAYNAL
2017-11-30 22:25 ` Miquel RAYNAL
2017-12-01 9:50 ` Boris Brezillon
2017-12-01 9:50 ` Boris Brezillon
2017-12-01 9:50 ` Boris Brezillon
2017-12-01 9:57 ` Miquel RAYNAL
2017-12-01 9:57 ` Miquel RAYNAL
2017-12-01 9:57 ` Miquel RAYNAL
2017-12-01 11:07 ` Boris Brezillon
2017-12-01 11:07 ` Boris Brezillon
2017-12-01 11:07 ` Boris Brezillon
2017-12-01 9:37 ` [PATCH 0/5] Introduce the new NAND core interface: ->exec_op() Boris Brezillon
2017-12-01 9:37 ` Boris Brezillon
2017-12-01 9:37 ` Boris Brezillon
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=20171130215113.458d616f@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=devel@driverdev.osuosl.org \
--cc=ezequiel.garcia@free-electrons.com \
--cc=gregkh@linuxfoundation.o \
--cc=gregory.clement@free-electrons.com \
--cc=han.xu@nxp.com \
--cc=hannah@marvell.com \
--cc=kdasu.kdev@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marc_gonzalez@sigmadesigns.com \
--cc=marek.vasut@gmail.com \
--cc=matthias.bgg@gmail.com \
--cc=maximlevitsky@gmail.com \
--cc=miquel.raynal@free-electrons.com \
--cc=nadavh@marvell.com \
--cc=oferh@marvell.com \
--cc=richard@nod.at \
--cc=slemieux.tyco@gmail.com \
--cc=stefan@agner.ch \
--cc=vz@mleia.com \
--cc=wens@csie.org \
--cc=yamada.masahiro@socionext.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.