Re: [PATCH V2 3/4] watchdog: da9062: DA9062 watchdog driver

Guenter Roeck
2015-05-15T20:20:17Z

On Fri, May 15, 2015 at 03:35:50PM +0000, Opensource [Steve Twiss] wrote:
>
> > > +
> > > +/* E_WDG_WARN interrupt handler */
> > > +static irqreturn_t da9062_wdt_wdg_warn_irq_handler(int irq, void *data)
> > > +{
> > > + struct da9062_watchdog *wdt = data;
> > > +
> > > + dev_notice(wdt->hw->dev, "Watchdog timeout warning trigger.\n");
> > > + return IRQ_HANDLED;
> > > +}
> > > +
>
> On 15 May 2015 13:58 Guenter Roeck wrote:
>
> [...]
>
> > >>> +
> > >>> + irq = platform_get_irq_byname(pdev, "WDG_WARN");
> > >>> + if (irq < 0) {
> > >>> + dev_err(wdt->hw->dev, "Failed to get IRQ.\n");
> > >>> + ret = irq;
> > >>> + goto error;
>
> [...]
>
> > >
> > >> Also, is the interrupt mandatory ? All it does is to display a message.
> > >> Looks very optional to me.
> > >
> > > It is a place holder for something more application specific.
> > > I could remove it, but I figured it would just get re-added when somebody takes the
> > > driver and modifies it for their needs.
> > >
> > > If this is a problem however, it can go.
> > > Please advise ..
> > >
> >
> > Then this someone should add the code. For the time being, it just increases
> > kernel size and may cause the driver to fail for no good reason. Plus, given
> > the driver apparently works without interrupt, even then it should be
> > optional, and the driver does not have to fail loading if it is not supported on a
> > given platform.
> >
>
> Hi Guenter,
>
> I'm not sure if I got my previous point across there ...
>
> Leaving this in wouldn't really do any real harm I think. If this feature is not supported
> in somebody's platform then there wouldn't be a problem, the IRQ would fire (as a
> warning that the watchdog was about to time-out), the handler function would be
> executed, it would handle the IRQ -- and that would be it. Nothing would happen apart
> from a debug print.

I didn't get my point across either. Problem is that your driver fails to load
if the interrupt is not there. With the interrupt really being optional, I don't
see the point in making it mandatory just to display a message if it fires.

>
> There are already examples of this in the kernel, I've not looked very hard ...
> http://lxr.free-electrons.com/source/drivers/mfd/qcom_rpm.c#L412
> http://lxr.free-electrons.com/source/drivers/mfd/arizona-irq.c#L72
>

Never a good argument to make with me. 100 people doing something wrong
doesn't mean you should continue to do so.

Guenter