Merge tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / usb / host / ehci-w90x900.c
index eb7a5a83fa3dfc74662901e113e45af816dfb0fa..e42a29e8e229bd79280f5e721717bf15aff5dd50 100644 (file)
@@ -42,27 +42,20 @@ static int usb_w90x900_probe(const struct hc_driver *driver,
        int retval = 0, irq;
        unsigned long val;
 
-
-       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res) {
-               retval = -ENXIO;
-               goto err1;
-       }
-
        hcd = usb_create_hcd(driver, &pdev->dev, "w90x900 EHCI");
        if (!hcd) {
                retval = -ENOMEM;
                goto err1;
        }
 
-       hcd->rsrc_start = res->start;
-       hcd->rsrc_len = resource_size(res);
-
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        hcd->regs = devm_ioremap_resource(&pdev->dev, res);
        if (IS_ERR(hcd->regs)) {
                retval = PTR_ERR(hcd->regs);
                goto err2;
        }
+       hcd->rsrc_start = res->start;
+       hcd->rsrc_len = resource_size(res);
 
        ehci = hcd_to_ehci(hcd);
        ehci->caps = hcd->regs;
@@ -82,8 +75,10 @@ static int usb_w90x900_probe(const struct hc_driver *driver,
        __raw_writel(val, ehci->regs+PHY1_CTR);
 
        irq = platform_get_irq(pdev, 0);
-       if (irq < 0)
+       if (irq < 0) {
+               retval = irq;
                goto err2;
+       }
 
        retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
        if (retval != 0)