All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Icenowy Zheng <icenowy@aosc.xyz>
Cc: "maxime.ripard@free-electrons.com"
	<maxime.ripard@free-electrons.com>,
	"wens@csie.org" <wens@csie.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"richard@nod.at" <richard@nod.at>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>,
	"computersforpeace@gmail.com" <computersforpeace@gmail.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"linux-sunxi@googlegroups.com" <linux-sunxi@googlegroups.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v6 2/2] mtd: nand: sunxi: add reset line support
Date: Fri, 24 Jun 2016 06:16:45 +0200	[thread overview]
Message-ID: <20160624061645.20af1888@bbrezillon> (raw)
In-Reply-To: <1284641466724038@web7h.yandex.ru>

On Fri, 24 Jun 2016 07:20:38 +0800
Icenowy Zheng <icenowy@aosc.xyz> wrote:

> In my opinion, return directly PTR_ERR(nfc->reset) is OK here.
> If devm_reset_control_get_optional() return -EPROBE_DEFER, the code here will also return it. However, if we get other error, why should it return -EPROBE_DEFER again?

Sorry, I just had a brainfart :-). Your implementation is correct.
BTW, can you avoid top-posting and reply inline?

> 
> 24.06.2016, 00:01, "Boris Brezillon" <boris.brezillon@free-electrons.com>:
> > On Mon, 20 Jun 2016 12:48:38 +0800
> > Icenowy Zheng <icenowy@aosc.xyz> wrote:
> >  
> >>  The NAND controller on some sun8i chips needs its reset line to be
> >>  deasserted before they can enter working state.
> >>
> >>  Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
> >>  ---
> >>    Changes in v2:
> >>      - Corrected the error checking code of reset line.
> >>
> >>    Changes in v3:
> >>      - Corrected a more serious error brought in the "fix" of v2.
> >>
> >>    Changes in v4:
> >>      - Removed unneeded code block after "else".
> >>
> >>    Changes in v5:
> >>      - Added reassertion code in case of initialization error and device
> >>        remove.
> >>
> >>    Changes in v6:
> >>      - Fixed a resource leak by not using goto to exit in case of error.
> >>
> >>   drivers/mtd/nand/sunxi_nand.c | 28 +++++++++++++++++++++++++---
> >>   1 file changed, 25 insertions(+), 3 deletions(-)
> >>
> >>  diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
> >>  index a83a690..08d5e88 100644
> >>  --- a/drivers/mtd/nand/sunxi_nand.c
> >>  +++ b/drivers/mtd/nand/sunxi_nand.c
> >>  @@ -39,6 +39,7 @@
> >>   #include <linux/gpio.h>
> >>   #include <linux/interrupt.h>
> >>   #include <linux/iopoll.h>
> >>  +#include <linux/reset.h>
> >>
> >>   #define NFC_REG_CTL 0x0000
> >>   #define NFC_REG_ST 0x0004
> >>  @@ -269,6 +270,7 @@ struct sunxi_nfc {
> >>           void __iomem *regs;
> >>           struct clk *ahb_clk;
> >>           struct clk *mod_clk;
> >>  + struct reset_control *reset;
> >>           unsigned long assigned_cs;
> >>           unsigned long clk_rate;
> >>           struct list_head chips;
> >>  @@ -1871,26 +1873,42 @@ static int sunxi_nfc_probe(struct platform_device *pdev)
> >>           if (ret)
> >>                   goto out_ahb_clk_unprepare;
> >>
> >>  + nfc->reset = devm_reset_control_get_optional(dev, "ahb");
> >>  +
> >>  + if (!IS_ERR(nfc->reset)) {
> >>  + ret = reset_control_deassert(nfc->reset);
> >>  + if (ret) {
> >>  + dev_err(dev, "reset err %d\n", ret);
> >>  + goto out_mod_clk_unprepare;
> >>  + }
> >>  + } else if (PTR_ERR(nfc->reset) != -ENOENT) {
> >>  + ret = PTR_ERR(nfc->reset);  
> >
> > You should return -EDEFER_PROBE here.
> >
> > And can you please rebase this series on top of nand/next [1]?
> >
> > [1]https://github.com/linux-nand/linux/tree/nand/next  

WARNING: multiple messages have this Message-ID (diff)
From: boris.brezillon@free-electrons.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 2/2] mtd: nand: sunxi: add reset line support
Date: Fri, 24 Jun 2016 06:16:45 +0200	[thread overview]
Message-ID: <20160624061645.20af1888@bbrezillon> (raw)
In-Reply-To: <1284641466724038@web7h.yandex.ru>

On Fri, 24 Jun 2016 07:20:38 +0800
Icenowy Zheng <icenowy@aosc.xyz> wrote:

> In my opinion, return directly PTR_ERR(nfc->reset) is OK here.
> If devm_reset_control_get_optional() return -EPROBE_DEFER, the code here will also return it. However, if we get other error, why should it return -EPROBE_DEFER again?

Sorry, I just had a brainfart :-). Your implementation is correct.
BTW, can you avoid top-posting and reply inline?

