imx6: update PCIe driver
[librecmc/librecmc.git] / target / linux / imx6 / patches-3.10 / 011-pci-tweaks.patch
1 --- a/arch/arm/boot/dts/imx6qdl.dtsi
2 +++ b/arch/arm/boot/dts/imx6qdl.dtsi
3 @@ -119,7 +119,7 @@
4                                   0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
5                         num-lanes = <1>;
6                         interrupts = <0 123 0x04>;
7 -                       clocks = <&clks 189>, <&clks 187>, <&clks 205>, <&clks 144>;
8 +                       clocks = <&clks 189>, <&clks 187>, <&clks 198>, <&clks 144>;
9                         clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi";
10                         status = "disabled";
11                 };
12 --- a/drivers/pci/host/pci-imx6.c
13 +++ b/drivers/pci/host/pci-imx6.c
14 @@ -200,12 +200,6 @@
15  static int imx6q_pcie_abort_handler(unsigned long addr,
16                 unsigned int fsr, struct pt_regs *regs)
17  {
18 -       /*
19 -        * If it was an imprecise abort, then we need to correct the
20 -        * return address to be _after_ the instruction.
21 -        */
22 -       if (fsr & (1 << 10))
23 -               regs->ARM_pc += 4;
24         return 0;
25  }
26  
27 @@ -322,7 +316,7 @@
28                         IMX6Q_GPR12_PCIE_CTL_2, 1 << 10);
29  
30         while (!dw_pcie_link_up(pp)) {
31 -               usleep_range(100, 1000);
32 +               usleep_range(2000, 3000);
33                 count++;
34                 if (count >= 10) {
35                         dev_err(pp->dev, "phy link never came up\n");