Merge branch 'kvm-arm/vgic-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / arch / mips / pci / pci-lantiq.c
index 95681789b51e44978c5725701e889abf28da1b00..879077b0115518a289de1d20fb148ec28de01517 100644 (file)
@@ -129,8 +129,16 @@ static int ltq_pci_startup(struct platform_device *pdev)
 
        /* setup reset gpio used by pci */
        reset_gpio = of_get_named_gpio(node, "gpio-reset", 0);
-       if (gpio_is_valid(reset_gpio))
-               devm_gpio_request(&pdev->dev, reset_gpio, "pci-reset");
+       if (gpio_is_valid(reset_gpio)) {
+               int ret = devm_gpio_request(&pdev->dev,
+                                               reset_gpio, "pci-reset");
+               if (ret) {
+                       dev_err(&pdev->dev,
+                               "failed to request gpio %d\n", reset_gpio);
+                       return ret;
+               }
+               gpio_direction_output(reset_gpio, 1);
+       }
 
        /* enable auto-switching between PCI and EBU */
        ltq_pci_w32(0xa, PCI_CR_CLK_CTRL);
@@ -214,13 +222,13 @@ static int ltq_pci_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       ltq_pci_membase = devm_request_and_ioremap(&pdev->dev, res_bridge);
-       ltq_pci_mapped_cfg = devm_request_and_ioremap(&pdev->dev, res_cfg);
+       ltq_pci_membase = devm_ioremap_resource(&pdev->dev, res_bridge);
+       if (IS_ERR(ltq_pci_membase))
+               return PTR_ERR(ltq_pci_membase);
 
-       if (!ltq_pci_membase || !ltq_pci_mapped_cfg) {
-               dev_err(&pdev->dev, "failed to remap resources\n");
-               return -ENOMEM;
-       }
+       ltq_pci_mapped_cfg = devm_ioremap_resource(&pdev->dev, res_cfg);
+       if (IS_ERR(ltq_pci_mapped_cfg))
+               return PTR_ERR(ltq_pci_mapped_cfg);
 
        ltq_pci_startup(pdev);