> 
> 24.06.2016, 00:01, "Boris Brezillon" <boris.brezillon@free-electrons.com>:
> > On Mon, 20 Jun 2016 12:48:38 +0800
> > Icenowy Zheng <icenowy@aosc.xyz> wrote:
> >  
> >> ?The NAND controller on some sun8i chips needs its reset line to be
> >> ?deasserted before they can enter working state.
> >>
> >> ?Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
> >> ?---
> >> ???Changes in v2:
> >> ?????- Corrected the error checking code of reset line.
> >>
> >> ???Changes in v3:
> >> ?????- Corrected a more serious error brought in the "fix" of v2.
> >>
> >> ???Changes in v4:
> >> ?????- Removed unneeded code block after "else".
> >>
> >> ???Changes in v5:
> >> ?????- Added reassertion code in case of initialization error and device
> >> ???????remove.
> >>
> >> ???Changes in v6:
> >> ?????- Fixed a resource leak by not using goto to exit in case of error.
> >>
> >> ??drivers/mtd/nand/sunxi_nand.c | 28 +++++++++++++++++++++++++---
> >> ??1 file changed, 25 insertions(+), 3 deletions(-)
> >>
> >> ?diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
> >> ?index a83a690..08d5e88 100644
> >> ?--- a/drivers/mtd/nand/sunxi_nand.c
> >> ?+++ b/drivers/mtd/nand/sunxi_nand.c
> >> ?@@ -39,6 +39,7 @@
> >> ??#include <linux/gpio.h>
> >> ??#include <linux/interrupt.h>
> >> ??#include <linux/iopoll.h>
> >> ?+#include <linux/reset.h>
> >>
> >> ??#define NFC_REG_CTL 0x0000
> >> ??#define NFC_REG_ST 0x0004
> >> ?@@ -269,6 +270,7 @@ struct sunxi_nfc {
> >> ??????????void __iomem *regs;
> >> ??????????struct clk *ahb_clk;
> >> ??????????struct clk *mod_clk;
> >> ?+ struct reset_control *reset;
> >> ??????????unsigned long assigned_cs;
> >> ??????????unsigned long clk_rate;
> >> ??????????struct list_head chips;
> >> ?@@ -1871,26 +1873,42 @@ static int sunxi_nfc_probe(struct platform_device *pdev)
> >> ??????????if (ret)
> >> ??????????????????goto out_ahb_clk_unprepare;
> >>
> >> ?+ nfc->reset = devm_reset_control_get_optional(dev, "ahb");
> >> ?+
> >> ?+ if (!IS_ERR(nfc->reset)) {
> >> ?+ ret = reset_control_deassert(nfc->reset);
> >> ?+ if (ret) {
> >> ?+ dev_err(dev, "reset err %d\n", ret);
> >> ?+ goto out_mod_clk_unprepare;
> >> ?+ }
> >> ?+ } else if (PTR_ERR(nfc->reset) != -ENOENT) {
> >> ?+ ret = PTR_ERR(nfc->reset);  
> >
> > You should return -EDEFER_PROBE here.
> >
> > And can you please rebase this series on top of nand/next [1]?
> >
> > [1]https://github.com/linux-nand/linux/tree/nand/next  

WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org>
Cc: "maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org"
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	"wens-jdAy2FN1RRM@public.gmane.org"
	<wens-jdAy2FN1RRM@public.gmane.org>,
	"robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
	<robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"richard-/L3Ra7n9ekc@public.gmane.org"
	<richard-/L3Ra7n9ekc@public.gmane.org>,
	"dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org"
	<dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	"computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
	<computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org"
	<linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH v6 2/2] mtd: nand: sunxi: add reset line support
Date: Fri, 24 Jun 2016 06:16:45 +0200	[thread overview]
Message-ID: <20160624061645.20af1888@bbrezillon> (raw)
In-Reply-To: <1284641466724038-tvSLaYVQeptuio3avFS2gg@public.gmane.org>

On Fri, 24 Jun 2016 07:20:38 +0800
Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org> wrote:

> In my opinion, return directly PTR_ERR(nfc->reset) is OK here.
> If devm_reset_control_get_optional() return -EPROBE_DEFER, the code here will also return it. However, if we get other error, why should it return -EPROBE_DEFER again?

Sorry, I just had a brainfart :-). Your implementation is correct.
BTW, can you avoid top-posting and reply inline?

