diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2013-10-31 15:58:38 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2013-10-31 15:58:38 -0400 |
commit | 40246603f8f4df99c7cdb88b2d472837e9e5a270 (patch) | |
tree | d3ee6a41e355e6e8eb4ecefae9a352aa111e232f /drivers/pci/host | |
parent | 356bd765e2242bd351964bc2cca602dcee05c19d (diff) | |
parent | f216f57ffe6eede3c8a763add65d331e688f8c56 (diff) |
Merge branch 'pci/host-imx6' into next
* pci/host-imx6:
PCI: imx6: Probe the PCIe in fs_initcall()
PCI: imx6: Remove redundant of_match_ptr
PCI: imx6: Increase link startup timeout
PCI: imx6: Fix imprecise abort handler
PCI: imx6: Remove redundant dev_err() in imx6_pcie_probe()
Diffstat (limited to 'drivers/pci/host')
-rw-r--r-- | drivers/pci/host/pci-imx6.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c index 5afa9226a080..bd70af8f31ac 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c | |||
@@ -200,12 +200,6 @@ static int pcie_phy_write(void __iomem *dbi_base, int addr, int data) | |||
200 | static int imx6q_pcie_abort_handler(unsigned long addr, | 200 | static int imx6q_pcie_abort_handler(unsigned long addr, |
201 | unsigned int fsr, struct pt_regs *regs) | 201 | unsigned int fsr, struct pt_regs *regs) |
202 | { | 202 | { |
203 | /* | ||
204 | * If it was an imprecise abort, then we need to correct the | ||
205 | * return address to be _after_ the instruction. | ||
206 | */ | ||
207 | if (fsr & (1 << 10)) | ||
208 | regs->ARM_pc += 4; | ||
209 | return 0; | 203 | return 0; |
210 | } | 204 | } |
211 | 205 | ||
@@ -324,7 +318,7 @@ static void imx6_pcie_host_init(struct pcie_port *pp) | |||
324 | while (!dw_pcie_link_up(pp)) { | 318 | while (!dw_pcie_link_up(pp)) { |
325 | usleep_range(100, 1000); | 319 | usleep_range(100, 1000); |
326 | count++; | 320 | count++; |
327 | if (count >= 10) { | 321 | if (count >= 200) { |
328 | dev_err(pp->dev, "phy link never came up\n"); | 322 | dev_err(pp->dev, "phy link never came up\n"); |
329 | dev_dbg(pp->dev, | 323 | dev_dbg(pp->dev, |
330 | "DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", | 324 | "DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n", |
@@ -439,7 +433,6 @@ static int __init imx6_pcie_probe(struct platform_device *pdev) | |||
439 | 433 | ||
440 | pp->dbi_base = devm_ioremap_resource(&pdev->dev, dbi_base); | 434 | pp->dbi_base = devm_ioremap_resource(&pdev->dev, dbi_base); |
441 | if (IS_ERR(pp->dbi_base)) { | 435 | if (IS_ERR(pp->dbi_base)) { |
442 | dev_err(&pdev->dev, "unable to remap dbi_base\n"); | ||
443 | ret = PTR_ERR(pp->dbi_base); | 436 | ret = PTR_ERR(pp->dbi_base); |
444 | goto err; | 437 | goto err; |
445 | } | 438 | } |
@@ -558,7 +551,7 @@ static struct platform_driver imx6_pcie_driver = { | |||
558 | .driver = { | 551 | .driver = { |
559 | .name = "imx6q-pcie", | 552 | .name = "imx6q-pcie", |
560 | .owner = THIS_MODULE, | 553 | .owner = THIS_MODULE, |
561 | .of_match_table = of_match_ptr(imx6_pcie_of_match), | 554 | .of_match_table = imx6_pcie_of_match, |
562 | }, | 555 | }, |
563 | }; | 556 | }; |
564 | 557 | ||
@@ -568,7 +561,7 @@ static int __init imx6_pcie_init(void) | |||
568 | { | 561 | { |
569 | return platform_driver_probe(&imx6_pcie_driver, imx6_pcie_probe); | 562 | return platform_driver_probe(&imx6_pcie_driver, imx6_pcie_probe); |
570 | } | 563 | } |
571 | module_init(imx6_pcie_init); | 564 | fs_initcall(imx6_pcie_init); |
572 | 565 | ||
573 | MODULE_AUTHOR("Sean Cross <xobs@kosagi.com>"); | 566 | MODULE_AUTHOR("Sean Cross <xobs@kosagi.com>"); |
574 | MODULE_DESCRIPTION("Freescale i.MX6 PCIe host controller driver"); | 567 | MODULE_DESCRIPTION("Freescale i.MX6 PCIe host controller driver"); |