OSDN Git Service

Merge branch 'pci/host/rockchip'
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 6 Jul 2021 15:56:27 +0000 (10:56 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 6 Jul 2021 15:56:27 +0000 (10:56 -0500)
- Register IRQ handlers after device and data are ready (Javier Martinez
  Canillas)

* pci/host/rockchip:
  PCI: rockchip: Register IRQ handlers after device and data are ready

drivers/pci/controller/pcie-rockchip-host.c

index f1d08a1..78d04ac 100644 (file)
@@ -592,10 +592,6 @@ static int rockchip_pcie_parse_host_dt(struct rockchip_pcie *rockchip)
        if (err)
                return err;
 
-       err = rockchip_pcie_setup_irq(rockchip);
-       if (err)
-               return err;
-
        rockchip->vpcie12v = devm_regulator_get_optional(dev, "vpcie12v");
        if (IS_ERR(rockchip->vpcie12v)) {
                if (PTR_ERR(rockchip->vpcie12v) != -ENODEV)
@@ -973,8 +969,6 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
        if (err)
                goto err_vpcie;
 
-       rockchip_pcie_enable_interrupts(rockchip);
-
        err = rockchip_pcie_init_irq_domain(rockchip);
        if (err < 0)
                goto err_deinit_port;
@@ -992,6 +986,12 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
        bridge->sysdata = rockchip;
        bridge->ops = &rockchip_pcie_ops;
 
+       err = rockchip_pcie_setup_irq(rockchip);
+       if (err)
+               goto err_remove_irq_domain;
+
+       rockchip_pcie_enable_interrupts(rockchip);
+
        err = pci_host_probe(bridge);
        if (err < 0)
                goto err_remove_irq_domain;