summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKeerthy <j-keerthy@ti.com>2017-03-13 09:43:28 -0400
committerBjorn Helgaas <bhelgaas@google.com>2017-04-04 09:41:30 -0400
commitd4c7d1a089d6fddf38c4fcdc91f15791bfb59a95 (patch)
treebb0ddc5219f278d224edceaeb8432fda8c839984 /drivers
parentedd45e3968299f9b4635bdfeca1edab842d81eac (diff)
PCI: dwc: dra7xx: Push request_irq() call to the bottom of probe
Currently devm_request_irq() is being called before base, PCI fields of dra7xx_pcie structure are populated. It is called even before pm_runtime_enable() and pm_runtime_get_sync() are called. This will lead to exceptions if in case an interrupt is triggered before the all of the above are done. Hence push the devm_request_irq() call to the end of the probe. Signed-off-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/dwc/pci-dra7xx.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/pci/dwc/pci-dra7xx.c b/drivers/pci/dwc/pci-dra7xx.c
index 07c45ec07662..7c9ed6a6675c 100644
--- a/drivers/pci/dwc/pci-dra7xx.c
+++ b/drivers/pci/dwc/pci-dra7xx.c
@@ -410,13 +410,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
410 return -EINVAL; 410 return -EINVAL;
411 } 411 }
412 412
413 ret = devm_request_irq(dev, irq, dra7xx_pcie_irq_handler,
414 IRQF_SHARED, "dra7xx-pcie-main", dra7xx);
415 if (ret) {
416 dev_err(dev, "failed to request irq\n");
417 return ret;
418 }
419
420 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ti_conf"); 413 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ti_conf");
421 base = devm_ioremap_nocache(dev, res->start, resource_size(res)); 414 base = devm_ioremap_nocache(dev, res->start, resource_size(res));
422 if (!base) 415 if (!base)
@@ -478,6 +471,13 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
478 if (ret < 0) 471 if (ret < 0)
479 goto err_gpio; 472 goto err_gpio;
480 473
474 ret = devm_request_irq(dev, irq, dra7xx_pcie_irq_handler,
475 IRQF_SHARED, "dra7xx-pcie-main", dra7xx);
476 if (ret) {
477 dev_err(dev, "failed to request irq\n");
478 goto err_gpio;
479 }
480
481 return 0; 481 return 0;
482 482
483err_gpio: 483err_gpio: