From: Igor Grinberg <grinberg@compulab.co.il>
To: Lei Wen <leiwen@marvell.com>
Cc: Eric Miao <eric.y.miao@gmail.com>,
David Woodhouse <David.Woodhouse@intel.com>,
Artem Bityutskiy <dedekind1@gmail.com>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
Daniel Mack <zonque@gmail.com>,
linux-mtd@lists.infradead.org,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 2/4] MTD: pxa3xx_nand: sperate each chip individual info
Date: Wed, 06 Jul 2011 10:29:16 +0300 [thread overview]
Message-ID: <4E140ECC.2000400@compulab.co.il> (raw)
In-Reply-To: <1309771536-10597-3-git-send-email-leiwen@marvell.com>
Hi Lei,
You are going to resubmit the series to merge patches 3 and 4, so
a small nitpick below
On 07/04/11 12:25, Lei Wen wrote:
> For support two chip select, we seperate chip specific info in this
> patch.
>
> Signed-off-by: Lei Wen <leiwen@marvell.com>
> ---
> drivers/mtd/nand/pxa3xx_nand.c | 281 ++++++++++++++++++++++------------------
> 1 files changed, 154 insertions(+), 127 deletions(-)
[...]
>
> static int pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info)
> {
> + struct pxa3xx_nand_host *host = info->host;
> uint32_t ndcr = nand_readl(info, NDCR);
> - info->page_size = ndcr & NDCR_PAGE_SZ ? 2048 : 512;
> - /* set info fields needed to read id */
> - info->read_id_bytes = (info->page_size == 2048) ? 4 : 2;
> - info->reg_ndcr = ndcr & ~NDCR_INT_MASK;
> - info->cmdset = &default_cmdset;
>
> - info->ndtr0cs0 = nand_readl(info, NDTR0CS0);
> - info->ndtr1cs0 = nand_readl(info, NDTR1CS0);
> + if (ndcr & NDCR_PAGE_SZ) {
> + host->page_size = 2048;
> + host->read_id_bytes = 4;
> + } else {
> + host->page_size = 512;
> + host->read_id_bytes = 2;
> + }
empty line would be nice here
> + host->reg_ndcr = ndcr & ~NDCR_INT_MASK;
> + host->cmdset = &default_cmdset;
> +
> + host->ndtr0cs0 = nand_readl(info, NDTR0CS0);
> + host->ndtr1cs0 = nand_readl(info, NDTR1CS0);
>
> return 0;
> }
[...]
>
> @@ -933,14 +947,17 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
> }
>
> if (i >= (ARRAY_SIZE(builtin_flash_types) + pdata->num_flash - 1)) {
> - kfree(mtd);
> - info->mtd = NULL;
> + host->mtd = NULL;
> dev_err(&info->pdev->dev, "ERROR!! flash not defined!!!\n");
>
> return -EINVAL;
> }
>
> - pxa3xx_nand_config_flash(info, f);
> + ret = pxa3xx_nand_config_flash(info, f);
> + if (ret) {
> + dev_err(&info->pdev->dev, "ERROR! Configure failed\n");
> + return ret;
> + }
and here
> pxa3xx_flash_ids[0].name = f->name;
> pxa3xx_flash_ids[0].id = (f->chip_id >> 8) & 0xffff;
> pxa3xx_flash_ids[0].pagesize = f->page_size;
> @@ -955,44 +972,52 @@ KEEP_CONFIG:
> if (nand_scan_ident(mtd, 1, def))
> return -ENODEV;
> /* calculate addressing information */
> - info->col_addr_cycles = (mtd->writesize >= 2048) ? 2 : 1;
> + if (mtd->writesize >= 2048)
> + host->col_addr_cycles = 2;
> + else
> + host->col_addr_cycles = 1;
and here
> info->oob_buff = info->data_buff + mtd->writesize;
> if ((mtd->size >> chip->page_shift) > 65536)
> - info->row_addr_cycles = 3;
> + host->row_addr_cycles = 3;
> else
> - info->row_addr_cycles = 2;
> + host->row_addr_cycles = 2;
also here
> mtd->name = mtd_names[0];
> chip->ecc.mode = NAND_ECC_HW;
> - chip->ecc.size = info->page_size;
> + chip->ecc.size = host->page_size;
>
> - chip->options = (info->reg_ndcr & NDCR_DWIDTH_M) ? NAND_BUSWIDTH_16 : 0;
> + chip->options = 0;
> + if (host->reg_ndcr & NDCR_DWIDTH_M)
> + chip->options = NAND_BUSWIDTH_16;
> chip->options |= NAND_NO_AUTOINCR;
> chip->options |= NAND_NO_READRDY;
here, you can just reorder the bit operations, so you won't need to do options = 0.
And empty line after if, would be great.
>
> return nand_scan_tail(mtd);
> }
>
[...]
> static int pxa3xx_nand_remove(struct platform_device *pdev)
> {
> struct pxa3xx_nand_info *info = platform_get_drvdata(pdev);
> - struct mtd_info *mtd = info->mtd;
> struct resource *r;
> int irq;
>
> + if (!info)
> + return 0;
and here (empty line)
apart from that nitpicking, the patch should be fine.
--
Regards,
Igor.
WARNING: multiple messages have this Message-ID (diff)
From: grinberg@compulab.co.il (Igor Grinberg)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/4] MTD: pxa3xx_nand: sperate each chip individual info
Date: Wed, 06 Jul 2011 10:29:16 +0300 [thread overview]
Message-ID: <4E140ECC.2000400@compulab.co.il> (raw)
In-Reply-To: <1309771536-10597-3-git-send-email-leiwen@marvell.com>
Hi Lei,
You are going to resubmit the series to merge patches 3 and 4, so
a small nitpick below
On 07/04/11 12:25, Lei Wen wrote:
> For support two chip select, we seperate chip specific info in this
> patch.
>
> Signed-off-by: Lei Wen <leiwen@marvell.com>
> ---
> drivers/mtd/nand/pxa3xx_nand.c | 281 ++++++++++++++++++++++------------------
> 1 files changed, 154 insertions(+), 127 deletions(-)
[...]
>
> static int pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info)
> {
> + struct pxa3xx_nand_host *host = info->host;
> uint32_t ndcr = nand_readl(info, NDCR);
> - info->page_size = ndcr & NDCR_PAGE_SZ ? 2048 : 512;
> - /* set info fields needed to read id */
> - info->read_id_bytes = (info->page_size == 2048) ? 4 : 2;
> - info->reg_ndcr = ndcr & ~NDCR_INT_MASK;
> - info->cmdset = &default_cmdset;
>
> - info->ndtr0cs0 = nand_readl(info, NDTR0CS0);
> - info->ndtr1cs0 = nand_readl(info, NDTR1CS0);
> + if (ndcr & NDCR_PAGE_SZ) {
> + host->page_size = 2048;
> + host->read_id_bytes = 4;
> + } else {
> + host->page_size = 512;
> + host->read_id_bytes = 2;
> + }
empty line would be nice here
> + host->reg_ndcr = ndcr & ~NDCR_INT_MASK;
> + host->cmdset = &default_cmdset;
> +
> + host->ndtr0cs0 = nand_readl(info, NDTR0CS0);
> + host->ndtr1cs0 = nand_readl(info, NDTR1CS0);
>
> return 0;
> }
[...]
>
> @@ -933,14 +947,17 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
> }
>
> if (i >= (ARRAY_SIZE(builtin_flash_types) + pdata->num_flash - 1)) {
> - kfree(mtd);
> - info->mtd = NULL;
> + host->mtd = NULL;
> dev_err(&info->pdev->dev, "ERROR!! flash not defined!!!\n");
>
> return -EINVAL;
> }
>
> - pxa3xx_nand_config_flash(info, f);
> + ret = pxa3xx_nand_config_flash(info, f);
> + if (ret) {
> + dev_err(&info->pdev->dev, "ERROR! Configure failed\n");
> + return ret;
> + }
and here
> pxa3xx_flash_ids[0].name = f->name;
> pxa3xx_flash_ids[0].id = (f->chip_id >> 8) & 0xffff;
> pxa3xx_flash_ids[0].pagesize = f->page_size;
> @@ -955,44 +972,52 @@ KEEP_CONFIG:
> if (nand_scan_ident(mtd, 1, def))
> return -ENODEV;
> /* calculate addressing information */
> - info->col_addr_cycles = (mtd->writesize >= 2048) ? 2 : 1;
> + if (mtd->writesize >= 2048)
> + host->col_addr_cycles = 2;
> + else
> + host->col_addr_cycles = 1;
and here
> info->oob_buff = info->data_buff + mtd->writesize;
> if ((mtd->size >> chip->page_shift) > 65536)
> - info->row_addr_cycles = 3;
> + host->row_addr_cycles = 3;
> else
> - info->row_addr_cycles = 2;
> + host->row_addr_cycles = 2;
also here
> mtd->name = mtd_names[0];
> chip->ecc.mode = NAND_ECC_HW;
> - chip->ecc.size = info->page_size;
> + chip->ecc.size = host->page_size;
>
> - chip->options = (info->reg_ndcr & NDCR_DWIDTH_M) ? NAND_BUSWIDTH_16 : 0;
> + chip->options = 0;
> + if (host->reg_ndcr & NDCR_DWIDTH_M)
> + chip->options = NAND_BUSWIDTH_16;
> chip->options |= NAND_NO_AUTOINCR;
> chip->options |= NAND_NO_READRDY;
here, you can just reorder the bit operations, so you won't need to do options = 0.
And empty line after if, would be great.
>
> return nand_scan_tail(mtd);
> }
>
[...]
> static int pxa3xx_nand_remove(struct platform_device *pdev)
> {
> struct pxa3xx_nand_info *info = platform_get_drvdata(pdev);
> - struct mtd_info *mtd = info->mtd;
> struct resource *r;
> int irq;
>
> + if (!info)
> + return 0;
and here (empty line)
apart from that nitpicking, the patch should be fine.
--
Regards,
Igor.
next prev parent reply other threads:[~2011-07-06 7:29 UTC|newest]
Thread overview: 162+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-22 3:17 [PATCH] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-07-08 16:00 ` Lei Wen
2011-06-22 11:39 ` Daniel Mack
2011-06-22 11:39 ` Daniel Mack
2011-06-22 12:21 ` Lei Wen
2011-07-08 17:38 ` Lei Wen
2011-06-22 13:06 ` Daniel Mack
2011-06-22 13:06 ` Daniel Mack
2011-06-23 6:22 ` Lei Wen
2011-06-23 6:22 ` Lei Wen
2011-06-22 13:45 ` Igor Grinberg
2011-07-08 16:09 ` Igor Grinberg
2011-06-23 6:35 ` Lei Wen
2011-07-08 15:26 ` Lei Wen
2011-06-23 10:44 ` Igor Grinberg
2011-06-23 10:44 ` Igor Grinberg
2011-06-25 11:17 ` Lei Wen
2011-06-25 11:17 ` Lei Wen
2011-06-25 12:32 ` Daniel Mack
2011-06-25 12:32 ` Daniel Mack
2011-06-25 12:51 ` Lei Wen
2011-06-25 12:51 ` Lei Wen
2011-06-27 13:22 ` Igor Grinberg
2011-06-27 13:22 ` Igor Grinberg
2011-06-28 7:32 ` Artem Bityutskiy
2011-06-28 7:32 ` Artem Bityutskiy
2011-06-28 15:12 ` Lei Wen
2011-06-28 15:12 ` Lei Wen
2011-06-29 3:51 ` [PATCH V3 0/9] pxa3xx_nand: add two " Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 9:00 ` Igor Grinberg
2011-06-29 9:00 ` Igor Grinberg
2011-06-29 10:20 ` Artem Bityutskiy
2011-06-29 10:20 ` Artem Bityutskiy
2011-07-04 9:27 ` Lei Wen
2011-07-04 9:27 ` Lei Wen
2011-07-04 9:25 ` [PATCH V4 0/4] " Lei Wen
2011-07-04 9:25 ` Lei Wen
2011-07-08 3:34 ` [PATCH V5 0/3] " Lei Wen
2011-07-08 3:34 ` Lei Wen
2011-07-12 10:28 ` [PATCH V6 0/4] " Lei Wen
2011-07-12 10:28 ` Lei Wen
2011-07-12 14:35 ` [PATCH V7 " Lei Wen
2011-07-12 14:35 ` Lei Wen
2011-07-15 3:44 ` [PATCH V8 " Lei Wen
2011-07-15 3:44 ` Lei Wen
2011-07-20 4:51 ` Artem Bityutskiy
2011-07-20 4:51 ` Artem Bityutskiy
2011-07-15 3:44 ` [PATCH V8 1/4] MTD: pxa3xx_nand: enhance suspend and resume routine Lei Wen
2011-07-15 3:44 ` Lei Wen
2011-07-15 3:44 ` [PATCH V8 2/4] MTD: pxa3xx_nand: convert all printk into dev_* Lei Wen
2011-07-15 3:44 ` Lei Wen
2011-07-15 3:44 ` [PATCH V8 3/4] MTD: pxa3xx_nand: sperate each chip individual info Lei Wen
2011-07-15 3:44 ` Lei Wen
2011-07-15 3:44 ` [PATCH V8 4/4] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-07-15 3:44 ` Lei Wen
2011-07-12 14:35 ` [PATCH V7 1/4] MTD: pxa3xx_nand: enhance suspend and resume routine Lei Wen
2011-07-12 14:35 ` Lei Wen
2011-07-13 10:53 ` Sergei Shtylyov
2011-07-13 10:53 ` Sergei Shtylyov
2011-07-12 14:35 ` [PATCH V7 2/4] MTD: pxa3xx_nand: convert all printk into dev_* Lei Wen
2011-07-12 14:35 ` Lei Wen
2011-07-13 10:57 ` Sergei Shtylyov
2011-07-13 10:57 ` Sergei Shtylyov
2011-07-13 12:41 ` Lei Wen
2011-07-13 12:41 ` Lei Wen
2011-07-13 14:35 ` Sergei Shtylyov
2011-07-13 14:35 ` Sergei Shtylyov
2011-07-12 14:35 ` [PATCH V7 3/4] MTD: pxa3xx_nand: sperate each chip individual info Lei Wen
2011-07-12 14:35 ` Lei Wen
2011-07-12 14:35 ` [PATCH V7 4/4] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-07-12 14:35 ` Lei Wen
2011-07-12 10:28 ` [PATCH V6 1/4] MTD: pxa3xx_nand: convert all printk into dev_* Lei Wen
2011-07-12 10:28 ` Lei Wen
2011-07-12 10:28 ` [PATCH V6 2/4] MTD: pxa3xx_nand: sperate each chip individual info Lei Wen
2011-07-12 10:28 ` Lei Wen
2011-07-12 10:28 ` [PATCH V6 3/4] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-07-12 10:28 ` Lei Wen
2011-07-12 10:28 ` [PATCH V6 4/4] MTD: pxa3xx_nand: enhance suspend and resume routine Lei Wen
2011-07-12 10:28 ` Lei Wen
2011-07-12 11:39 ` Daniel Mack
2011-07-12 11:39 ` Daniel Mack
2011-07-12 12:02 ` Daniel Mack
2011-07-12 12:02 ` Daniel Mack
2011-07-12 15:56 ` Igor Grinberg
2011-07-12 15:56 ` Igor Grinberg
2011-07-12 17:35 ` Daniel Mack
2011-07-12 17:35 ` Daniel Mack
2011-07-08 3:34 ` [PATCH 1/3] MTD: pxa3xx_nand: convert all printk into dev_* Lei Wen
2011-07-08 3:34 ` Lei Wen
2011-07-08 3:34 ` [PATCH 2/3] MTD: pxa3xx_nand: sperate each chip individual info Lei Wen
2011-07-08 3:34 ` Lei Wen
2011-07-08 3:34 ` [PATCH 3/3] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-07-08 3:34 ` Lei Wen
2011-07-04 9:25 ` [PATCH 1/4] MTD: pxa3xx_nand: convert all printk into dev_* Lei Wen
2011-07-04 9:25 ` Lei Wen
2011-07-04 9:25 ` [PATCH 2/4] MTD: pxa3xx_nand: sperate each chip individual info Lei Wen
2011-07-04 9:25 ` Lei Wen
2011-07-06 7:29 ` Igor Grinberg [this message]
2011-07-06 7:29 ` Igor Grinberg
2011-07-04 9:25 ` [PATCH 3/4] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-07-04 9:25 ` Lei Wen
2011-07-06 6:53 ` Artem Bityutskiy
2011-07-06 6:53 ` Artem Bityutskiy
2011-07-06 6:54 ` Lei Wen
2011-07-06 6:54 ` Lei Wen
2011-07-06 7:07 ` Artem Bityutskiy
2011-07-06 7:07 ` Artem Bityutskiy
2011-07-06 7:41 ` Igor Grinberg
2011-07-06 7:41 ` Igor Grinberg
2011-07-07 6:26 ` Lei Wen
2011-07-07 6:26 ` Lei Wen
2011-07-07 8:59 ` Igor Grinberg
2011-07-07 8:59 ` Igor Grinberg
2011-07-07 9:06 ` Lei Wen
2011-07-07 9:06 ` Lei Wen
2011-07-07 11:23 ` Igor Grinberg
2011-07-07 11:23 ` Igor Grinberg
2011-07-11 14:49 ` Daniel Mack
2011-07-11 14:49 ` Daniel Mack
2011-07-11 18:19 ` Igor Grinberg
2011-07-11 18:19 ` Igor Grinberg
2011-07-11 18:53 ` Daniel Mack
2011-07-11 18:53 ` Daniel Mack
2011-07-11 19:25 ` Igor Grinberg
2011-07-11 19:25 ` Igor Grinberg
2011-07-12 9:40 ` Lei Wen
2011-07-12 9:40 ` Lei Wen
2011-07-12 9:57 ` Daniel Mack
2011-07-12 9:57 ` Daniel Mack
2011-07-12 10:29 ` Lei Wen
2011-07-12 10:29 ` Lei Wen
2011-07-12 12:05 ` Daniel Mack
2011-07-12 12:05 ` Daniel Mack
2011-07-12 12:48 ` Daniel Mack
2011-07-12 12:48 ` Daniel Mack
2011-07-12 15:49 ` Igor Grinberg
2011-07-12 15:49 ` Igor Grinberg
2011-07-04 9:25 ` [PATCH 4/4] ARM: mmp/pxa: fix nand platform data Lei Wen
2011-07-04 9:25 ` Lei Wen
2011-06-29 3:51 ` [PATCH 1/9] MTD: pxa3xx_nand: convert all printk into dev_* Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 2/9] MTD: pxa3xx_nand: enable multiple chip select support Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 7:11 ` Artem Bityutskiy
2011-06-29 7:11 ` Artem Bityutskiy
2011-06-29 7:16 ` Lei Wen
2011-06-29 7:16 ` Lei Wen
2011-06-29 3:51 ` [PATCH 3/9] ARM: aspenite: fix nand platform data Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 4/9] ARM: cm-x300: " Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 5/9] ARM: colibri-pxa3xx: " Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 6/9] ARM: littleton: " Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 7/9] ARM: mxm8x10: " Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 8/9] ARM: raumfeld: " Lei Wen
2011-06-29 3:51 ` Lei Wen
2011-06-29 3:51 ` [PATCH 9/9] ARM: zylonite: " Lei Wen
2011-06-29 3:51 ` Lei Wen
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=4E140ECC.2000400@compulab.co.il \
--to=grinberg@compulab.co.il \
--cc=David.Woodhouse@intel.com \
--cc=dedekind1@gmail.com \
--cc=eric.y.miao@gmail.com \
--cc=haojian.zhuang@gmail.com \
--cc=leiwen@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=zonque@gmail.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.