usb: gadget: gr_udc: Use platform_get_irq instead of irq_of_parse_and_map
[cascardo/linux.git] / drivers / usb / gadget / gr_udc.c
index f984ee7..7a99254 100644 (file)
@@ -2065,9 +2065,9 @@ static int gr_udc_init(struct gr_udc *dev)
        return 0;
 }
 
-static int gr_remove(struct platform_device *ofdev)
+static int gr_remove(struct platform_device *pdev)
 {
-       struct gr_udc *dev = dev_get_drvdata(&ofdev->dev);
+       struct gr_udc *dev = platform_get_drvdata(pdev);
 
        if (dev->added)
                usb_del_gadget_udc(&dev->gadget); /* Shuts everything down */
@@ -2077,7 +2077,7 @@ static int gr_remove(struct platform_device *ofdev)
        gr_dfs_delete(dev);
        if (dev->desc_pool)
                dma_pool_destroy(dev->desc_pool);
-       dev_set_drvdata(&ofdev->dev, NULL);
+       platform_set_drvdata(pdev, NULL);
 
        gr_free_request(&dev->epi[0].ep, &dev->ep0reqi->req);
        gr_free_request(&dev->epo[0].ep, &dev->ep0reqo->req);
@@ -2090,7 +2090,7 @@ static int gr_request_irq(struct gr_udc *dev, int irq)
                                         IRQF_SHARED, driver_name, dev);
 }
 
-static int gr_probe(struct platform_device *ofdev)
+static int gr_probe(struct platform_device *pdev)
 {
        struct gr_udc *dev;
        struct resource *res;
@@ -2098,30 +2098,32 @@ static int gr_probe(struct platform_device *ofdev)
        int retval;
        u32 status;
 
-       dev = devm_kzalloc(&ofdev->dev, sizeof(*dev), GFP_KERNEL);
+       dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
        if (!dev)
                return -ENOMEM;
-       dev->dev = &ofdev->dev;
+       dev->dev = &pdev->dev;
 
-       res = platform_get_resource(ofdev, IORESOURCE_MEM, 0);
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        regs = devm_ioremap_resource(dev->dev, res);
        if (IS_ERR(regs))
                return PTR_ERR(regs);
 
-       dev->irq = irq_of_parse_and_map(dev->dev->of_node, 0);
-       if (!dev->irq) {
+       dev->irq = platform_get_irq(pdev, 0);
+       if (dev->irq <= 0) {
                dev_err(dev->dev, "No irq found\n");
                return -ENODEV;
        }
 
        /* Some core configurations has separate irqs for IN and OUT events */
-       dev->irqi = irq_of_parse_and_map(dev->dev->of_node, 1);
-       if (dev->irqi) {
-               dev->irqo = irq_of_parse_and_map(dev->dev->of_node, 2);
-               if (!dev->irqo) {
+       dev->irqi = platform_get_irq(pdev, 1);
+       if (dev->irqi > 0) {
+               dev->irqo = platform_get_irq(pdev, 2);
+               if (dev->irqo <= 0) {
                        dev_err(dev->dev, "Found irqi but not irqo\n");
                        return -ENODEV;
                }
+       } else {
+               dev->irqi = 0;
        }
 
        dev->gadget.name = driver_name;
@@ -2132,7 +2134,7 @@ static int gr_probe(struct platform_device *ofdev)
        spin_lock_init(&dev->lock);
        dev->regs = regs;
 
-       dev_set_drvdata(&ofdev->dev, dev);
+       platform_set_drvdata(pdev, dev);
 
        /* Determine number of endpoints and data interface mode */
        status = gr_read32(&dev->regs->status);
@@ -2204,7 +2206,7 @@ out:
        spin_unlock(&dev->lock);
 
        if (retval)
-               gr_remove(ofdev);
+               gr_remove(pdev);
 
        return retval;
 }