[PATCH v2 2/6] PCI: brcmstb: Split brcm_pcie_setup() into two funcs

Bjorn Helgaas helgaas at kernel.org
Mon Jul 18 15:40:33 PDT 2022


On Mon, Jul 18, 2022 at 01:14:25PM -0500, Bjorn Helgaas wrote:
> ...

> So I think brcm_pcie_setup() does initialization that doesn't depend
> on the link or any downstream devices, and brcm_pcie_start_link() does
> things that depend on the link being up.  Right?
> 
> If so, "start_link" might be a slight misnomer since AFAICT
> brcm_pcie_start_link() doesn't do anything to initiate link-up except
> maybe deasserting fundamental reset.  Some drivers start the LTSSM or
> explicitly enable link training, but brcm_pcie_start_link() doesn't
> seem to do anything like that.
> 
> brcm_pcie_start_link() still does brcm_pcie_set_outbound_win().  Does
> that really depend on the link being up?  If that only affects the
> Root Port, maybe it could be done before link-up?

What about the /* PCIe->SCB endian mode for BAR */ thing?  Does that
depend on the link being up?

And the "Refclk from RC should be gated with CLKREQ#" part?  Does that
depend on the link being up?

It seems obvious that brcm_pcie_set_ssc() and reading the negotiated
link speed and width depend on the link being up.



More information about the linux-arm-kernel mailing list