linux-stable/drivers/pci
Christian Marangi 80f876b26d PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks
[ Upstream commit 38f897ae3d ]

We currently enable clocks BEFORE we write to PARF_PHY_CTRL reg to enable
clocks and resets. This causes the driver to never set to a ready state
with the error 'Phy link never came up'.

This is caused by the PHY clock getting enabled before setting the required
bits in the PARF regs.

A workaround for this was set but with this new discovery we can drop
the workaround and use a proper solution to the problem by just enabling
the clock only AFTER the PARF_PHY_CTRL bit is set.

This correctly sets up the PCIe link and makes it usable even when a
bootloader leaves the PCIe link in an undefined state.

Fixes: 82a823833f ("PCI: qcom: Add Qualcomm PCIe controller driver")
Link: https://lore.kernel.org/r/20220708222743.27019-1-ansuelsmth@gmail.com
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-17 14:23:51 +02:00
..
controller PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks 2022-08-17 14:23:51 +02:00
endpoint PCI: endpoint: Don't stop controller when unbinding endpoint function 2022-08-17 14:23:49 +02:00
hotplug PCI: pciehp: Ignore Link Down/Up caused by error-induced Hot Reset 2022-07-12 16:34:52 +02:00
pcie PCI/portdrv: Don't disable AER reporting in get_port_device_capability() 2022-08-17 14:23:51 +02:00
switch
access.c PCI: Reduce warnings on possible RW1C corruption 2022-04-08 14:23:37 +02:00
ats.c
bus.c
ecam.c
host-bridge.c
iov.c
irq.c
Kconfig
Makefile
mmap.c
msi.c PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity() 2022-01-27 11:04:11 +01:00
of.c
p2pdma.c memremap: remove support for external pgmap refcounts 2022-08-17 14:23:43 +02:00
pci-acpi.c PCI/ACPI: Allow D3 only if Root Port can signal and wake from D3 2022-06-09 10:23:04 +02:00
pci-bridge-emul.c PCI: pci-bridge-emul: Add definitions for missing capabilities registers 2022-05-12 12:30:27 +02:00
pci-bridge-emul.h
pci-driver.c
pci-label.c
pci-mid.c
pci-pf-stub.c
pci-stub.c
pci-sysfs.c
pci.c PCI/PM: Fix bridge_d3_blacklist[] Elo i2 overwrite of Gigabyte X299 2022-06-09 10:23:21 +02:00
pci.h
probe.c
proc.c
quirks.c PCI: Avoid broken MSI on SB600 USB devices 2022-04-08 14:23:42 +02:00
remove.c
rom.c
search.c
setup-bus.c
setup-irq.c
setup-res.c
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c