mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
|
From e819152f96f67e20f1d7a00446cd9c0035850825 Mon Sep 17 00:00:00 2001
|
||
|
From: Phil Elwell <phil@raspberrypi.com>
|
||
|
Date: Wed, 11 Nov 2020 17:08:33 +0000
|
||
|
Subject: [PATCH] PCI: brcmstb: Restore initial fundamental reset
|
||
|
|
||
|
[1] replaced a single reset function with a pointer to one of two
|
||
|
implementations, but also removed the call asserting the reset
|
||
|
at the start of brcm_pcie_setup. Doing so breaks Raspberry Pis with
|
||
|
VL805 XHCI controllers lacking dedicated SPI EEPROMs, which have been
|
||
|
used for USB booting but then need to be reset so that the kernel
|
||
|
can reconfigure them. The lack of a reset causes the firmware's loading
|
||
|
of the EEPROM image to RAM to fail, breaking USB for the kernel.
|
||
|
|
||
|
See: https://www.raspberrypi.org/forums/viewtopic.php?p=1758157#p1758157
|
||
|
|
||
|
Fixes: 04356ac30771 ("PCI: brcmstb: Add bcm7278 PERST# support")
|
||
|
|
||
|
[1] 04356ac30771 ("PCI: brcmstb: Add bcm7278 PERST# support")
|
||
|
|
||
|
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||
|
---
|
||
|
drivers/pci/controller/pcie-brcmstb.c | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
--- a/drivers/pci/controller/pcie-brcmstb.c
|
||
|
+++ b/drivers/pci/controller/pcie-brcmstb.c
|
||
|
@@ -879,6 +879,8 @@ static int brcm_pcie_setup(struct brcm_p
|
||
|
|
||
|
/* Reset the bridge */
|
||
|
pcie->bridge_sw_init_set(pcie, 1);
|
||
|
+ pcie->perst_set(pcie, 1);
|
||
|
+
|
||
|
usleep_range(100, 200);
|
||
|
|
||
|
/* Take the bridge out of reset */
|