Re: [PATCH v2] uio: fix irq init with dt support & irq not defined

From: Damian Hobson-Garcia
Date: Wed Nov 06 2019 - 01:41:44 EST


On 2019-11-05 4:32 p.m., Alexandru Ardelean wrote:
> This change also does a bit of a unification for the IRQ init code.
>
> But the actual problem is that UIO_IRQ_NONE == 0, so for the DT case where
> UIO_IRQ_NONE gets assigned to `uioinfo->irq`, a 2nd initialization will get
> triggered (for the IRQ) and this one will exit via `goto bad1`.
>
> As far as things seem to go, the only case where UIO_IRQ_NONE seems valid,
> is when using a device-tree. The driver has some legacy support for old
> platform_data structures. It looks like, for platform_data a non-existent
> IRQ is an invalid case (or was considered an invalid case).
> Which is why -ENXIO is treated only when a DT is used.
>
> Signed-off-by: Dragos Bogdan <dragos.bogdan@xxxxxxxxxx>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx>
> ---
>
> Changelog v1 -> v2:
> * removed `int irq` variable ; was omitted when porting the patch to a
> newer kernel base
>

This also brings the implementation in line with the what is done in
uio_pdrv_genirq.c

Acked-by: Damian Hobson-Garcia <dhobsong@xxxxxxxxxx>