diff mbox

[v2,5/7] watchdog: mtk: allow setting timeout in devicetree

Message ID 20180210091911.3644-5-marcus.folkesson@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marcus Folkesson Feb. 10, 2018, 9:19 a.m. UTC
watchdog_init_timeout() will allways pick timeout_param since it
defaults to a valid timeout.

By following best practice described in
Documentation/watchdog/watchdog-kernel-api.txt, it also
let us to set timout-sec property in devicetree.

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
---
 Documentation/devicetree/bindings/watchdog/mtk-wdt.txt | 4 ++++
 drivers/watchdog/mtk_wdt.c                             | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

Comments

Sean Wang Feb. 10, 2018, 11:10 a.m. UTC | #1
Hi, Marcus

The changes you made for dt-bindings and driver should be put into
separate patches.

And the property timeout-sec seems to be generic enough to all devices,
so why not add a common document to describe it and allow those devices
to refer to, like other dt-bindings for other kinds of devices usually
did.

	Sean

On Sat, 2018-02-10 at 10:19 +0100, Marcus Folkesson wrote:
> watchdog_init_timeout() will allways pick timeout_param since it
> defaults to a valid timeout.
> 
> By following best practice described in
> Documentation/watchdog/watchdog-kernel-api.txt, it also
> let us to set timout-sec property in devicetree.
> 
> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  Documentation/devicetree/bindings/watchdog/mtk-wdt.txt | 4 ++++
>  drivers/watchdog/mtk_wdt.c                             | 2 +-
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> index 5b38a30e608c..859dee167b91 100644
> --- a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> +++ b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> @@ -11,9 +11,13 @@ Required properties:
>  
>  - reg : Specifies base physical address and size of the registers.
>  
> +Optional properties:
> +- timeout-sec: contains the watchdog timeout in seconds.
> +
>  Example:
>  
>  wdt: watchdog@10000000 {
>  	compatible = "mediatek,mt6589-wdt";
>  	reg = <0x10000000 0x18>;
> +	timeout-sec = <10>;
>  };
> diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
> index 7ed417a765c7..fcdc10ec28a3 100644
> --- a/drivers/watchdog/mtk_wdt.c
> +++ b/drivers/watchdog/mtk_wdt.c
> @@ -57,7 +57,7 @@
>  #define DRV_VERSION		"1.0"
>  
>  static bool nowayout = WATCHDOG_NOWAYOUT;
> -static unsigned int timeout = WDT_MAX_TIMEOUT;
> +static unsigned int timeout;
>  
>  struct mtk_wdt_dev {
>  	struct watchdog_device wdt_dev;
Marcus Folkesson Feb. 10, 2018, 12:43 p.m. UTC | #2
Hello Sean,

On Sat, Feb 10, 2018 at 07:10:02PM +0800, Sean Wang wrote:
> 
> Hi, Marcus
> 
> The changes you made for dt-bindings and driver should be put into
> separate patches.

I actually thought about it but chose to have it in the same patch because I
did not see any direct advantage to separating them.

But I can do that.
I will come up with a v3 with this change if no one thinks differently.

> 
> And the property timeout-sec seems to be generic enough to all devices,
> so why not add a common document to describe it and allow those devices
> to refer to, like other dt-bindings for other kinds of devices usually
> did.

It should be, but it requires that the driver is using
watchdog_init_timeout() to set timeout, most of the drivers does not.
Most drivers does not even use the watchdog API but register itself as
misc devices.

When we have all wdt drivers using the watchdog API, we should probably
move the dt-binding to a common document.

> 
> 	Sean
> 

Thanks,

Best regards
Marcus Folkesson

> On Sat, 2018-02-10 at 10:19 +0100, Marcus Folkesson wrote:
> > watchdog_init_timeout() will allways pick timeout_param since it
> > defaults to a valid timeout.
> > 
> > By following best practice described in
> > Documentation/watchdog/watchdog-kernel-api.txt, it also
> > let us to set timout-sec property in devicetree.
> > 
> > Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> > ---
> >  Documentation/devicetree/bindings/watchdog/mtk-wdt.txt | 4 ++++
> >  drivers/watchdog/mtk_wdt.c                             | 2 +-
> >  2 files changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> > index 5b38a30e608c..859dee167b91 100644
> > --- a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> > +++ b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> > @@ -11,9 +11,13 @@ Required properties:
> >  
> >  - reg : Specifies base physical address and size of the registers.
> >  
> > +Optional properties:
> > +- timeout-sec: contains the watchdog timeout in seconds.
> > +
> >  Example:
> >  
> >  wdt: watchdog@10000000 {
> >  	compatible = "mediatek,mt6589-wdt";
> >  	reg = <0x10000000 0x18>;
> > +	timeout-sec = <10>;
> >  };
> > diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
> > index 7ed417a765c7..fcdc10ec28a3 100644
> > --- a/drivers/watchdog/mtk_wdt.c
> > +++ b/drivers/watchdog/mtk_wdt.c
> > @@ -57,7 +57,7 @@
> >  #define DRV_VERSION		"1.0"
> >  
> >  static bool nowayout = WATCHDOG_NOWAYOUT;
> > -static unsigned int timeout = WDT_MAX_TIMEOUT;
> > +static unsigned int timeout;
> >  
> >  struct mtk_wdt_dev {
> >  	struct watchdog_device wdt_dev;
> 
>
Marcus Folkesson Feb. 10, 2018, 8:12 p.m. UTC | #3
Hello Sean,

On Sat, Feb 10, 2018 at 01:43:28PM +0100, Marcus Folkesson wrote:
> Hello Sean,
> 
> On Sat, Feb 10, 2018 at 07:10:02PM +0800, Sean Wang wrote:
> > 
> > Hi, Marcus
> > 
> > The changes you made for dt-bindings and driver should be put into
> > separate patches.
> 
> I actually thought about it but chose to have it in the same patch because I
> did not see any direct advantage to separating them.
> 
> But I can do that.
> I will come up with a v3 with this change if no one thinks differently.
> 

When looking at the git log, I'm not that convinced it should be
separate patches.

For example, I found a4f741e3e157c3a5c8aea5f2ea62b692fbf17338 that is
doing the exact same thing as this patch.

There is plenty of patches that mixes the code change and dt bindings
updates.
Could it not be useful to overview both the implementation and
dt-mapping change in one view?

If you or anyone else still think it should be separated, please let me know and I will
come up with a v3.


> > 
> > And the property timeout-sec seems to be generic enough to all devices,
> > so why not add a common document to describe it and allow those devices
> > to refer to, like other dt-bindings for other kinds of devices usually
> > did.
> 
> It should be, but it requires that the driver is using
> watchdog_init_timeout() to set timeout, most of the drivers does not.
> Most drivers does not even use the watchdog API but register itself as
> misc devices.
> 
> When we have all wdt drivers using the watchdog API, we should probably
> move the dt-binding to a common document.
> 
> > 
> > 	Sean
> > 
> 
> Thanks,
> 
> Best regards
> Marcus Folkesson
> 
> > On Sat, 2018-02-10 at 10:19 +0100, Marcus Folkesson wrote:
> > > watchdog_init_timeout() will allways pick timeout_param since it
> > > defaults to a valid timeout.
> > > 
> > > By following best practice described in
> > > Documentation/watchdog/watchdog-kernel-api.txt, it also
> > > let us to set timout-sec property in devicetree.
> > > 
> > > Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
> > > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> > > ---
> > >  Documentation/devicetree/bindings/watchdog/mtk-wdt.txt | 4 ++++
> > >  drivers/watchdog/mtk_wdt.c                             | 2 +-
> > >  2 files changed, 5 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> > > index 5b38a30e608c..859dee167b91 100644
> > > --- a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> > > +++ b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
> > > @@ -11,9 +11,13 @@ Required properties:
> > >  
> > >  - reg : Specifies base physical address and size of the registers.
> > >  
> > > +Optional properties:
> > > +- timeout-sec: contains the watchdog timeout in seconds.
> > > +
> > >  Example:
> > >  
> > >  wdt: watchdog@10000000 {
> > >  	compatible = "mediatek,mt6589-wdt";
> > >  	reg = <0x10000000 0x18>;
> > > +	timeout-sec = <10>;
> > >  };
> > > diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
> > > index 7ed417a765c7..fcdc10ec28a3 100644
> > > --- a/drivers/watchdog/mtk_wdt.c
> > > +++ b/drivers/watchdog/mtk_wdt.c
> > > @@ -57,7 +57,7 @@
> > >  #define DRV_VERSION		"1.0"
> > >  
> > >  static bool nowayout = WATCHDOG_NOWAYOUT;
> > > -static unsigned int timeout = WDT_MAX_TIMEOUT;
> > > +static unsigned int timeout;
> > >  
> > >  struct mtk_wdt_dev {
> > >  	struct watchdog_device wdt_dev;
> > 
> > 

Best regards
Marcus Folkesson
Guenter Roeck Feb. 11, 2018, 1:52 a.m. UTC | #4
On 02/10/2018 12:12 PM, Marcus Folkesson wrote:
> Hello Sean,
> 
> On Sat, Feb 10, 2018 at 01:43:28PM +0100, Marcus Folkesson wrote:
>> Hello Sean,
>>
>> On Sat, Feb 10, 2018 at 07:10:02PM +0800, Sean Wang wrote:
>>>
>>> Hi, Marcus
>>>
>>> The changes you made for dt-bindings and driver should be put into
>>> separate patches.
>>
>> I actually thought about it but chose to have it in the same patch because I
>> did not see any direct advantage to separating them.
>>
>> But I can do that.
>> I will come up with a v3 with this change if no one thinks differently.
>>
> 
> When looking at the git log, I'm not that convinced it should be
> separate patches.
> 
> For example, I found a4f741e3e157c3a5c8aea5f2ea62b692fbf17338 that is
> doing the exact same thing as this patch.
> 
> There is plenty of patches that mixes the code change and dt bindings
> updates.
> Could it not be useful to overview both the implementation and
> dt-mapping change in one view?
> 
> If you or anyone else still think it should be separated, please let me know and I will
> come up with a v3.
> 

If we were talking about something new, specifically new and unapproved DT bindings,
it should be separate patches. However, that is not the case here. The DT bindings
are well established. Sure, we could be pedantic and request a split into two
patches. However, the only benefit of that would be more work for the maintainers,
ie Wim and myself (including me having to send this e-mail). I don't really see
the point of that.

I have already sent my Reviewed-by:, and I don't intend to withdraw it.

Thanks,
Guenter
Sean Wang Feb. 11, 2018, 7:46 a.m. UTC | #5
On Sat, 2018-02-10 at 17:52 -0800, Guenter Roeck wrote:
> On 02/10/2018 12:12 PM, Marcus Folkesson wrote:
> > Hello Sean,
> > 
> > On Sat, Feb 10, 2018 at 01:43:28PM +0100, Marcus Folkesson wrote:
> >> Hello Sean,
> >>
> >> On Sat, Feb 10, 2018 at 07:10:02PM +0800, Sean Wang wrote:
> >>>
> >>> Hi, Marcus
> >>>
> >>> The changes you made for dt-bindings and driver should be put into
> >>> separate patches.
> >>
> >> I actually thought about it but chose to have it in the same patch because I
> >> did not see any direct advantage to separating them.
> >>
> >> But I can do that.
> >> I will come up with a v3 with this change if no one thinks differently.
> >>
> > 
> > When looking at the git log, I'm not that convinced it should be
> > separate patches.
> > 
> > For example, I found a4f741e3e157c3a5c8aea5f2ea62b692fbf17338 that is
> > doing the exact same thing as this patch.
> > 
> > There is plenty of patches that mixes the code change and dt bindings
> > updates.
> > Could it not be useful to overview both the implementation and
> > dt-mapping change in one view?
> > 
> > If you or anyone else still think it should be separated, please let me know and I will
> > come up with a v3.
> > 
> 
> If we were talking about something new, specifically new and unapproved DT bindings,
> it should be separate patches. However, that is not the case here. The DT bindings
> are well established. Sure, we could be pedantic and request a split into two
> patches. However, the only benefit of that would be more work for the maintainers,
> ie Wim and myself (including me having to send this e-mail). I don't really see
> the point of that.
> 
> I have already sent my Reviewed-by:, and I don't intend to withdraw it.
> 
Hi, both

Sorry for that if I caused any inconvenience to you. I didn't really
insist on if the patch is needed to split into two, which totally
depends on whether dt maintainers like it.

The change for dt-binding is usually added as a split patch with
dt-bindings as a prefix. This way I thought dt maintainers is not
easy to miss those patches and also can give some useful feedback
for them.

	Sean

> Thanks,
> Guenter
>
Guenter Roeck Feb. 11, 2018, 11:17 a.m. UTC | #6
On 02/10/2018 11:46 PM, Sean Wang wrote:
> On Sat, 2018-02-10 at 17:52 -0800, Guenter Roeck wrote:
>> On 02/10/2018 12:12 PM, Marcus Folkesson wrote:
>>> Hello Sean,
>>>
>>> On Sat, Feb 10, 2018 at 01:43:28PM +0100, Marcus Folkesson wrote:
>>>> Hello Sean,
>>>>
>>>> On Sat, Feb 10, 2018 at 07:10:02PM +0800, Sean Wang wrote:
>>>>>
>>>>> Hi, Marcus
>>>>>
>>>>> The changes you made for dt-bindings and driver should be put into
>>>>> separate patches.
>>>>
>>>> I actually thought about it but chose to have it in the same patch because I
>>>> did not see any direct advantage to separating them.
>>>>
>>>> But I can do that.
>>>> I will come up with a v3 with this change if no one thinks differently.
>>>>
>>>
>>> When looking at the git log, I'm not that convinced it should be
>>> separate patches.
>>>
>>> For example, I found a4f741e3e157c3a5c8aea5f2ea62b692fbf17338 that is
>>> doing the exact same thing as this patch.
>>>
>>> There is plenty of patches that mixes the code change and dt bindings
>>> updates.
>>> Could it not be useful to overview both the implementation and
>>> dt-mapping change in one view?
>>>
>>> If you or anyone else still think it should be separated, please let me know and I will
>>> come up with a v3.
>>>
>>
>> If we were talking about something new, specifically new and unapproved DT bindings,
>> it should be separate patches. However, that is not the case here. The DT bindings
>> are well established. Sure, we could be pedantic and request a split into two
>> patches. However, the only benefit of that would be more work for the maintainers,
>> ie Wim and myself (including me having to send this e-mail). I don't really see
>> the point of that.
>>
>> I have already sent my Reviewed-by:, and I don't intend to withdraw it.
>>
> Hi, both
> 
> Sorry for that if I caused any inconvenience to you. I didn't really
> insist on if the patch is needed to split into two, which totally
> depends on whether dt maintainers like it.
> 
> The change for dt-binding is usually added as a split patch with
> dt-bindings as a prefix. This way I thought dt maintainers is not
> easy to miss those patches and also can give some useful feedback
> for them.
> 

With all the trouble this one-line change is making, I feel inclined to drop
the patch for this driver.

Guenter
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
index 5b38a30e608c..859dee167b91 100644
--- a/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
@@ -11,9 +11,13 @@  Required properties:
 
 - reg : Specifies base physical address and size of the registers.
 
+Optional properties:
+- timeout-sec: contains the watchdog timeout in seconds.
+
 Example:
 
 wdt: watchdog@10000000 {
 	compatible = "mediatek,mt6589-wdt";
 	reg = <0x10000000 0x18>;
+	timeout-sec = <10>;
 };
diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
index 7ed417a765c7..fcdc10ec28a3 100644
--- a/drivers/watchdog/mtk_wdt.c
+++ b/drivers/watchdog/mtk_wdt.c
@@ -57,7 +57,7 @@ 
 #define DRV_VERSION		"1.0"
 
 static bool nowayout = WATCHDOG_NOWAYOUT;
-static unsigned int timeout = WDT_MAX_TIMEOUT;
+static unsigned int timeout;
 
 struct mtk_wdt_dev {
 	struct watchdog_device wdt_dev;