projects/linux·commit 94ca629e

uio_pdrv_genirq: get irq through platform resource if not set otherwise

94ca629e · Benedikt Spranger <[email protected]> · 2012-05-14 18:48:17 +02:00

Platform devices are configured through platform resources. The interrupt
in the driver uio_pdrv_genirq is instead configured through a side channel
i.e. the platform data structure. Make it possible to use the generic
configuration scheme via platform resource.

Signed-off-by: Benedikt Spranger <[email protected]>
Acked-by: Magnus Damm <[email protected]>
Signed-off-by: "Hans J. Koch" <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Commit
94ca629e40eb7e997be21d8065c25e4f3797b03f
Parents
7458eab6

Changes

1 files changed · +8 −0

FileStatusAddDelContent
drivers/uio/uio_pdrv_genirq.cmodified+8−0View file

drivers/uio/uio_pdrv_genirq.c

View file
diff --git a/drivers/uio/uio_pdrv_genirq.c b/drivers/uio/uio_pdrv_genirq.c
index b98371d..42202cd 100644
--- a/drivers/uio/uio_pdrv_genirq.c
+++ b/drivers/uio/uio_pdrv_genirq.c
@@ -146,6 +146,14 @@ static int uio_pdrv_genirq_probe(struct platform_device *pdev)
priv->flags = 0; /* interrupt is enabled to begin with */
priv->pdev = pdev;
+ if (!uioinfo->irq) {
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "failed to get IRQ\n");
+ goto bad0;
+ }
+ uioinfo->irq = ret;
+ }
uiomem = &uioinfo->mem[0];
for (i = 0; i < pdev->num_resources; ++i) {