linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Jim Quinlan <james.quinlan@broadcom.com>
Cc: "Jim Quinlan" <jim2101024@gmail.com>,
	"open list:PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS"
	<linux-pci@vger.kernel.org>,
	"Nicolas Saenz Julienne" <nsaenz@kernel.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Cyril Brulebois" <kibi@debian.org>,
	"maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE"
	<bcm-kernel-feedback-list@broadcom.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE"
	<linux-rpi-kernel@lists.infradead.org>,
	"moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE"
	<linux-arm-kernel@lists.infradead.org>,
	"open list" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 2/6] PCI: brcmstb: Split brcm_pcie_setup() into two funcs
Date: Mon, 18 Jul 2022 17:40:00 -0500	[thread overview]
Message-ID: <20220718224000.GA1456196@bhelgaas> (raw)
In-Reply-To: <CA+-6iNwjPr2gu_oyn4NheLPJZHh-3eib-3onz63sfNOJpdJ6Tw@mail.gmail.com>

On Mon, Jul 18, 2022 at 02:56:03PM -0400, Jim Quinlan wrote:
> On Mon, Jul 18, 2022 at 2:14 PM Bjorn Helgaas <helgaas@kernel.org> wrote:
> > On Sat, Jul 16, 2022 at 06:24:49PM -0400, Jim Quinlan wrote:
> > > Currently, the function does the setup for establishing PCIe link-up
> > > with the downstream device, and it does the actual link-up as well.
> > > The calling sequence is (roughly) the following in the probe:
> > >
> > > -> brcm_pcie_probe()
> > >     -> brcm_pcie_setup();                       /* Set-up and link-up */
> > >     -> pci_host_probe(bridge);
> > >
> > > This commit splits the setup function in two: brcm_pcie_setup(), which only
> > > does the set-up, and brcm_pcie_start_link(), which only does the link-up.
> > > The reason why we are doing this is to lay a foundation for subsequent
> > > commits so that we can turn on any power regulators, as described in the
> > > root port's DT node, prior to doing link-up.
> >
> > All drivers that care about power regulators turn them on before
> > link-up, but typically those regulators are described directly under
> > the host bridge itself.
> 
> Actually, what you describe is what I proposed with my v1 back in Nov 2020.
> The binding commit message said,
> 
>     "Quite similar to the regulator bindings found in
>     "rockchip-pcie-host.txt", this allows optional regulators to be
>     attached and controlled by the PCIe RC driver."
> 
> > IIUC the difference here is that you have regulators described under
> > Root Ports (not the host bridge/Root Complex itself), so you don't
> > know about them until you've enumerated the Root Ports.
> > brcm_pcie_probe() can't turn them on directly because it doesn't know
> > what Root Ports are present and doesn't know about regulators below
> > them.
> 
> The reviewer's requested me to move the regulator node(s)
> elsewhere, and at some point later it was requested to be placed
> under the Root Port driver.  I would love to return them under the
> host bridge, just say the word!

Actually, I think my understanding is wrong.  Even though the PCI core
hasn't enumerated the Root Port as a pci_dev, brcm_pcie_setup() knows
about it and should be able to look up the regulators and turn them
on.

Can you dig up the previous discussion about why the regulators need
to be under the Root Port and why they can't be turned on before
calling pci_host_probe()?

Bjorn

  parent reply	other threads:[~2022-07-18 22:40 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-16 22:24 [PATCH v2 0/6] PCI: brcmstb: Re-submit reverted patchset Jim Quinlan
2022-07-16 22:24 ` [PATCH v2 1/6] PCI: brcmstb: Remove unnecessary forward declarations Jim Quinlan
2022-07-16 22:24 ` [PATCH v2 2/6] PCI: brcmstb: Split brcm_pcie_setup() into two funcs Jim Quinlan
2022-07-18 13:11   ` Pali Rohár
2022-07-18 13:37     ` Jim Quinlan
2022-07-18 17:05       ` Bjorn Helgaas
2022-07-18 18:01         ` Pali Rohár
2022-07-18 18:14   ` Bjorn Helgaas
2022-07-18 18:56     ` Jim Quinlan
2022-07-18 19:23       ` Bjorn Helgaas
2022-07-18 22:40       ` Bjorn Helgaas [this message]
2022-07-19 13:08         ` Jim Quinlan
2022-07-19 20:03           ` Bjorn Helgaas
2022-07-20 14:53             ` Jim Quinlan
2022-07-20 16:18               ` Rob Herring
2022-07-20 21:34                 ` Florian Fainelli
2022-07-21 14:27                   ` Rob Herring
2022-07-18 22:40     ` Bjorn Helgaas
2022-07-20 20:37       ` Bjorn Helgaas
2022-07-21 14:56         ` Jim Quinlan
2022-07-21 16:10           ` Bjorn Helgaas
2022-07-16 22:24 ` [PATCH v2 3/6] PCI: brcmstb: Add "refusal mode" to preclude PCIe-induced CPU aborts Jim Quinlan
2022-07-20 22:05   ` Bjorn Helgaas
2022-07-21 14:53     ` Jim Quinlan
2022-07-21 15:46       ` Bjorn Helgaas
2022-07-20 22:08   ` Bjorn Helgaas
2022-07-16 22:24 ` [PATCH v2 4/6] PCI: brcmstb: Add mechanism to turn on subdev regulators Jim Quinlan
2022-07-16 22:24 ` [PATCH v2 5/6] PCI: brcmstb: Add control of subdevice voltage regulators Jim Quinlan
2022-07-16 22:24 ` [PATCH v2 6/6] PCI: brcmstb: Do not turn off WOL regulators on suspend Jim Quinlan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220718224000.GA1456196@bhelgaas \
    --to=helgaas@kernel.org \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bhelgaas@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=james.quinlan@broadcom.com \
    --cc=jim2101024@gmail.com \
    --cc=kibi@debian.org \
    --cc=kw@linux.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=lpieralisi@kernel.org \
    --cc=nsaenz@kernel.org \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).