linux-stable/arch/mips/pci
Mathias Kresin 0316b05311
MIPS: ath79: get PCIe controller out of reset
The ar724x pci driver expects the PCIe controller to be brought out of
reset by the bootloader.

At least the AVM Fritz 300E bootloader doesn't take care of releasing
the different PCIe controller related resets which causes an endless
hang as soon as either the PCIE Reset register (0x180f0018) or the PCI
Application Control register (0x180f0000) is read from.

Do the full "PCIE Root Complex Initialization Sequence" if the PCIe
host controller is still in reset during probing.

The QCA u-boot sleeps 10ms after the PCIE Application Control bit is
set to ready. It has been shown that 10ms might not be enough time if
PCIe should be used right after setting the bit. During my tests it
took up to 20ms till the link was up. Giving the link up to 100ms
should work for all cases.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/19916/
Cc: James Hogan <jhogan@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
2018-07-24 19:08:06 -07:00
..
fixup-bcm63xx.c
fixup-capcella.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-cobalt.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-emma2rh.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-fuloong2e.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-ip32.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fixup-jmr3927.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-lantiq.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-lemote2f.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-loongson3.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-malta.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fixup-mpc30x.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-pmcmsp.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-rbtx4927.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-rbtx4938.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-rc32434.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
fixup-sb1250.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
fixup-sni.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-tb0219.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-tb0226.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
fixup-tb0287.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msi-octeon.c MIPS/PCI: Use for_pci_msi_entry() to access MSI device list 2015-07-22 18:37:42 +02:00
msi-xlp.c MIPS: Netlogic: Use chip_data for irq_chip methods 2015-09-03 12:08:03 +02:00
ops-bcm63xx.c MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
ops-bonito64.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-bridge.c MIPS: Use !pci_is_root_bus(bus) in ops-bridge.c 2018-06-24 09:27:27 -07:00
ops-emma2rh.c MIPS: ops-emma2rh: Drop nonsensical db_assert 2015-08-26 15:23:35 +02:00
ops-gt64xxx_pci0.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ops-lantiq.c MIPS: Change my email address 2016-05-13 14:02:18 +02:00
ops-loongson2.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-loongson3.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ops-mace.c PCI: Remove unnecessary #includes of <asm/pci.h> 2015-06-08 07:56:09 -05:00
ops-msc.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-nile4.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ops-pmcmsp.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
ops-rc32434.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
ops-sni.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ops-tx3927.c mips: Update the email address of Geert Uytterhoeven 2014-06-02 16:34:41 +02:00
ops-tx4927.c MIPS: TXx9: Delete an unused variable in tx4927_pcibios_setup 2014-07-30 15:58:39 +02:00
ops-vr41xx.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-alchemy.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci-ar71xx.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-ar724x.c MIPS: ath79: get PCIe controller out of reset 2018-07-24 19:08:06 -07:00
pci-ar2315.c MIPS: ath25: use generic dma noncoherent ops 2018-06-24 09:27:27 -07:00
pci-bcm47xx.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-bcm63xx.c MIPS: BCM63XX: add support for BCM3368 Cable Modem 2013-07-01 15:10:53 +02:00
pci-bcm63xx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci-bcm1480.c MIPS: Add struct pci_ops member names to initialization 2015-01-16 15:04:38 +01:00
pci-bcm1480ht.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-emma2rh.c
pci-generic.c Update MIPS email addresses 2017-11-03 09:02:30 -07:00
pci-ip27.c arch: mips: pci: pci-ip27.c: Remove unused function 2018-06-24 09:27:27 -07:00
pci-ip32.c MIPS: make PCI_DMA_BUS_IS_PHYS=1 constant 2016-05-13 14:02:17 +02:00
pci-lantiq.c MIPS: pci: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +02:00
pci-lantiq.h MIPS: Change my email address 2016-05-13 14:02:18 +02:00
pci-lasat.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-legacy.c MIPS: PCI: Use dev_printk() when possible 2018-05-22 07:56:22 -05:00
pci-malta.c MIPS: CPS: Cluster support for topology functions 2017-08-30 00:57:28 +02:00
pci-mt7620.c MIPS: pci-mt7620: Enable PCIe on MT7688 2018-03-14 15:14:05 +00:00
pci-octeon.c MIPS: Octeon: move swiotlb declarations out of dma-coherence.h 2018-06-24 09:26:03 -07:00
pci-rc32434.c MIPS: RC32434: fix broken PCI resource initialization 2014-05-26 09:02:06 +02:00
pci-rt2880.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-rt3883.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-sb1250.c TTY:vt: convert remain take_over_console's users to do_take_over_console 2013-05-20 22:29:27 -07:00
pci-tx4927.c MIPS: TXx9: Modernize printing of kernel messages 2017-01-03 16:34:32 +01:00
pci-tx4938.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-tx4939.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-virtio-guest.c MIPS: paravirt: Add pci controller for virtio 2014-06-02 12:34:20 +02:00
pci-vr41xx.c MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-vr41xx.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pci-xlp.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci-xlr.c MIPS: PCI: Move map_irq() hooks out of initdata 2017-09-19 14:55:26 -05:00
pci.c MIPS: PCI: Fix smp_processor_id() in preemptible 2017-08-08 00:04:31 +02:00
pcie-octeon.c MIPS: Octeon: Unify QLM data types in CIU header. 2018-07-03 16:00:43 -07:00