From: Brian Norris <computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> To: "Rafał Miłecki" <zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Hauke Mehrtens <hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org>, Kamal Dasu <kdasu.kdev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Frank Rowand <frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: Re: [PATCH 2/3] mtd: nand: read (from DT) and store ECC algorithm Date: Fri, 1 Apr 2016 09:07:22 -0700 [thread overview] Message-ID: <20160401160722.GC117117@google.com> (raw) In-Reply-To: <1455300685-27009-2-git-send-email-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> On Fri, Feb 12, 2016 at 07:11:24PM +0100, Rafał Miłecki wrote: > This will allow drivers handle ECC properly. > > Signed-off-by: Rafał Miłecki <zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > --- > drivers/mtd/nand/nand_base.c | 6 +++++- > include/linux/mtd/nand.h | 1 + > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c > index f2c8ff3..ef977f3 100644 > --- a/drivers/mtd/nand/nand_base.c > +++ b/drivers/mtd/nand/nand_base.c > @@ -3979,7 +3979,7 @@ ident_done: > static int nand_dt_init(struct nand_chip *chip) > { > struct device_node *dn = nand_get_flash_node(chip); > - int ecc_mode, ecc_strength, ecc_step; > + int ecc_mode, ecc_algo, ecc_strength, ecc_step; > > if (!dn) > return 0; > @@ -3991,6 +3991,7 @@ static int nand_dt_init(struct nand_chip *chip) > chip->bbt_options |= NAND_BBT_USE_FLASH; > > ecc_mode = of_get_nand_ecc_mode(dn); > + ecc_algo = of_get_nand_ecc_algo(dn); > ecc_strength = of_get_nand_ecc_strength(dn); > ecc_step = of_get_nand_ecc_step_size(dn); > > @@ -4003,6 +4004,9 @@ static int nand_dt_init(struct nand_chip *chip) > if (ecc_mode >= 0) > chip->ecc.mode = ecc_mode; > > + if (ecc_algo >= 0) > + chip->ecc.algo = ecc_algo; > + While this might appear to handle the absence of the nand-ecc-algo property correctly, this isn't safe. This means that any existing DT without the property will get treated as Hamming ECC. Perhaps we need the enum to have a 0 value of 'NAND_ECC_ALGO_UNKNOWN' or something like that? Brian > if (ecc_strength >= 0) > chip->ecc.strength = ecc_strength; > > diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h > index 25854d2..8deca1b 100644 > --- a/include/linux/mtd/nand.h > +++ b/include/linux/mtd/nand.h > @@ -513,6 +513,7 @@ struct nand_hw_control { > */ > struct nand_ecc_ctrl { > nand_ecc_modes_t mode; > + enum nand_ecc_algo algo; > int steps; > int size; > int bytes; > -- > 1.8.4.5 > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Brian Norris <computersforpeace@gmail.com> To: "Rafał Miłecki" <zajec5@gmail.com> Cc: linux-mtd@lists.infradead.org, Hauke Mehrtens <hauke@hauke-m.de>, Kamal Dasu <kdasu.kdev@gmail.com>, Rob Herring <robh+dt@kernel.org>, Frank Rowand <frowand.list@gmail.com>, Grant Likely <grant.likely@linaro.org>, devicetree@vger.kernel.org Subject: Re: [PATCH 2/3] mtd: nand: read (from DT) and store ECC algorithm Date: Fri, 1 Apr 2016 09:07:22 -0700 [thread overview] Message-ID: <20160401160722.GC117117@google.com> (raw) In-Reply-To: <1455300685-27009-2-git-send-email-zajec5@gmail.com> On Fri, Feb 12, 2016 at 07:11:24PM +0100, Rafał Miłecki wrote: > This will allow drivers handle ECC properly. > > Signed-off-by: Rafał Miłecki <zajec5@gmail.com> > --- > drivers/mtd/nand/nand_base.c | 6 +++++- > include/linux/mtd/nand.h | 1 + > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c > index f2c8ff3..ef977f3 100644 > --- a/drivers/mtd/nand/nand_base.c > +++ b/drivers/mtd/nand/nand_base.c > @@ -3979,7 +3979,7 @@ ident_done: > static int nand_dt_init(struct nand_chip *chip) > { > struct device_node *dn = nand_get_flash_node(chip); > - int ecc_mode, ecc_strength, ecc_step; > + int ecc_mode, ecc_algo, ecc_strength, ecc_step; > > if (!dn) > return 0; > @@ -3991,6 +3991,7 @@ static int nand_dt_init(struct nand_chip *chip) > chip->bbt_options |= NAND_BBT_USE_FLASH; > > ecc_mode = of_get_nand_ecc_mode(dn); > + ecc_algo = of_get_nand_ecc_algo(dn); > ecc_strength = of_get_nand_ecc_strength(dn); > ecc_step = of_get_nand_ecc_step_size(dn); > > @@ -4003,6 +4004,9 @@ static int nand_dt_init(struct nand_chip *chip) > if (ecc_mode >= 0) > chip->ecc.mode = ecc_mode; > > + if (ecc_algo >= 0) > + chip->ecc.algo = ecc_algo; > + While this might appear to handle the absence of the nand-ecc-algo property correctly, this isn't safe. This means that any existing DT without the property will get treated as Hamming ECC. Perhaps we need the enum to have a 0 value of 'NAND_ECC_ALGO_UNKNOWN' or something like that? Brian > if (ecc_strength >= 0) > chip->ecc.strength = ecc_strength; > > diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h > index 25854d2..8deca1b 100644 > --- a/include/linux/mtd/nand.h > +++ b/include/linux/mtd/nand.h > @@ -513,6 +513,7 @@ struct nand_hw_control { > */ > struct nand_ecc_ctrl { > nand_ecc_modes_t mode; > + enum nand_ecc_algo algo; > int steps; > int size; > int bytes; > -- > 1.8.4.5 >
next prev parent reply other threads:[~2016-04-01 16:07 UTC|newest] Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-02-12 18:11 [PATCH 1/3] of: mtd: add helper reading "nand-ecc-algo" from DT Rafał Miłecki 2016-02-12 18:11 ` Rafał Miłecki 2016-02-15 21:28 ` Kamal Dasu [not found] ` <1455300685-27009-1-git-send-email-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-02-12 18:11 ` [PATCH 2/3] mtd: nand: read (from DT) and store ECC algorithm Rafał Miłecki 2016-02-12 18:11 ` Rafał Miłecki [not found] ` <1455300685-27009-2-git-send-email-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-02-15 21:31 ` Kamal Dasu 2016-02-15 21:31 ` Kamal Dasu 2016-04-01 16:02 ` Brian Norris 2016-04-01 16:02 ` Brian Norris 2016-04-01 16:07 ` Brian Norris [this message] 2016-04-01 16:07 ` Brian Norris [not found] ` <20160401160722.GC117117-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> 2016-04-01 19:32 ` Rafał Miłecki 2016-04-01 19:32 ` Rafał Miłecki [not found] ` <CACna6rz6mYSxAr1oSjcLc__sSKM1XdUf-cGOFanGvuij0nNC5Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-04-01 20:07 ` Brian Norris 2016-04-01 20:07 ` Brian Norris 2016-04-01 21:23 ` Rafał Miłecki 2016-04-01 21:23 ` Rafał Miłecki 2016-02-12 18:11 ` [PATCH 3/3] mtd: brcmnand: fix check for Hamming algorithm Rafał Miłecki 2016-02-12 18:11 ` Rafał Miłecki [not found] ` <1455300685-27009-3-git-send-email-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-02-15 21:30 ` Kamal Dasu 2016-02-15 21:30 ` Kamal Dasu 2016-04-01 16:07 ` Brian Norris 2016-04-01 16:07 ` Brian Norris 2016-02-15 21:43 ` [PATCH 1/3] of: mtd: add helper reading "nand-ecc-algo" from DT Kamal Dasu 2016-02-15 21:43 ` Kamal Dasu 2016-02-22 2:54 ` Rob Herring 2016-02-22 2:54 ` Rob Herring 2016-02-24 13:46 ` Boris Brezillon 2016-02-24 13:46 ` Boris Brezillon 2016-02-25 19:56 ` Rafał Miłecki 2016-02-25 19:56 ` Rafał Miłecki [not found] ` <CACna6rxemvBOu9fy9KP0327TsqonO7dFY5EsQjf1k9Ln6hX8cw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-02-25 20:09 ` Boris Brezillon 2016-02-25 20:09 ` Boris Brezillon 2016-02-26 16:30 ` Rafał Miłecki 2016-02-26 16:30 ` Rafał Miłecki [not found] ` <CACna6ryVuqSLv8WdzzGUQzpA-F35JxXoHoa2jcLzZeHaXtoexA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-02-26 16:55 ` Boris Brezillon 2016-02-26 16:55 ` Boris Brezillon 2016-02-26 21:24 ` Rafał Miłecki 2016-02-26 21:24 ` Rafał Miłecki [not found] ` <CACna6rzRROfYwagsBGo5b8d_bydUBrJ=9RvGZSt1G85xP=gKaw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-02-26 21:28 ` Boris Brezillon 2016-02-26 21:28 ` Boris Brezillon 2016-04-01 16:01 ` Brian Norris 2016-04-01 16:01 ` Brian Norris
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=20160401160722.GC117117@google.com \ --to=computersforpeace-re5jqeeqqe8avxtiumwx3w@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ --cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=hauke-5/S+JYg5SzeELgA04lAiVw@public.gmane.org \ --cc=kdasu.kdev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ --cc=linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ /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: linkBe 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.