Re: [PATCH v1 09/43] clocksource: ep93xx: Add driver for Cirrus Logic EP93xx

From: Nikita Shubin
Date: Thu Jun 29 2023 - 09:10:55 EST


Hello Andy!

On Wed, 2023-06-21 at 11:28 +0300, Andy Shevchenko wrote:
> On Wed, Jun 21, 2023 at 11:22 AM Nikita Shubin
> <nikita.shubin@xxxxxxxxxxx> wrote:
>
> ...
>
> > > > +       irq = irq_of_parse_and_map(np, 0);
> > > > +       if (irq <= 0) {
> > > > +               pr_err("ERROR: invalid interrupt number\n");
> > > > +               ret = -EINVAL;
> > >
> > > Shadowed error in case of negative returned code. Why?
> >
> > Majority of clocksource drivers shadow it. Same like above.
>
> It doesn't mean they are correct or using brand new APIs.

Or may be this because irq_of_parse_and_map can return zero as error,
and returning zero from timer_init means success ?

Please correct me if i am wrong here.

>
> Can you use fwnode_irq_get() instead?

Will it help ?

>From docs:

* Return: Linux IRQ number on success. Other values are determined
* according to acpi_irq_get() or of_irq_get() operation.

* of_irq_get()
* Return: Linux IRQ number on success, or 0 on the IRQ mapping failure


> The shadowing is most likely due to nasty =0 comparison.

Indeed.


>
> Also that ERROR is a bit weird, pr_err() is already on error level.
>

Completely agree.