{
        struct vsp1_device *vsp1;
        struct device_node *fcp_node;
-       struct resource *irq;
        unsigned int i;
        int ret;
+       int irq;
 
        vsp1 = devm_kzalloc(&pdev->dev, sizeof(*vsp1), GFP_KERNEL);
        if (vsp1 == NULL)
        if (IS_ERR(vsp1->mmio))
                return PTR_ERR(vsp1->mmio);
 
-       irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!irq) {
-               dev_err(&pdev->dev, "missing IRQ\n");
-               return -EINVAL;
-       }
+       irq = platform_get_irq(pdev, 0);
+       if (irq < 0)
+               return irq;
 
-       ret = devm_request_irq(&pdev->dev, irq->start, vsp1_irq_handler,
-                             IRQF_SHARED, dev_name(&pdev->dev), vsp1);
+       ret = devm_request_irq(&pdev->dev, irq, vsp1_irq_handler,
+                              IRQF_SHARED, dev_name(&pdev->dev), vsp1);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to request IRQ\n");
                return ret;