[PATCH] PCI: brcmstb: Restore initial fundamental reset
Florian Fainelli
f.fainelli at gmail.com
Thu Nov 12 10:44:35 EST 2020
+JimQ,
On 11/12/2020 5:14 AM, Phil Elwell wrote:
> Commit 04356ac30771 ("PCI: brcmstb: Add bcm7278 PERST# support")
> 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.
>
> Fixes: commit 04356ac30771 ("PCI: brcmstb: Add bcm7278 PERST# support")
>
> Signed-off-by: Phil Elwell <phil at raspberrypi.com>
This does indeed seem to have been lost during that commit, I will let
JimQ comment on whether this was intentional or not. Please make sure
you copy him, always, he wrote the driver after all.
> ---
> drivers/pci/controller/pcie-brcmstb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
> index bea86899bd5d..a90d6f69c5a1 100644
> --- a/drivers/pci/controller/pcie-brcmstb.c
> +++ b/drivers/pci/controller/pcie-brcmstb.c
> @@ -869,6 +869,8 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie)
>
> /* 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 */
>
--
Florian
More information about the linux-rpi-kernel
mailing list