[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