From: Andrew Bresticker <abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
To: Naidu Tellapati
<Naidu.Tellapati-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
Cc: James Hogan <James.Hogan-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
"wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org"
<wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org>,
"linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org"
<linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>,
Ezequiel Garcia
<Ezequiel.Garcia-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
James Hartley
<James.Hartley-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
Jude Abraham
<Jude.Abraham-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
Arul Ramasamy
<Arul.Ramasamy-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
"linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v2 1/2] watchdog: ImgTec PDC Watchdog Timer Driver
Date: Mon, 17 Nov 2014 15:04:31 -0800 [thread overview]
Message-ID: <CAL1qeaGmc_4G3AMrTYeThGFbnstGU-KT02Q9twozJLemJigvvQ@mail.gmail.com> (raw)
In-Reply-To: <27E62D98F903554192E3C13AFCC91C3C2F506EFC-C8yLA94LPOy3snIXRfWIHVBRoQTxkR7k@public.gmane.org>
On Mon, Nov 17, 2014 at 3:01 PM, Naidu Tellapati
<Naidu.Tellapati-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org> wrote:
> Hi Andrew,
>
>>> > +config IMGPDC_WDT
>>> > + tristate "Imagination Technologies PDC Watchdog Timer"
>>> > + depends on HAS_IOMEM
>>>
>>> We probably don't want to make this visible for everyone with
>>> HAS_IOMEM, so perhaps MIPS || (HAS_IOMEM && COMPILE_TEST)? Do we want
>>> to make this available for META as well?
>
>> yeh, can I suggest something like this:
>> depends on HAS_IOMEM
> > depends on METAG || MIPS || COMPILE_TEST
>> More intuitive/scalable to have them separate IMO, since technically it
>> needs HAS_IOMEM regardless of platform (even if the listed platforms are
>> guaranteed to select HAS_IOMEM).
>
> Shall we go ahead with what James Hogan is suggesting here ?
Yup, sounds good to me.
>>>
>>> > --- /dev/null
>>> > +++ b/drivers/watchdog/imgpdc_wdt.c
>>>
>>> > +#ifdef CONFIG_COMMON_CLK
>>> > +#define to_pdc_wdt(_nb) container_of(_nb, struct pdc_wdt_dev, clk_nb)
>>> > +
>>> > +static int img_pdc_wdt_clk_notify(struct notifier_block *nb,
>>> > + unsigned long action, void *data)
>>> > +{
>>> > + struct pdc_wdt_dev *wdt = to_pdc_wdt(nb);
>>> > +
>>> > + switch (action) {
>>> > + case POST_RATE_CHANGE:
>>> > + if (wdt->clk_rate == data->new_rate)
>>> > + return NOTIFY_OK;
>>> > +
>>> > + /* We use the clock rate to calculate the max timeout */
>>> > + if (data->new_rate < 1 ||
>>> > + data->new_rate > PDC_MAX_WD_CLK_RATE) {
>>> > + dev_err(wdt->dev, "invalid clock rate\n");
>>> > + return NOTIFY_BAD;
>>> > + }
>>> > + wdt->clk_rate = data->new_rate;
>>> > + if (order_base_2(wdt->clk_rate) == 0)
>>> > + wdt->min_delay = 0;
>>> > + else
>>> > + wdt->min_delay = order_base_2(wdt->clk_rate) - 1;
>>> > +
>>> > + wdt->wdt_dev.max_timeout =
>>> > + (1 << (PDC_WD_MAX_DELAY - wdt->min_delay));
>>> > + ret = watchdog_init_timeout(&wdt->wdt_dev, timeout, wdt->dev);
>>> > + if (ret < 0)
>>> > + wdt->wdt_dev.timeout = wdt->wdt_dev.max_timeout;
>>> > +
>>> > + pdc_wdt_stop(&wdt->wdt_dev);
>>> > + pdc_wdt_set_timeout(&wdt->wdt_dev, wdt->wdt_dev.timeout);
>>> > + pdc_wdt_start(&wdt->wdt_dev);
>>> > + break;
>>> > + default:
>>> > + break;
>>> > + }
>>> > + return NOTIFY_OK;
>>> > +}
>>> > +#endif
>>>
>>> Do we really expect the watchdog clock to change out from under us? I
>>> think we can just get the rate in probe() and set the timeout bounds
>>> based on that - no one outside the watchdog driver should be messing
>>> with the watchdog clock, right? I know the samsung driver does
>>> something similar to this, but I believe that's because the watchdog
>>> clock is derived from the CPU clock.
>
>> I agree (sorry if I implied wdt needed to be dynamic as well as reading
>> the [probably constant] rate before).
>
>> Note, dynamic changes did happen on TZ1090, but only just before suspend
>> (since the hardware would change the rate regardless of what software
>> did when the power actually went down, so it at least allowed drivers to
>> put their workarounds in place). I presume watchdog timers aren't meant
>> to be active during suspend though, in which case even for TZ1090 it
>> probably doesn't need to expect changes.
>
> From the comments above both from Andrew & James Hogan, I understand that
> we don't need clock rate-change notifier callback for Watchdog driver.
> Please correct me if I am wrong.
Correct.
--
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
prev parent reply other threads:[~2014-11-17 23:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1416237194-12033-1-git-send-email-naidu.tellapati@imgtec.com>
[not found] ` <1416237194-12033-3-git-send-email-naidu.tellapati@imgtec.com>
[not found] ` <1416237194-12033-3-git-send-email-naidu.tellapati-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2014-11-17 19:23 ` [PATCH v2 2/2] DT: watchdog: Add ImgTec PDC Watchdog Timer binding documentation Andrew Bresticker
[not found] ` <CAL1qeaH4NnDS0NM9YsrgxVOJdZ1z01Z2kt=fcZkkHfCGmdq5wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-17 22:56 ` Naidu Tellapati
[not found] ` <1416237194-12033-2-git-send-email-naidu.tellapati@imgtec.com>
[not found] ` <1416237194-12033-2-git-send-email-naidu.tellapati-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2014-11-17 19:47 ` [PATCH v2 1/2] watchdog: ImgTec PDC Watchdog Timer Driver Andrew Bresticker
[not found] ` <CAL1qeaG1xXXmasLiaM14A+RshnqewnHsuQvxb76CNnwiuAXn_A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-17 21:21 ` James Hogan
[not found] ` <20141117212155.GG1739-4bYivNCBEGTR3KXKvIWQxtm+Uo4AYnCiHZ5vskTnxNA@public.gmane.org>
2014-11-17 23:01 ` Naidu Tellapati
[not found] ` <27E62D98F903554192E3C13AFCC91C3C2F506EFC-C8yLA94LPOy3snIXRfWIHVBRoQTxkR7k@public.gmane.org>
2014-11-17 23:04 ` Andrew Bresticker [this message]
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=CAL1qeaGmc_4G3AMrTYeThGFbnstGU-KT02Q9twozJLemJigvvQ@mail.gmail.com \
--to=abrestic-f7+t8e8rja9g9huczpvpmw@public.gmane.org \
--cc=Arul.Ramasamy-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=Ezequiel.Garcia-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=James.Hartley-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=James.Hogan-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=Jude.Abraham-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=Naidu.Tellapati-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org \
--cc=linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=wim-IQzOog9fTRqzQB+pC5nmwQ@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).