Merge branch 'x86-extable-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / drivers / uio / uio_pdrv_genirq.c
index 25de302..42202cd 100644 (file)
@@ -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) {
@@ -273,18 +281,7 @@ static struct platform_driver uio_pdrv_genirq = {
        },
 };
 
-static int __init uio_pdrv_genirq_init(void)
-{
-       return platform_driver_register(&uio_pdrv_genirq);
-}
-
-static void __exit uio_pdrv_genirq_exit(void)
-{
-       platform_driver_unregister(&uio_pdrv_genirq);
-}
-
-module_init(uio_pdrv_genirq_init);
-module_exit(uio_pdrv_genirq_exit);
+module_platform_driver(uio_pdrv_genirq);
 
 MODULE_AUTHOR("Magnus Damm");
 MODULE_DESCRIPTION("Userspace I/O platform driver with generic IRQ handling");