From: Michal Simek <monstr@monstr.eu>
To: Rob Herring <robherring2@gmail.com>
Cc: Michal Simek <michal.simek@xilinx.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Wim Van Sebroeck <wim@iguana.be>,
Grant Likely <grant.likely@linaro.org>,
Rob Herring <robh+dt@kernel.org>,
linux-watchdog@vger.kernel.org,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>
Subject: Re: [PATCH 07/10] watchdog: xilinx: Fix OF binding
Date: Mon, 03 Feb 2014 08:59:43 +0100 [thread overview]
Message-ID: <52EF4C6F.8040701@monstr.eu> (raw)
In-Reply-To: <CAL_JsqJ+Dc9PFVYcxHvLiG9unKQX-kEc1fsYsieyTjf-AN3j=A@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4214 bytes --]
On 01/31/2014 06:33 PM, Rob Herring wrote:
> On Fri, Jan 31, 2014 at 8:18 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>> Use of_property_read_u32 functions to clean OF probing.
>
> The subject is a bit misleading as this doesn't really fix anything.
fair enough. Will change it.
>
>>
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>> ---
>>
>> drivers/watchdog/of_xilinx_wdt.c | 25 ++++++++++---------------
>> 1 file changed, 10 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/watchdog/of_xilinx_wdt.c b/drivers/watchdog/of_xilinx_wdt.c
>> index c229cc4..475440a6 100644
>> --- a/drivers/watchdog/of_xilinx_wdt.c
>> +++ b/drivers/watchdog/of_xilinx_wdt.c
>> @@ -147,8 +147,7 @@ static u32 xwdt_selftest(struct xwdt_device *xdev)
>> static int xwdt_probe(struct platform_device *pdev)
>> {
>> int rc;
>> - u32 *tmptr;
>> - u32 *pfreq;
>> + u32 pfreq, enable_once;
>> struct resource *res;
>> struct xwdt_device *xdev;
>> bool no_timeout = false;
>> @@ -168,28 +167,24 @@ static int xwdt_probe(struct platform_device *pdev)
>> if (IS_ERR(xdev->base))
>> return PTR_ERR(xdev->base);
>>
>> - pfreq = (u32 *)of_get_property(pdev->dev.of_node,
>> - "clock-frequency", NULL);
>> -
>> - if (pfreq == NULL) {
>> + rc = of_property_read_u32(pdev->dev.of_node, "clock-frequency", &pfreq);
>> + if (rc) {
>> dev_warn(&pdev->dev,
>> "The watchdog clock frequency cannot be obtained\n");
>> no_timeout = true;
>
> You can kill this...
>
>> }
>>
>> - tmptr = (u32 *)of_get_property(pdev->dev.of_node,
>> - "xlnx,wdt-interval", NULL);
>> - if (tmptr == NULL) {
>> + rc = of_property_read_u32(pdev->dev.of_node, "xlnx,wdt-interval",
>> + &xdev->wdt_interval);
>> + if (rc) {
>> dev_warn(&pdev->dev,
>> "Parameter \"xlnx,wdt-interval\" not found\n");
>> no_timeout = true;
>
> and this...
>
>> - } else {
>> - xdev->wdt_interval = *tmptr;
>> }
>>
>> - tmptr = (u32 *)of_get_property(pdev->dev.of_node,
>> - "xlnx,wdt-enable-once", NULL);
>> - if (tmptr == NULL) {
>> + rc = of_property_read_u32(pdev->dev.of_node, "xlnx,wdt-enable-once",
>> + &enable_once);
>> + if (!rc && enable_once) {
>> dev_warn(&pdev->dev,
>> "Parameter \"xlnx,wdt-enable-once\" not found\n");
>> watchdog_set_nowayout(xilinx_wdt_wdd, true);
>> @@ -201,7 +196,7 @@ static int xwdt_probe(struct platform_device *pdev)
>> */
>> if (!no_timeout)
>
> and use "if (pfreq && xdev->wdt_interval)" if you initialize pfreq to 0.
I just wanted to to change functions not logic in the driver.
But it can be changed too.
>> xilinx_wdt_wdd->timeout = 2 * ((1 << xdev->wdt_interval) /
>> - *pfreq);
>> + pfreq);
>
> Is the wdog really usable if the timeout properties are missing? Seems
> like you should fail to probe rather than warn.
There are 2 things.
1. timeout - you don't need pfreq and wdt_interval to use this driver
but for that there should be module parameter timeout there.
It should be added.
2. about warn - based on 1 I don't think driver should failed
but I am looking at logic above which I have added there but should be different.
u32 enable_once = 0;
if (!rc)
dev_warn
if (enable_once)
watchdog_set_nowayout(xilinx_wdt_wdd, true);
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: monstr@monstr.eu (Michal Simek)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 07/10] watchdog: xilinx: Fix OF binding
Date: Mon, 03 Feb 2014 08:59:43 +0100 [thread overview]
Message-ID: <52EF4C6F.8040701@monstr.eu> (raw)
In-Reply-To: <CAL_JsqJ+Dc9PFVYcxHvLiG9unKQX-kEc1fsYsieyTjf-AN3j=A@mail.gmail.com>
On 01/31/2014 06:33 PM, Rob Herring wrote:
> On Fri, Jan 31, 2014 at 8:18 AM, Michal Simek <michal.simek@xilinx.com> wrote:
>> Use of_property_read_u32 functions to clean OF probing.
>
> The subject is a bit misleading as this doesn't really fix anything.
fair enough. Will change it.
>
>>
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>> ---
>>
>> drivers/watchdog/of_xilinx_wdt.c | 25 ++++++++++---------------
>> 1 file changed, 10 insertions(+), 15 deletions(-)
>>
>> diff --git a/drivers/watchdog/of_xilinx_wdt.c b/drivers/watchdog/of_xilinx_wdt.c
>> index c229cc4..475440a6 100644
>> --- a/drivers/watchdog/of_xilinx_wdt.c
>> +++ b/drivers/watchdog/of_xilinx_wdt.c
>> @@ -147,8 +147,7 @@ static u32 xwdt_selftest(struct xwdt_device *xdev)
>> static int xwdt_probe(struct platform_device *pdev)
>> {
>> int rc;
>> - u32 *tmptr;
>> - u32 *pfreq;
>> + u32 pfreq, enable_once;
>> struct resource *res;
>> struct xwdt_device *xdev;
>> bool no_timeout = false;
>> @@ -168,28 +167,24 @@ static int xwdt_probe(struct platform_device *pdev)
>> if (IS_ERR(xdev->base))
>> return PTR_ERR(xdev->base);
>>
>> - pfreq = (u32 *)of_get_property(pdev->dev.of_node,
>> - "clock-frequency", NULL);
>> -
>> - if (pfreq == NULL) {
>> + rc = of_property_read_u32(pdev->dev.of_node, "clock-frequency", &pfreq);
>> + if (rc) {
>> dev_warn(&pdev->dev,
>> "The watchdog clock frequency cannot be obtained\n");
>> no_timeout = true;
>
> You can kill this...
>
>> }
>>
>> - tmptr = (u32 *)of_get_property(pdev->dev.of_node,
>> - "xlnx,wdt-interval", NULL);
>> - if (tmptr == NULL) {
>> + rc = of_property_read_u32(pdev->dev.of_node, "xlnx,wdt-interval",
>> + &xdev->wdt_interval);
>> + if (rc) {
>> dev_warn(&pdev->dev,
>> "Parameter \"xlnx,wdt-interval\" not found\n");
>> no_timeout = true;
>
> and this...
>
>> - } else {
>> - xdev->wdt_interval = *tmptr;
>> }
>>
>> - tmptr = (u32 *)of_get_property(pdev->dev.of_node,
>> - "xlnx,wdt-enable-once", NULL);
>> - if (tmptr == NULL) {
>> + rc = of_property_read_u32(pdev->dev.of_node, "xlnx,wdt-enable-once",
>> + &enable_once);
>> + if (!rc && enable_once) {
>> dev_warn(&pdev->dev,
>> "Parameter \"xlnx,wdt-enable-once\" not found\n");
>> watchdog_set_nowayout(xilinx_wdt_wdd, true);
>> @@ -201,7 +196,7 @@ static int xwdt_probe(struct platform_device *pdev)
>> */
>> if (!no_timeout)
>
> and use "if (pfreq && xdev->wdt_interval)" if you initialize pfreq to 0.
I just wanted to to change functions not logic in the driver.
But it can be changed too.
>> xilinx_wdt_wdd->timeout = 2 * ((1 << xdev->wdt_interval) /
>> - *pfreq);
>> + pfreq);
>
> Is the wdog really usable if the timeout properties are missing? Seems
> like you should fail to probe rather than warn.
There are 2 things.
1. timeout - you don't need pfreq and wdt_interval to use this driver
but for that there should be module parameter timeout there.
It should be added.
2. about warn - based on 1 I don't think driver should failed
but I am looking at logic above which I have added there but should be different.
u32 enable_once = 0;
if (!rc)
dev_warn
if (enable_once)
watchdog_set_nowayout(xilinx_wdt_wdd, true);
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140203/78dbb960/attachment.sig>
next prev parent reply other threads:[~2014-02-03 7:59 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-31 14:18 [PATCH 01/10] watchdog: xilinx: Convert driver to the watchdog framework Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-01-31 14:18 ` [PATCH 02/10] watchdog: xilinx: Move control_status_reg to functions Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-09 20:05 ` Guenter Roeck
2014-02-09 20:05 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 03/10] watchdog: xilinx: Simplify probe and remove functions Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-09 20:08 ` [03/10] " Guenter Roeck
2014-02-09 20:08 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 04/10] watchdog: xilinx: Move no_timeout to probe function Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-09 20:09 ` Guenter Roeck
2014-02-09 20:09 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 05/10] watchdog: xilinx: Allocate private structure per device Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-09 20:13 ` Guenter Roeck
2014-02-09 20:13 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 06/10] watchdog: xilinx: Fix all printk messages Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-09 20:14 ` Guenter Roeck
2014-02-09 20:14 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 07/10] watchdog: xilinx: Fix OF binding Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-01-31 17:33 ` Rob Herring
2014-01-31 17:33 ` Rob Herring
2014-02-03 7:59 ` Michal Simek [this message]
2014-02-03 7:59 ` Michal Simek
2014-02-03 8:01 ` Michal Simek
2014-02-03 8:01 ` Michal Simek
2014-02-03 8:01 ` Michal Simek
2014-02-09 20:18 ` Guenter Roeck
2014-02-09 20:18 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 08/10] watchdog: xilinx: Use correct comment indentation Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-09 20:19 ` Guenter Roeck
2014-02-09 20:19 ` Guenter Roeck
2014-01-31 14:18 ` [PATCH 09/10] watchdog: xilinx: Add missing binding Michal Simek
2014-01-31 14:18 ` Michal Simek
2014-02-03 15:06 ` Arnd Bergmann
2014-02-03 15:06 ` Arnd Bergmann
2014-02-03 15:13 ` Michal Simek
2014-02-03 15:13 ` Michal Simek
2014-02-03 15:13 ` Michal Simek
2014-02-03 15:32 ` Arnd Bergmann
2014-02-03 15:32 ` Arnd Bergmann
2014-02-03 15:47 ` Michal Simek
2014-02-03 15:47 ` Michal Simek
2014-02-03 15:47 ` Michal Simek
2014-02-04 19:27 ` Arnd Bergmann
2014-02-04 19:27 ` Arnd Bergmann
2014-02-05 9:25 ` Michal Simek
2014-02-05 9:25 ` Michal Simek
2014-02-05 9:36 ` Arnd Bergmann
2014-02-05 9:36 ` Arnd Bergmann
2014-02-05 9:36 ` Arnd Bergmann
2014-02-05 9:41 ` Michal Simek
2014-02-05 9:41 ` Michal Simek
2014-02-05 14:00 ` Arnd Bergmann
2014-02-05 14:00 ` Arnd Bergmann
2014-02-05 14:00 ` Arnd Bergmann
2014-01-31 14:18 ` [PATCH 10/10] watchdog: xilinx: Enable this driver for Zynq Michal Simek
2014-01-31 14:52 ` Guenter Roeck
2014-02-03 7:01 ` Michal Simek
2014-02-03 8:26 ` Guenter Roeck
2014-02-03 8:45 ` Michal Simek
2014-02-10 0:51 ` Guenter Roeck
2014-02-10 7:06 ` Michal Simek
2014-02-09 20:03 ` [PATCH 01/10] watchdog: xilinx: Convert driver to the watchdog framework Guenter Roeck
2014-02-09 20:03 ` Guenter Roeck
2014-02-10 7:03 ` Michal Simek
2014-02-10 7:03 ` Michal Simek
2014-02-10 17:18 ` Guenter Roeck
2014-02-10 17:18 ` 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=52EF4C6F.8040701@monstr.eu \
--to=monstr@monstr.eu \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=michal.simek@xilinx.com \
--cc=robh+dt@kernel.org \
--cc=robherring2@gmail.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.