From: Schrempf Frieder <frieder.schrempf@kontron.de>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
Boris Brezillon <bbrezillon@kernel.org>,
Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
"Marek Vasut" <marek.vasut@gmail.com>,
Tudor Ambarus <Tudor.Ambarus@microchip.com>
Cc: Vignesh R <vigneshr@ti.com>, Julien Su <juliensu@mxic.com.tw>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Mason Yang <masonccyang@mxic.com.tw>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 14/15] mtd: rawnand: Get rid of chip->numchips
Date: Sat, 23 Feb 2019 13:15:00 +0000 [thread overview]
Message-ID: <e2aab23b-73bb-808a-97ed-1ce70f5ee603@kontron.de> (raw)
In-Reply-To: <20190221091527.20497-15-miquel.raynal@bootlin.com>
On 21.02.19 10:15, Miquel Raynal wrote:
> From: Boris Brezillon <bbrezillon@kernel.org>
>
> The same information is provided by nanddev_ntargets().
>
> Signed-off-by: Boris Brezillon <bbrezillon@kernel.org>
> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
> ---
> drivers/mtd/nand/raw/diskonchip.c | 2 +-
> drivers/mtd/nand/raw/fsl_elbc_nand.c | 2 +-
> drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 +-
> drivers/mtd/nand/raw/hisi504_nand.c | 2 +-
> drivers/mtd/nand/raw/internals.h | 2 +-
> drivers/mtd/nand/raw/jz4740_nand.c | 1 -
> drivers/mtd/nand/raw/nand_base.c | 15 ++++-----------
> drivers/mtd/nand/raw/nand_bbt.c | 16 ++++++++--------
> include/linux/mtd/rawnand.h | 7 +++----
> 9 files changed, 20 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/diskonchip.c b/drivers/mtd/nand/raw/diskonchip.c
> index e9767e06415d..3cee832716ec 100644
> --- a/drivers/mtd/nand/raw/diskonchip.c
> +++ b/drivers/mtd/nand/raw/diskonchip.c
> @@ -1291,7 +1291,7 @@ static int __init inftl_scan_bbt(struct mtd_info *mtd)
> struct doc_priv *doc = nand_get_controller_data(this);
> struct mtd_partition parts[5];
>
> - if (this->numchips > doc->chips_per_floor) {
> + if (nanddev_ntargets(&this->base) > doc->chips_per_floor) {
> pr_err("Multi-floor INFTL devices not yet supported.\n");
> return -EIO;
> }
> diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> index 1d960a6cd691..293a5b71833a 100644
> --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
> +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
> @@ -653,7 +653,7 @@ static int fsl_elbc_attach_chip(struct nand_chip *chip)
> priv->fmr |= al << FMR_AL_SHIFT;
>
> dev_dbg(priv->dev, "fsl_elbc_init: nand->numchips = %d\n",
> - chip->numchips);
> + nanddev_ntargets(&chip->base));
> dev_dbg(priv->dev, "fsl_elbc_init: nand->chipsize = %lld\n",
> nanddev_target_size(&chip->base));
> dev_dbg(priv->dev, "fsl_elbc_init: nand->pagemask = %8x\n",
> diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c
> index a9e8f89aeebd..04a3dcd675bf 100644
> --- a/drivers/mtd/nand/raw/fsl_ifc_nand.c
> +++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c
> @@ -722,7 +722,7 @@ static int fsl_ifc_attach_chip(struct nand_chip *chip)
> struct fsl_ifc_mtd *priv = nand_get_controller_data(chip);
>
> dev_dbg(priv->dev, "%s: nand->numchips = %d\n", __func__,
> - chip->numchips);
> + nanddev_ntargets(&chip->base));
> dev_dbg(priv->dev, "%s: nand->chipsize = %lld\n", __func__,
> nanddev_target_size(&chip->base));
> dev_dbg(priv->dev, "%s: nand->pagemask = %8x\n", __func__,
> diff --git a/drivers/mtd/nand/raw/hisi504_nand.c b/drivers/mtd/nand/raw/hisi504_nand.c
> index f3f9aa160cff..e4526fff9da4 100644
> --- a/drivers/mtd/nand/raw/hisi504_nand.c
> +++ b/drivers/mtd/nand/raw/hisi504_nand.c
> @@ -849,7 +849,7 @@ static int hisi_nfc_resume(struct device *dev)
> struct hinfc_host *host = dev_get_drvdata(dev);
> struct nand_chip *chip = &host->chip;
>
> - for (cs = 0; cs < chip->numchips; cs++)
> + for (cs = 0; cs < nanddev_ntargets(&chip->base); cs++)
> hisi_nfc_send_cmd_reset(host, cs);
> hinfc_write(host, SET_HINFC504_PWIDTH(HINFC504_W_LATCH,
> HINFC504_R_LATCH, HINFC504_RW_LATCH), HINFC504_PWIDTH);
> diff --git a/drivers/mtd/nand/raw/internals.h b/drivers/mtd/nand/raw/internals.h
> index fbf6ca015cd7..a204f9d7e123 100644
> --- a/drivers/mtd/nand/raw/internals.h
> +++ b/drivers/mtd/nand/raw/internals.h
> @@ -110,7 +110,7 @@ static inline int nand_exec_op(struct nand_chip *chip,
> if (!nand_has_exec_op(chip))
> return -ENOTSUPP;
>
> - if (WARN_ON(op->cs >= chip->numchips))
> + if (WARN_ON(op->cs >= nanddev_ntargets(&chip->base)))
> return -EINVAL;
>
> return chip->controller->ops->exec_op(chip, op, false);
> diff --git a/drivers/mtd/nand/raw/jz4740_nand.c b/drivers/mtd/nand/raw/jz4740_nand.c
> index 06690b3603b1..c992a664bdee 100644
> --- a/drivers/mtd/nand/raw/jz4740_nand.c
> +++ b/drivers/mtd/nand/raw/jz4740_nand.c
> @@ -354,7 +354,6 @@ static int jz_nand_detect_bank(struct platform_device *pdev,
> }
>
> /* Update size of the MTD. */
> - chip->numchips++;
> memorg->ntargets++;
> mtd->size += nanddev_target_size(&chip->base);
> }
> diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> index 674505a0021c..e4bc851b099a 100644
> --- a/drivers/mtd/nand/raw/nand_base.c
> +++ b/drivers/mtd/nand/raw/nand_base.c
> @@ -240,10 +240,10 @@ static int check_offs_len(struct nand_chip *chip, loff_t ofs, uint64_t len)
> void nand_select_target(struct nand_chip *chip, unsigned int cs)
> {
> /*
> - * cs should always lie between 0 and chip->numchips, when that's not
> - * the case it's a bug and the caller should be fixed.
> + * cs should always lie between 0 and nanddev_ntargets(), when that's
> + * not the case it's a bug and the caller should be fixed.
> */
> - if (WARN_ON(cs > chip->numchips))
> + if (WARN_ON(cs > nanddev_ntargets(&chip->base)))
> return;
>
> chip->cur_cs = cs;
> @@ -5042,12 +5042,6 @@ static int nand_scan_ident(struct nand_chip *chip, unsigned int maxchips,
> if (!mtd->name && mtd->dev.parent)
> mtd->name = dev_name(mtd->dev.parent);
>
> - /*
> - * Start with chips->numchips = maxchips to let nand_select_target() do
> - * its job. chip->numchips will be adjusted after.
> - */
> - chip->numchips = maxchips;
> -
> /* Set the default functions */
> nand_set_defaults(chip);
>
> @@ -5091,7 +5085,6 @@ static int nand_scan_ident(struct nand_chip *chip, unsigned int maxchips,
>
> /* Store the number of chips and calc total size for mtd */
> memorg->ntargets = i;
> - chip->numchips = i;
> mtd->size = i * nanddev_target_size(&chip->base);
>
> return 0;
> @@ -5833,7 +5826,7 @@ static int nand_scan_tail(struct nand_chip *chip)
> goto err_nanddev_cleanup;
>
> /* Enter fastest possible mode on all dies. */
> - for (i = 0; i < chip->numchips; i++) {
> + for (i = 0; i < nanddev_ntargets(&chip->base); i++) {
> ret = nand_setup_data_interface(chip, i);
> if (ret)
> goto err_nanddev_cleanup;
> diff --git a/drivers/mtd/nand/raw/nand_bbt.c b/drivers/mtd/nand/raw/nand_bbt.c
> index e3308857b2ee..303408039650 100644
> --- a/drivers/mtd/nand/raw/nand_bbt.c
> +++ b/drivers/mtd/nand/raw/nand_bbt.c
> @@ -269,7 +269,7 @@ static int read_abs_bbt(struct nand_chip *this, uint8_t *buf,
>
> if (td->options & NAND_BBT_PERCHIP) {
> int offs = 0;
> - for (i = 0; i < this->numchips; i++) {
> + for (i = 0; i < nanddev_ntargets(&this->base); i++) {
> if (chip == -1 || chip == i)
> res = read_bbt(this, buf, td->pages[i],
> targetsize >> this->bbt_erase_shift,
> @@ -478,9 +478,9 @@ static int create_bbt(struct nand_chip *this, uint8_t *buf,
> startblock = 0;
> from = 0;
> } else {
> - if (chip >= this->numchips) {
> + if (chip >= nanddev_ntargets(&this->base)) {
> pr_warn("create_bbt(): chipnr (%d) > available chips (%d)\n",
> - chip + 1, this->numchips);
> + chip + 1, nanddev_ntargets(&this->base));
> return -EINVAL;
> }
> numblocks = targetsize >> this->bbt_erase_shift;
> @@ -550,7 +550,7 @@ static int search_bbt(struct nand_chip *this, uint8_t *buf,
>
> /* Do we have a bbt per chip? */
> if (td->options & NAND_BBT_PERCHIP) {
> - chips = this->numchips;
> + chips = nanddev_ntargets(&this->base);
> bbtblocks = targetsize >> this->bbt_erase_shift;
> startblock &= bbtblocks - 1;
> } else {
> @@ -643,7 +643,7 @@ static int get_bbt_block(struct nand_chip *this, struct nand_bbt_descr *td,
>
> numblocks = (int)(targetsize >> this->bbt_erase_shift);
> if (!(td->options & NAND_BBT_PERCHIP))
> - numblocks *= this->numchips;
> + numblocks *= nanddev_ntargets(&this->base);
>
> /*
> * Automatic placement of the bad block table. Search direction
> @@ -745,7 +745,7 @@ static int write_bbt(struct nand_chip *this, uint8_t *buf,
> numblocks = (int)(targetsize >> this->bbt_erase_shift);
> /* Full device write or specific chip? */
> if (chipsel == -1) {
> - nrchips = this->numchips;
> + nrchips = nanddev_ntargets(&this->base);
> } else {
> nrchips = chipsel + 1;
> chip = chipsel;
> @@ -932,7 +932,7 @@ static int check_create(struct nand_chip *this, uint8_t *buf,
>
> /* Do we have a bbt per chip? */
> if (td->options & NAND_BBT_PERCHIP)
> - chips = this->numchips;
> + chips = nanddev_ntargets(&this->base);
> else
> chips = 1;
>
> @@ -1111,7 +1111,7 @@ static void mark_bbt_region(struct nand_chip *this, struct nand_bbt_descr *td)
>
> /* Do we have a bbt per chip? */
> if (td->options & NAND_BBT_PERCHIP) {
> - chips = this->numchips;
> + chips = nanddev_ntargets(&this->base);
> nrblocks = (int)(targetsize >> this->bbt_erase_shift);
> } else {
> chips = 1;
> diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
> index a127eb773b1a..e5a25ba75211 100644
> --- a/include/linux/mtd/rawnand.h
> +++ b/include/linux/mtd/rawnand.h
> @@ -1014,7 +1014,6 @@ struct nand_legacy {
> * set to the actually used ONFI mode if the chip is
> * ONFI compliant or deduced from the datasheet if
> * the NAND chip is not ONFI compliant.
> - * @numchips: [INTERN] number of physical chips
> * @pagemask: [INTERN] page number mask = number of (pages / chip) - 1
> * @data_buf: [INTERN] buffer for data, size is (page size + oobsize).
> * @pagecache: Structure containing page cache related fields
> @@ -1028,8 +1027,9 @@ struct nand_legacy {
> * @data_interface: [INTERN] NAND interface timing information
> * @cur_cs: currently selected target. -1 means no target selected,
> * otherwise we should always have cur_cs >= 0 &&
> - * cur_cs < numchips. NAND Controller drivers should not
> - * modify this value, but they're allowed to read it.
> + * cur_cs < nanddev_ntargets(). NAND Controller drivers
> + * should not modify this value, but they're allowed to
> + * read it.
> * @read_retries: [INTERN] the number of read retry modes supported
> * @bbt: [INTERN] bad block table pointer
> * @bbt_td: [REPLACEABLE] bad block table descriptor for flash
> @@ -1060,7 +1060,6 @@ struct nand_chip {
> int phys_erase_shift;
> int bbt_erase_shift;
> int chip_shift;
> - int numchips;
> int pagemask;
> u8 *data_buf;
>
>
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2019-02-23 13:15 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-21 9:15 [PATCH 00/15] mtd: rawnand: 5th batch of cleanups Miquel Raynal
2019-02-21 9:15 ` [PATCH 01/15] mtd: nand: Add max_bad_eraseblocks_per_lun info to memorg Miquel Raynal
2019-02-23 13:03 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 02/15] mtd: nand: Add an helper returning the number of eraseblocks per target Miquel Raynal
2019-02-23 13:04 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 03/15] mtd: nand: Add an helper to retrieve the number of pages " Miquel Raynal
2019-02-23 13:04 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 04/15] mtd: spinand: Implement mtd->_max_bad_blocks Miquel Raynal
2019-02-23 13:05 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 05/15] mtd: rawnand: Use nand_to_mtd() in nand_{set, get}_flash_node() Miquel Raynal
2019-02-23 13:05 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 06/15] mtd: rawnand: Prepare things to reuse the generic NAND layer Miquel Raynal
2019-02-23 13:06 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 07/15] mtd: rawnand: Fill memorg during detection Miquel Raynal
2019-02-23 13:00 ` Schrempf Frieder
2019-02-26 13:09 ` Miquel Raynal
2019-02-21 9:15 ` [PATCH 08/15] mtd: rawnand: Initialize the nand_device object Miquel Raynal
2019-02-23 13:20 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 09/15] mtd: rawnand: Provide an helper to get chip->data_buf Miquel Raynal
2019-02-23 13:13 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 10/15] mtd: rawnand: Move all page cache related fields to a sub-struct Miquel Raynal
2019-02-23 13:13 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 11/15] mtd: rawnand: Use nanddev_mtd_max_bad_blocks() Miquel Raynal
2019-02-23 13:14 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 12/15] mtd: rawnand: Get rid of chip->bits_per_cell Miquel Raynal
2019-02-23 13:14 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 13/15] mtd: rawnand: Get rid of chip->chipsize Miquel Raynal
2019-02-23 13:01 ` Schrempf Frieder
2019-02-21 9:15 ` [PATCH 14/15] mtd: rawnand: Get rid of chip->numchips Miquel Raynal
2019-02-23 13:15 ` Schrempf Frieder [this message]
2019-02-21 9:15 ` [PATCH 15/15] mtd: rawnand: Get rid of chip->ecc_{strength,step}_ds Miquel Raynal
2019-02-23 13:15 ` Schrempf Frieder
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=e2aab23b-73bb-808a-97ed-1ce70f5ee603@kontron.de \
--to=frieder.schrempf@kontron.de \
--cc=Tudor.Ambarus@microchip.com \
--cc=bbrezillon@kernel.org \
--cc=computersforpeace@gmail.com \
--cc=dwmw2@infradead.org \
--cc=juliensu@mxic.com.tw \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=masonccyang@mxic.com.tw \
--cc=miquel.raynal@bootlin.com \
--cc=richard@nod.at \
--cc=thomas.petazzoni@bootlin.com \
--cc=vigneshr@ti.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox