From: Lee Jones <lee.jones@linaro.org>
To: Guenter Roeck <linux@roeck-us.net>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel@stlinux.com,
a.zummo@towertech.it, rtc-linux@googlegroups.com, wim@iguana.be,
linux-watchdog@vger.kernel.org, devicetree@vger.kernel.org,
arnd@arndb.de, David Paris <david.paris@st.com>
Subject: Re: [PATCH 6/8] watchdog: st_wdt: Add new driver for ST's LPC Watchdog
Date: Thu, 18 Dec 2014 08:26:52 +0000 [thread overview]
Message-ID: <20141218082652.GP13885@x1> (raw)
In-Reply-To: <20141217180251.GA29914@roeck-us.net>
On Wed, 17 Dec 2014, Guenter Roeck wrote:
> On Wed, Dec 17, 2014 at 04:45:25PM +0000, Lee Jones wrote:
> > Signed-off-by: David Paris <david.paris@st.com>
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
>
> Hi Lee and David,
>
> I still have a couple of comments below. Sorry I didn't catch those earlier.
>
> Thanks,
> Guenter
>
> > ---
> > drivers/watchdog/Kconfig | 13 ++
> > drivers/watchdog/Makefile | 1 +
> > drivers/watchdog/st_wdt.c | 323 ++++++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 337 insertions(+)
> > create mode 100644 drivers/watchdog/st_wdt.c
Chopping all the crud.
[...]
> > +static struct of_device_id st_wdog_match[] = {
> > + {
> > + .compatible = "st,stih407-lpc",
> > + .data = (void *)&stih407_syscfg,
>
> Nitpick: typecast to and from void * is not necessary.
Actually that's not true, but it is superfluous in this case.
I will fix-up.
[...]
> > +static int st_wdog_probe(struct platform_device *pdev)
> > +{
> > + const struct of_device_id *match;
> > + struct device_node *np = pdev->dev.of_node;
> > + struct st_wdog *st_wdog;
> > + struct regmap *regmap;
> > + struct resource *res;
> > + struct clk *clk;
> > + void __iomem *base;
> > + uint32_t mode;
> > + int ret;
[...]
> > + clk = clk_get(&pdev->dev, NULL);
> > + if (IS_ERR(clk)) {
> > + dev_err(&pdev->dev, "Unable to request clock\n");
> > + return PTR_ERR(clk);
> > + }
> > + clk_prepare_enable(st_wdog->clk);
>
> How does this work ? st_wdog->clk isn't set yet.
Great spot. That should be 'clk'.
It works because the LPC clk is already on.
> > +
> > + st_wdog->dev = &pdev->dev;
> > + st_wdog->base = base;
> > + st_wdog->clk = clk;
> > + st_wdog->syscfg->regmap = regmap;
> > + st_wdog->warm_reset = of_property_read_bool(np, "st,warm_reset");
> > + st_wdog->clkrate = clk_get_rate(st_wdog->clk);
> > +
> > + if (!st_wdog->clkrate) {
> > + dev_err(&pdev->dev, "Unable to fetch clock rate\n");
>
> I think this is missing
> clk_disable_unprepare();
> clk_put();
>
> Same for the rest of the error path handling below.
Actually instead of clk_put we should be using s/clk_get/devm_clk_get/.
You're right about the error paths. I will enforce a better one.
Thanks.
[...]
> > +#ifdef CONFIG_PM
>
> I think this needs to be CONFIG_PM_SLEEP.
> Another option might be to drop the #ifdef entirely and use
> __maybe_unused instead.
Hmmm... what version is this?
[2 mins pass]
Oh rubbish. I've been a silly boy!
[spoiler alert: take a look at the end of the RTC driver patch]
Will be fixed in v3.
[...]
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/8] watchdog: st_wdt: Add new driver for ST's LPC Watchdog
Date: Thu, 18 Dec 2014 08:26:52 +0000 [thread overview]
Message-ID: <20141218082652.GP13885@x1> (raw)
In-Reply-To: <20141217180251.GA29914@roeck-us.net>
On Wed, 17 Dec 2014, Guenter Roeck wrote:
> On Wed, Dec 17, 2014 at 04:45:25PM +0000, Lee Jones wrote:
> > Signed-off-by: David Paris <david.paris@st.com>
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
>
> Hi Lee and David,
>
> I still have a couple of comments below. Sorry I didn't catch those earlier.
>
> Thanks,
> Guenter
>
> > ---
> > drivers/watchdog/Kconfig | 13 ++
> > drivers/watchdog/Makefile | 1 +
> > drivers/watchdog/st_wdt.c | 323 ++++++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 337 insertions(+)
> > create mode 100644 drivers/watchdog/st_wdt.c
Chopping all the crud.
[...]
> > +static struct of_device_id st_wdog_match[] = {
> > + {
> > + .compatible = "st,stih407-lpc",
> > + .data = (void *)&stih407_syscfg,
>
> Nitpick: typecast to and from void * is not necessary.
Actually that's not true, but it is superfluous in this case.
I will fix-up.
[...]
> > +static int st_wdog_probe(struct platform_device *pdev)
> > +{
> > + const struct of_device_id *match;
> > + struct device_node *np = pdev->dev.of_node;
> > + struct st_wdog *st_wdog;
> > + struct regmap *regmap;
> > + struct resource *res;
> > + struct clk *clk;
> > + void __iomem *base;
> > + uint32_t mode;
> > + int ret;
[...]
> > + clk = clk_get(&pdev->dev, NULL);
> > + if (IS_ERR(clk)) {
> > + dev_err(&pdev->dev, "Unable to request clock\n");
> > + return PTR_ERR(clk);
> > + }
> > + clk_prepare_enable(st_wdog->clk);
>
> How does this work ? st_wdog->clk isn't set yet.
Great spot. That should be 'clk'.
It works because the LPC clk is already on.
> > +
> > + st_wdog->dev = &pdev->dev;
> > + st_wdog->base = base;
> > + st_wdog->clk = clk;
> > + st_wdog->syscfg->regmap = regmap;
> > + st_wdog->warm_reset = of_property_read_bool(np, "st,warm_reset");
> > + st_wdog->clkrate = clk_get_rate(st_wdog->clk);
> > +
> > + if (!st_wdog->clkrate) {
> > + dev_err(&pdev->dev, "Unable to fetch clock rate\n");
>
> I think this is missing
> clk_disable_unprepare();
> clk_put();
>
> Same for the rest of the error path handling below.
Actually instead of clk_put we should be using s/clk_get/devm_clk_get/.
You're right about the error paths. I will enforce a better one.
Thanks.
[...]
> > +#ifdef CONFIG_PM
>
> I think this needs to be CONFIG_PM_SLEEP.
> Another option might be to drop the #ifdef entirely and use
> __maybe_unused instead.
Hmmm... what version is this?
[2 mins pass]
Oh rubbish. I've been a silly boy!
[spoiler alert: take a look at the end of the RTC driver patch]
Will be fixed in v3.
[...]
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kernel-F5mvAk5X5gdBDgjK7y7TUQ@public.gmane.org,
a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org,
rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org,
linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
David Paris <david.paris-qxv4g6HH51o@public.gmane.org>
Subject: Re: [PATCH 6/8] watchdog: st_wdt: Add new driver for ST's LPC Watchdog
Date: Thu, 18 Dec 2014 08:26:52 +0000 [thread overview]
Message-ID: <20141218082652.GP13885@x1> (raw)
In-Reply-To: <20141217180251.GA29914-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
On Wed, 17 Dec 2014, Guenter Roeck wrote:
> On Wed, Dec 17, 2014 at 04:45:25PM +0000, Lee Jones wrote:
> > Signed-off-by: David Paris <david.paris-qxv4g6HH51o@public.gmane.org>
> > Signed-off-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>
> Hi Lee and David,
>
> I still have a couple of comments below. Sorry I didn't catch those earlier.
>
> Thanks,
> Guenter
>
> > ---
> > drivers/watchdog/Kconfig | 13 ++
> > drivers/watchdog/Makefile | 1 +
> > drivers/watchdog/st_wdt.c | 323 ++++++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 337 insertions(+)
> > create mode 100644 drivers/watchdog/st_wdt.c
Chopping all the crud.
[...]
> > +static struct of_device_id st_wdog_match[] = {
> > + {
> > + .compatible = "st,stih407-lpc",
> > + .data = (void *)&stih407_syscfg,
>
> Nitpick: typecast to and from void * is not necessary.
Actually that's not true, but it is superfluous in this case.
I will fix-up.
[...]
> > +static int st_wdog_probe(struct platform_device *pdev)
> > +{
> > + const struct of_device_id *match;
> > + struct device_node *np = pdev->dev.of_node;
> > + struct st_wdog *st_wdog;
> > + struct regmap *regmap;
> > + struct resource *res;
> > + struct clk *clk;
> > + void __iomem *base;
> > + uint32_t mode;
> > + int ret;
[...]
> > + clk = clk_get(&pdev->dev, NULL);
> > + if (IS_ERR(clk)) {
> > + dev_err(&pdev->dev, "Unable to request clock\n");
> > + return PTR_ERR(clk);
> > + }
> > + clk_prepare_enable(st_wdog->clk);
>
> How does this work ? st_wdog->clk isn't set yet.
Great spot. That should be 'clk'.
It works because the LPC clk is already on.
> > +
> > + st_wdog->dev = &pdev->dev;
> > + st_wdog->base = base;
> > + st_wdog->clk = clk;
> > + st_wdog->syscfg->regmap = regmap;
> > + st_wdog->warm_reset = of_property_read_bool(np, "st,warm_reset");
> > + st_wdog->clkrate = clk_get_rate(st_wdog->clk);
> > +
> > + if (!st_wdog->clkrate) {
> > + dev_err(&pdev->dev, "Unable to fetch clock rate\n");
>
> I think this is missing
> clk_disable_unprepare();
> clk_put();
>
> Same for the rest of the error path handling below.
Actually instead of clk_put we should be using s/clk_get/devm_clk_get/.
You're right about the error paths. I will enforce a better one.
Thanks.
[...]
> > +#ifdef CONFIG_PM
>
> I think this needs to be CONFIG_PM_SLEEP.
> Another option might be to drop the #ifdef entirely and use
> __maybe_unused instead.
Hmmm... what version is this?
[2 mins pass]
Oh rubbish. I've been a silly boy!
[spoiler alert: take a look at the end of the RTC driver patch]
Will be fixed in v3.
[...]
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-12-18 8:26 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-17 16:45 [PATCH v2 0/8] watchdog: rtc: New driver(s) for ST's LPC IP Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` [PATCH 1/8] mfd: dt-bindings: Provide human readable defines for LPC mode choosing Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` [PATCH 2/8] ARM: multi_v7_defconfig: Enable support for ST's LPC Watchdog Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` [PATCH 3/8] ARM: multi_v7_defconfig: Enable support for ST's LPC RTC Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` [PATCH 4/8] ARM: STi: DT: STiH407: Add Device Tree node for the LPC Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` [PATCH 5/8] watchdog: bindings: Provide ST bindings for ST's LPC Watchdog device Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 21:54 ` Arnd Bergmann
2014-12-17 21:54 ` Arnd Bergmann
2014-12-17 21:54 ` Arnd Bergmann
2014-12-18 8:13 ` Lee Jones
2014-12-18 8:13 ` Lee Jones
2014-12-18 8:13 ` Lee Jones
2014-12-18 8:46 ` Arnd Bergmann
2014-12-18 8:46 ` Arnd Bergmann
2014-12-18 8:46 ` Arnd Bergmann
2014-12-18 9:04 ` Lee Jones
2014-12-18 9:04 ` Lee Jones
2014-12-18 9:04 ` Lee Jones
2014-12-18 9:15 ` Arnd Bergmann
2014-12-18 9:15 ` Arnd Bergmann
2014-12-18 9:28 ` Lee Jones
2014-12-18 9:28 ` Lee Jones
2014-12-18 9:28 ` Lee Jones
2014-12-17 16:45 ` [PATCH 6/8] watchdog: st_wdt: Add new driver for ST's LPC Watchdog Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 18:02 ` Guenter Roeck
2014-12-17 18:02 ` Guenter Roeck
2014-12-18 8:26 ` Lee Jones [this message]
2014-12-18 8:26 ` Lee Jones
2014-12-18 8:26 ` Lee Jones
2014-12-18 16:00 ` Guenter Roeck
2014-12-18 16:00 ` Guenter Roeck
2014-12-18 17:20 ` Lee Jones
2014-12-18 17:20 ` Lee Jones
2014-12-18 17:20 ` Lee Jones
2014-12-18 17:20 ` Lee Jones
2014-12-18 8:43 ` [STLinux Kernel] " Peter Griffin
2014-12-18 8:43 ` Peter Griffin
2014-12-18 8:43 ` Peter Griffin
2014-12-18 9:08 ` Lee Jones
2014-12-18 9:08 ` Lee Jones
2014-12-18 9:08 ` Lee Jones
2014-12-18 9:08 ` Lee Jones
2014-12-17 16:45 ` [PATCH 7/8] rtc: bindings: Provide ST bindings for ST's LPC RTC device Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` [PATCH 8/8] rtc: st: add new driver for ST's LPC RTC Lee Jones
2014-12-17 16:45 ` Lee Jones
2014-12-17 16:45 ` Lee Jones
-- strict thread matches above, loose matches on Subject: below --
2014-12-15 11:25 [PATCH 0/8] mfd: watchdog: rtc: New driver for ST's LPC IP Lee Jones
2014-12-15 11:25 ` [PATCH 6/8] watchdog: st_wdt: Add new driver for ST's LPC Watchdog Lee Jones
2014-12-15 11:25 ` Lee Jones
2014-12-15 12:29 ` David Paris
2014-12-15 12:29 ` David Paris
2014-12-15 12:29 ` David Paris
2014-12-15 12:52 ` David Paris
2014-12-15 12:52 ` David Paris
2014-12-15 12:52 ` David Paris
2014-12-15 14:15 ` Guenter Roeck
2014-12-15 14:15 ` Guenter Roeck
2014-12-15 14:15 ` Guenter Roeck
2014-12-15 16:23 ` Guenter Roeck
2014-12-15 16:23 ` Guenter Roeck
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=20141218082652.GP13885@x1 \
--to=lee.jones@linaro.org \
--cc=a.zummo@towertech.it \
--cc=arnd@arndb.de \
--cc=david.paris@st.com \
--cc=devicetree@vger.kernel.org \
--cc=kernel@stlinux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=rtc-linux@googlegroups.com \
--cc=wim@iguana.be \
/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.