> 
> 24.06.2016, 00:01, "Boris Brezillon" <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>:
> > On Mon, 20 Jun 2016 12:48:38 +0800
> > Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org> wrote:
> >  
> >>  The NAND controller on some sun8i chips needs its reset line to be
> >>  deasserted before they can enter working state.
> >>
> >>  Signed-off-by: Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org>
> >>  ---
> >>    Changes in v2:
> >>      - Corrected the error checking code of reset line.
> >>
> >>    Changes in v3:
> >>      - Corrected a more serious error brought in the "fix" of v2.
> >>
> >>    Changes in v4:
> >>      - Removed unneeded code block after "else".
> >>
> >>    Changes in v5:
> >>      - Added reassertion code in case of initialization error and device
> >>        remove.
> >>
> >>    Changes in v6:
> >>      - Fixed a resource leak by not using goto to exit in case of error.
> >>
> >>   drivers/mtd/nand/sunxi_nand.c | 28 +++++++++++++++++++++++++---
> >>   1 file changed, 25 insertions(+), 3 deletions(-)
> >>
> >>  diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
> >>  index a83a690..08d5e88 100644
> >>  --- a/drivers/mtd/nand/sunxi_nand.c
> >>  +++ b/drivers/mtd/nand/sunxi_nand.c
> >>  @@ -39,6 +39,7 @@
> >>   #include <linux/gpio.h>
> >>   #include <linux/interrupt.h>
> >>   #include <linux/iopoll.h>
> >>  +#include <linux/reset.h>
> >>
> >>   #define NFC_REG_CTL 0x0000
> >>   #define NFC_REG_ST 0x0004
> >>  @@ -269,6 +270,7 @@ struct sunxi_nfc {
> >>           void __iomem *regs;
> >>           struct clk *ahb_clk;
> >>           struct clk *mod_clk;
> >>  + struct reset_control *reset;
> >>           unsigned long assigned_cs;
> >>           unsigned long clk_rate;
> >>           struct list_head chips;
> >>  @@ -1871,26 +1873,42 @@ static int sunxi_nfc_probe(struct platform_device *pdev)
> >>           if (ret)
> >>                   goto out_ahb_clk_unprepare;
> >>
> >>  + nfc->reset = devm_reset_control_get_optional(dev, "ahb");
> >>  +
> >>  + if (!IS_ERR(nfc->reset)) {
> >>  + ret = reset_control_deassert(nfc->reset);
> >>  + if (ret) {
> >>  + dev_err(dev, "reset err %d\n", ret);
> >>  + goto out_mod_clk_unprepare;
> >>  + }
> >>  + } else if (PTR_ERR(nfc->reset) != -ENOENT) {
> >>  + ret = PTR_ERR(nfc->reset);  
> >
> > You should return -EDEFER_PROBE here.
> >
> > And can you please rebase this series on top of nand/next [1]?
> >
> > [1]https://github.com/linux-nand/linux/tree/nand/next  

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

  reply	other threads:[~2016-06-24  4:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-20  4:48 [PATCH v6 1/2] mtd: nand: sunxi: update DT bindings Icenowy Zheng
2016-06-20  4:48 ` Icenowy Zheng
2016-06-20  4:48 ` Icenowy Zheng
2016-06-20  4:48 ` [PATCH v6 2/2] mtd: nand: sunxi: add reset line support Icenowy Zheng
2016-06-20  4:48   ` Icenowy Zheng
2016-06-20  4:48   ` Icenowy Zheng
2016-06-20  8:56   ` Maxime Ripard
2016-06-20  8:56     ` Maxime Ripard
2016-06-20  8:56     ` Maxime Ripard
2016-06-23 16:01   ` Boris Brezillon
2016-06-23 16:01     ` Boris Brezillon
2016-06-23 16:01     ` Boris Brezillon
2016-06-23 23:20     ` Icenowy Zheng
2016-06-23 23:20       ` Icenowy Zheng
2016-06-23 23:20       ` Icenowy Zheng
2016-06-24  4:16       ` Boris Brezillon [this message]
2016-06-24  4:16         ` Boris Brezillon
2016-06-24  4:16         ` Boris Brezillon
2016-06-20  8:55 ` [PATCH v6 1/2] mtd: nand: sunxi: update DT bindings Maxime Ripard
2016-06-20  8:55   ` Maxime Ripard
2016-06-20  8:55   ` Maxime Ripard

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=20160624061645.20af1888@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --cc=computersforpeace@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=icenowy@aosc.xyz \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=wens@csie.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: 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.