From: xiaolei li <xiaolei.li@mediatek.com>
To: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: srv_heupstream@mediatek.com, yt.shen@mediatek.com,
robh+dt@kernel.org, linux-mtd@lists.infradead.org,
matthias.bgg@gmail.com, linux-mediatek@lists.infradead.org,
computersforpeace@gmail.com, dwmw2@infradead.org,
rogercc.lin@mediatek.com
Subject: Re: [PATCH v4 3/4] mtd: nand: mediatek: add support for different MTK NAND FLASH Controller IP
Date: Wed, 31 May 2017 14:52:41 +0800 [thread overview]
Message-ID: <1496213561.492.12.camel@mhfsdcap03> (raw)
In-Reply-To: <20170531081241.2137fe38@bbrezillon>
Hi Boris,
On Wed, 2017-05-31 at 08:12 +0200, Boris Brezillon wrote:
> Le Wed, 31 May 2017 11:37:56 +0800,
> Xiaolei Li <xiaolei.li@mediatek.com> a écrit :
>
> >
> > -static void mtk_nfc_set_spare_per_sector(u32 *sps, struct mtd_info *mtd)
> > +static int mtk_nfc_set_spare_per_sector(u32 *sps, struct mtd_info *mtd)
>
> Why do you change the prototype here? You seem to always return 0
> anyway.
>
Sorry, it should be void.
But as your suggestion below, I will keep using int here to return error
if there is no entry that is less than *sps.
> > {
> > struct nand_chip *nand = mtd_to_nand(mtd);
> > - u32 spare[] = {16, 26, 27, 28, 32, 36, 40, 44,
> > - 48, 49, 50, 51, 52, 62, 63, 64};
> > - u32 eccsteps, i;
> > + struct mtk_nfc *nfc = nand_get_controller_data(nand);
> > + const u8 *spare = nfc->caps->spare_size;
> > + u32 eccsteps, i, j = 0;
>
> Can we rename 'j' into 'closest_spare'?
>
ok.
> >
> > eccsteps = mtd->writesize / nand->ecc.size;
> > *sps = mtd->oobsize / eccsteps;
> > @@ -1144,28 +1102,28 @@ static void mtk_nfc_set_spare_per_sector(u32 *sps, struct mtd_info *mtd)
> > if (nand->ecc.size == 1024)
> > *sps >>= 1;
> >
> > - for (i = 0; i < ARRAY_SIZE(spare); i++) {
> > - if (*sps <= spare[i]) {
> > - if (!i)
> > - *sps = spare[i];
> > - else if (*sps != spare[i])
> > - *sps = spare[i - 1];
> > - break;
> > + for (i = 0; i < nfc->caps->num_spare_size; i++) {
> > + if ((*sps >= spare[i]) && (spare[i] >= spare[j])) {
>
> Parenthesis around the 'a >= b' tests are unneeded:
>
> if (*sps >= spare[i] && spare[i] >= spare[j]) {
>
ok.
> > + j = i;
> > + if (*sps == spare[i])
> > + break;
> > }
> > }
> >
> > - if (i >= ARRAY_SIZE(spare))
> > - *sps = spare[ARRAY_SIZE(spare) - 1];
>
> Maybe you could return an error if you didn't find any entry that is
> less that *sps in the table, but I'm not sure this can really happen,
> and the minimum spare size seems to be the same for all IPs, this is
> something you can check before iterating over the array:
>
> if (*sps < MTK_NFC_MIN_SPARE)
> return -EINVAL;
>
OK. It seems better to check whether there is no entry that is less than
*sps.
Will add MTK_NFC_MIN_SPARE and check it.
> > + *sps = spare[j];
> >
> > if (nand->ecc.size == 1024)
> > *sps <<= 1;
> > +
> > + return 0;
> > }
Thanks.
Xiaolei
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: xiaolei li <xiaolei.li@mediatek.com>
To: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: <computersforpeace@gmail.com>, <matthias.bgg@gmail.com>,
<dwmw2@infradead.org>, <linux-mtd@lists.infradead.org>,
<linux-mediatek@lists.infradead.org>, <robh+dt@kernel.org>,
<rogercc.lin@mediatek.com>, <yt.shen@mediatek.com>,
<srv_heupstream@mediatek.com>
Subject: Re: [PATCH v4 3/4] mtd: nand: mediatek: add support for different MTK NAND FLASH Controller IP
Date: Wed, 31 May 2017 14:52:41 +0800 [thread overview]
Message-ID: <1496213561.492.12.camel@mhfsdcap03> (raw)
In-Reply-To: <20170531081241.2137fe38@bbrezillon>
Hi Boris,
On Wed, 2017-05-31 at 08:12 +0200, Boris Brezillon wrote:
> Le Wed, 31 May 2017 11:37:56 +0800,
> Xiaolei Li <xiaolei.li@mediatek.com> a écrit :
>
> >
> > -static void mtk_nfc_set_spare_per_sector(u32 *sps, struct mtd_info *mtd)
> > +static int mtk_nfc_set_spare_per_sector(u32 *sps, struct mtd_info *mtd)
>
> Why do you change the prototype here? You seem to always return 0
> anyway.
>
Sorry, it should be void.
But as your suggestion below, I will keep using int here to return error
if there is no entry that is less than *sps.
> > {
> > struct nand_chip *nand = mtd_to_nand(mtd);
> > - u32 spare[] = {16, 26, 27, 28, 32, 36, 40, 44,
> > - 48, 49, 50, 51, 52, 62, 63, 64};
> > - u32 eccsteps, i;
> > + struct mtk_nfc *nfc = nand_get_controller_data(nand);
> > + const u8 *spare = nfc->caps->spare_size;
> > + u32 eccsteps, i, j = 0;
>
> Can we rename 'j' into 'closest_spare'?
>
ok.
> >
> > eccsteps = mtd->writesize / nand->ecc.size;
> > *sps = mtd->oobsize / eccsteps;
> > @@ -1144,28 +1102,28 @@ static void mtk_nfc_set_spare_per_sector(u32 *sps, struct mtd_info *mtd)
> > if (nand->ecc.size == 1024)
> > *sps >>= 1;
> >
> > - for (i = 0; i < ARRAY_SIZE(spare); i++) {
> > - if (*sps <= spare[i]) {
> > - if (!i)
> > - *sps = spare[i];
> > - else if (*sps != spare[i])
> > - *sps = spare[i - 1];
> > - break;
> > + for (i = 0; i < nfc->caps->num_spare_size; i++) {
> > + if ((*sps >= spare[i]) && (spare[i] >= spare[j])) {
>
> Parenthesis around the 'a >= b' tests are unneeded:
>
> if (*sps >= spare[i] && spare[i] >= spare[j]) {
>
ok.
> > + j = i;
> > + if (*sps == spare[i])
> > + break;
> > }
> > }
> >
> > - if (i >= ARRAY_SIZE(spare))
> > - *sps = spare[ARRAY_SIZE(spare) - 1];
>
> Maybe you could return an error if you didn't find any entry that is
> less that *sps in the table, but I'm not sure this can really happen,
> and the minimum spare size seems to be the same for all IPs, this is
> something you can check before iterating over the array:
>
> if (*sps < MTK_NFC_MIN_SPARE)
> return -EINVAL;
>
OK. It seems better to check whether there is no entry that is less than
*sps.
Will add MTK_NFC_MIN_SPARE and check it.
> > + *sps = spare[j];
> >
> > if (nand->ecc.size == 1024)
> > *sps <<= 1;
> > +
> > + return 0;
> > }
Thanks.
Xiaolei
next prev parent reply other threads:[~2017-05-31 6:52 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-31 3:37 [PATCH v4 0/4] Mediatek MT2712 NAND FLASH Controller driver Xiaolei Li
2017-05-31 3:37 ` Xiaolei Li
[not found] ` <1496201877-34373-1-git-send-email-xiaolei.li-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2017-05-31 3:37 ` [PATCH v4 1/4] mtd: nand: mediatek: update DT bindings Xiaolei Li
2017-05-31 3:37 ` Xiaolei Li
[not found] ` <1496201877-34373-2-git-send-email-xiaolei.li-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2017-06-06 10:55 ` Matthias Brugger
2017-06-06 10:55 ` Matthias Brugger
[not found] ` <e9286a90-8829-8b37-476a-ac8bd057d341-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-07 7:24 ` xiaolei li
2017-06-07 7:24 ` xiaolei li
2017-06-07 7:34 ` Boris Brezillon
2017-06-07 7:34 ` Boris Brezillon
2017-06-07 7:37 ` xiaolei li
2017-06-07 7:37 ` xiaolei li
2017-05-31 3:37 ` [PATCH v4 2/4] mtd: nand: mediatek: refine register NFI_PAGEFMT setting Xiaolei Li
2017-05-31 3:37 ` Xiaolei Li
2017-05-31 3:37 ` [PATCH v4 3/4] mtd: nand: mediatek: add support for different MTK NAND FLASH Controller IP Xiaolei Li
2017-05-31 3:37 ` Xiaolei Li
2017-05-31 6:12 ` Boris Brezillon
2017-05-31 6:12 ` Boris Brezillon
2017-05-31 6:52 ` xiaolei li [this message]
2017-05-31 6:52 ` xiaolei li
2017-05-31 3:37 ` [PATCH v4 4/4] mtd: nand: mediatek: add support for MT2712 NAND FLASH Controller Xiaolei Li
2017-05-31 3:37 ` Xiaolei Li
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=1496213561.492.12.camel@mhfsdcap03 \
--to=xiaolei.li@mediatek.com \
--cc=boris.brezillon@free-electrons.com \
--cc=computersforpeace@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=robh+dt@kernel.org \
--cc=rogercc.lin@mediatek.com \
--cc=srv_heupstream@mediatek.com \
--cc=yt.shen@mediatek.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.