aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Helgaas2013-10-31 13:58:38 -0600
committerBjorn Helgaas2013-10-31 13:58:38 -0600
commit40246603f8f4df99c7cdb88b2d472837e9e5a270 (patch)
treed3ee6a41e355e6e8eb4ecefae9a352aa111e232f
parent356bd765e2242bd351964bc2cca602dcee05c19d (diff)
parentf216f57ffe6eede3c8a763add65d331e688f8c56 (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()
-rw-r--r--drivers/pci/host/pci-imx6.c13
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)
static int imx6q_pcie_abort_handler(unsigned long addr,
unsigned int fsr, struct pt_regs *regs)
{
- /*
- * If it was an imprecise abort, then we need to correct the
- * return address to be _after_ the instruction.
- */
- if (fsr & (1 << 10))
- regs->ARM_pc += 4;
return 0;
}
@@ -324,7 +318,7 @@ static void imx6_pcie_host_init(struct pcie_port *pp)
while (!dw_pcie_link_up(pp)) {
usleep_range(100, 1000);
count++;
- if (count >= 10) {
+ if (count >= 200) {
dev_err(pp->dev, "phy link never came up\n");
dev_dbg(pp->dev,
"DEBUG_R0: 0x%08x, DEBUG_R1: 0x%08x\n",
@@ -439,7 +433,6 @@ static int __init imx6_pcie_probe(struct platform_device *pdev)
pp->dbi_base = devm_ioremap_resource(&pdev->dev, dbi_base);
if (IS_ERR(pp->dbi_base)) {
- dev_err(&pdev->dev, "unable to remap dbi_base\n");
ret = PTR_ERR(pp->dbi_base);
goto err;
}
@@ -558,7 +551,7 @@ static struct platform_driver imx6_pcie_driver = {
.driver = {
.name = "imx6q-pcie",
.owner = THIS_MODULE,
- .of_match_table = of_match_ptr(imx6_pcie_of_match),
+ .of_match_table = imx6_pcie_of_match,
},
};
@@ -568,7 +561,7 @@ static int __init imx6_pcie_init(void)
{
return platform_driver_probe(&imx6_pcie_driver, imx6_pcie_probe);
}
-module_init(imx6_pcie_init);
+fs_initcall(imx6_pcie_init);
MODULE_AUTHOR("Sean Cross <xobs@kosagi.com>");
MODULE_DESCRIPTION("Freescale i.MX6 PCIe host controller driver");