Commit a98d8774 authored by Esben Haabendal's avatar Esben Haabendal Committed by Khalid Elmously

uio_pdrv_genirq: fix use without device tree and no interrupt

BugLink: https://bugs.launchpad.net/bugs/1888690

commit bf12fdf0 upstream.

While e3a3c3a2 ("UIO: fix uio_pdrv_genirq with device tree but no
interrupt") added support for using uio_pdrv_genirq for devices without
interrupt for device tree platforms, the removal of uio_pdrv in
26dac3c4 ("uio: Remove uio_pdrv and use uio_pdrv_genirq instead")
broke the support for non device tree platforms.

This change fixes this, so that uio_pdrv_genirq can be used without
interrupt on all platforms.

This still leaves the support that uio_pdrv had for custom interrupt
handler lacking, as uio_pdrv_genirq does not handle it (yet).

Fixes: 26dac3c4 ("uio: Remove uio_pdrv and use uio_pdrv_genirq instead")
Signed-off-by: default avatarEsben Haabendal <esben@geanix.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200701145659.3978-3-esben@geanix.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
parent 55d55d32
...@@ -148,7 +148,7 @@ static int uio_pdrv_genirq_probe(struct platform_device *pdev) ...@@ -148,7 +148,7 @@ static int uio_pdrv_genirq_probe(struct platform_device *pdev)
if (!uioinfo->irq) { if (!uioinfo->irq) {
ret = platform_get_irq(pdev, 0); ret = platform_get_irq(pdev, 0);
uioinfo->irq = ret; uioinfo->irq = ret;
if (ret == -ENXIO && pdev->dev.of_node) if (ret == -ENXIO)
uioinfo->irq = UIO_IRQ_NONE; uioinfo->irq = UIO_IRQ_NONE;
else if (ret < 0) { else if (ret < 0) {
dev_err(&pdev->dev, "failed to get IRQ\n"); dev_err(&pdev->dev, "failed to get IRQ\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment