From: Boris Brezillon <bbrezillon@kernel.org>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Marek Vasut <marek.vasut@gmail.com>,
Richard Weinberger <richard@nod.at>,
linux-kernel@vger.kernel.org,
Boris Brezillon <boris.brezillon@bootlin.com>,
linux-mtd@lists.infradead.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Brian Norris <computersforpeace@gmail.com>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH v2] mtd: rawnand: remove ->legacy.erase and single_erase()
Date: Mon, 21 Jan 2019 09:13:04 +0100 [thread overview]
Message-ID: <20190121091304.63673375@bbrezillon> (raw)
In-Reply-To: <1548052327-26483-1-git-send-email-yamada.masahiro@socionext.com>
On Mon, 21 Jan 2019 15:32:07 +0900
Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> Now that the last user of this hook, denali.c, stopped using it,
> we can remove the erase hook from nand_legacy.
>
> I squashed single_erase() because only the difference between
> single_erase() and nand_erase_op() is the number of bit shifts.
>
> The status/ret conversion in nand_erase_nand() is unneeded since
> commit eb94555e9e97 ("mtd: nand: use usual return values for the
> ->erase() hook"). Cleaned it up now.
Yeah! One less field in nand_legacy :-).
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Boris Brezillon <bbrezillon@kernel.org>
> ---
>
> This depends on the denali patch:
> http://patchwork.ozlabs.org/patch/1028264/
>
>
> Changes in v2:
> - I noticed the masking by chip->pagemask is still needed
>
> drivers/mtd/nand/raw/nand_base.c | 31 ++++---------------------------
> include/linux/mtd/rawnand.h | 2 --
> 2 files changed, 4 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> index cca4b24..7ea3f10 100644
> --- a/drivers/mtd/nand/raw/nand_base.c
> +++ b/drivers/mtd/nand/raw/nand_base.c
> @@ -4155,23 +4155,6 @@ static int nand_write_oob(struct mtd_info *mtd, loff_t to,
> }
>
> /**
> - * single_erase - [GENERIC] NAND standard block erase command function
> - * @chip: NAND chip object
> - * @page: the page address of the block which will be erased
> - *
> - * Standard erase command for NAND chips. Returns NAND status.
> - */
> -static int single_erase(struct nand_chip *chip, int page)
> -{
> - unsigned int eraseblock;
> -
> - /* Send commands to erase a block */
> - eraseblock = page >> (chip->phys_erase_shift - chip->page_shift);
> -
> - return nand_erase_op(chip, eraseblock);
> -}
> -
> -/**
> * nand_erase - [MTD Interface] erase block(s)
> * @mtd: MTD device structure
> * @instr: erase instruction
> @@ -4194,7 +4177,7 @@ static int nand_erase(struct mtd_info *mtd, struct erase_info *instr)
> int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
> int allowbbt)
> {
> - int page, status, pages_per_block, ret, chipnr;
> + int page, pages_per_block, ret, chipnr;
> loff_t len;
>
> pr_debug("%s: start = 0x%012llx, len = %llu\n",
> @@ -4246,17 +4229,11 @@ int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
> (page + pages_per_block))
> chip->pagebuf = -1;
>
> - if (chip->legacy.erase)
> - status = chip->legacy.erase(chip,
> - page & chip->pagemask);
> - else
> - status = single_erase(chip, page & chip->pagemask);
> -
> - /* See if block erase succeeded */
> - if (status) {
> + ret = nand_erase_op(chip, (page & chip->pagemask) >>
> + (chip->phys_erase_shift - chip->page_shift));
> + if (ret) {
> pr_debug("%s: failed erase, page 0x%08x\n",
> __func__, page);
> - ret = -EIO;
> instr->fail_addr =
> ((loff_t)page << chip->page_shift);
> goto erase_exit;
> diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
> index 33e240a..5e37534 100644
> --- a/include/linux/mtd/rawnand.h
> +++ b/include/linux/mtd/rawnand.h
> @@ -936,7 +936,6 @@ static inline void nand_controller_init(struct nand_controller *nfc)
> * @waitfunc: hardware specific function for wait on ready.
> * @block_bad: check if a block is bad, using OOB markers
> * @block_markbad: mark a block bad
> - * @erase: erase function
> * @set_features: set the NAND chip features
> * @get_features: get the NAND chip features
> * @chip_delay: chip dependent delay for transferring data from array to read
> @@ -962,7 +961,6 @@ struct nand_legacy {
> int (*waitfunc)(struct nand_chip *chip);
> int (*block_bad)(struct nand_chip *chip, loff_t ofs);
> int (*block_markbad)(struct nand_chip *chip, loff_t ofs);
> - int (*erase)(struct nand_chip *chip, int page);
> int (*set_features)(struct nand_chip *chip, int feature_addr,
> u8 *subfeature_para);
> int (*get_features)(struct nand_chip *chip, int feature_addr,
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <bbrezillon@kernel.org>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: linux-mtd@lists.infradead.org,
Boris Brezillon <boris.brezillon@bootlin.com>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Marek Vasut <marek.vasut@gmail.com>,
Richard Weinberger <richard@nod.at>,
linux-kernel@vger.kernel.org,
Brian Norris <computersforpeace@gmail.com>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH v2] mtd: rawnand: remove ->legacy.erase and single_erase()
Date: Mon, 21 Jan 2019 09:13:04 +0100 [thread overview]
Message-ID: <20190121091304.63673375@bbrezillon> (raw)
In-Reply-To: <1548052327-26483-1-git-send-email-yamada.masahiro@socionext.com>
On Mon, 21 Jan 2019 15:32:07 +0900
Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> Now that the last user of this hook, denali.c, stopped using it,
> we can remove the erase hook from nand_legacy.
>
> I squashed single_erase() because only the difference between
> single_erase() and nand_erase_op() is the number of bit shifts.
>
> The status/ret conversion in nand_erase_nand() is unneeded since
> commit eb94555e9e97 ("mtd: nand: use usual return values for the
> ->erase() hook"). Cleaned it up now.
Yeah! One less field in nand_legacy :-).
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Boris Brezillon <bbrezillon@kernel.org>
> ---
>
> This depends on the denali patch:
> http://patchwork.ozlabs.org/patch/1028264/
>
>
> Changes in v2:
> - I noticed the masking by chip->pagemask is still needed
>
> drivers/mtd/nand/raw/nand_base.c | 31 ++++---------------------------
> include/linux/mtd/rawnand.h | 2 --
> 2 files changed, 4 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> index cca4b24..7ea3f10 100644
> --- a/drivers/mtd/nand/raw/nand_base.c
> +++ b/drivers/mtd/nand/raw/nand_base.c
> @@ -4155,23 +4155,6 @@ static int nand_write_oob(struct mtd_info *mtd, loff_t to,
> }
>
> /**
> - * single_erase - [GENERIC] NAND standard block erase command function
> - * @chip: NAND chip object
> - * @page: the page address of the block which will be erased
> - *
> - * Standard erase command for NAND chips. Returns NAND status.
> - */
> -static int single_erase(struct nand_chip *chip, int page)
> -{
> - unsigned int eraseblock;
> -
> - /* Send commands to erase a block */
> - eraseblock = page >> (chip->phys_erase_shift - chip->page_shift);
> -
> - return nand_erase_op(chip, eraseblock);
> -}
> -
> -/**
> * nand_erase - [MTD Interface] erase block(s)
> * @mtd: MTD device structure
> * @instr: erase instruction
> @@ -4194,7 +4177,7 @@ static int nand_erase(struct mtd_info *mtd, struct erase_info *instr)
> int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
> int allowbbt)
> {
> - int page, status, pages_per_block, ret, chipnr;
> + int page, pages_per_block, ret, chipnr;
> loff_t len;
>
> pr_debug("%s: start = 0x%012llx, len = %llu\n",
> @@ -4246,17 +4229,11 @@ int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
> (page + pages_per_block))
> chip->pagebuf = -1;
>
> - if (chip->legacy.erase)
> - status = chip->legacy.erase(chip,
> - page & chip->pagemask);
> - else
> - status = single_erase(chip, page & chip->pagemask);
> -
> - /* See if block erase succeeded */
> - if (status) {
> + ret = nand_erase_op(chip, (page & chip->pagemask) >>
> + (chip->phys_erase_shift - chip->page_shift));
> + if (ret) {
> pr_debug("%s: failed erase, page 0x%08x\n",
> __func__, page);
> - ret = -EIO;
> instr->fail_addr =
> ((loff_t)page << chip->page_shift);
> goto erase_exit;
> diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
> index 33e240a..5e37534 100644
> --- a/include/linux/mtd/rawnand.h
> +++ b/include/linux/mtd/rawnand.h
> @@ -936,7 +936,6 @@ static inline void nand_controller_init(struct nand_controller *nfc)
> * @waitfunc: hardware specific function for wait on ready.
> * @block_bad: check if a block is bad, using OOB markers
> * @block_markbad: mark a block bad
> - * @erase: erase function
> * @set_features: set the NAND chip features
> * @get_features: get the NAND chip features
> * @chip_delay: chip dependent delay for transferring data from array to read
> @@ -962,7 +961,6 @@ struct nand_legacy {
> int (*waitfunc)(struct nand_chip *chip);
> int (*block_bad)(struct nand_chip *chip, loff_t ofs);
> int (*block_markbad)(struct nand_chip *chip, loff_t ofs);
> - int (*erase)(struct nand_chip *chip, int page);
> int (*set_features)(struct nand_chip *chip, int feature_addr,
> u8 *subfeature_para);
> int (*get_features)(struct nand_chip *chip, int feature_addr,
next prev parent reply other threads:[~2019-01-21 8:13 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-21 6:32 [PATCH v2] mtd: rawnand: remove ->legacy.erase and single_erase() Masahiro Yamada
2019-01-21 6:32 ` Masahiro Yamada
2019-01-21 8:13 ` Boris Brezillon [this message]
2019-01-21 8:13 ` Boris Brezillon
2019-01-21 23:29 ` kbuild test robot
2019-01-21 23:29 ` kbuild test robot
2019-01-25 12:37 ` Miquel Raynal
2019-01-25 12:37 ` Miquel Raynal
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=20190121091304.63673375@bbrezillon \
--to=bbrezillon@kernel.org \
--cc=boris.brezillon@bootlin.com \
--cc=computersforpeace@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=miquel.raynal@bootlin.com \
--cc=richard@nod.at \
--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.