diff options
Diffstat (limited to 'drivers')
-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"); |