From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A2743C433EF for ; Mon, 18 Jul 2022 22:41:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Owner; bh=YKmYk+BtqF7sn2bdxuJ8zKlKPZV4VkhNm1NFMnXq5hI=; b=QDy8rlK2WsDA0w M493+J1MuAf8dmt5coheLik66T4RK5bPdCiA05hU5A0BXAW1p/i9l/QobNihSOdz5bTHqSXkTnuVv FbzheLJWLF2kFxsHogMIu3VnFNs5DkjDRsVa8GhjO2K9OpM9GM+wjkSGW9ZBe3NsHfWbQt85/0GjE O7lvEWBJpvtt1ut7TZLmn45N2nPjkX2GTQWjaPUEKeobRROEJzuKPqY+0YwC1QtQUgAZqVgKwX3Gw EnAvZXcL3o6DMa1BJQSC0F0TixNeCM06NSnYS51DF7qG4ReBtCuubgxWJbqnK0k18Q+xlUfwCCUMk eWxOjzp/z3zX2DKaZqQA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oDZPL-002GWJ-3p; Mon, 18 Jul 2022 22:40:07 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oDZPI-002GVw-8H; Mon, 18 Jul 2022 22:40:05 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B922F61558; Mon, 18 Jul 2022 22:40:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD605C341C0; Mon, 18 Jul 2022 22:40:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1658184003; bh=1aFmPSkN+eagXMzM2UhrmyC197VaFyr+ob4HH3VJnOM=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=i6dod+Gg9t7S2m5jhwrZaYhc/CEWouVzPBYUpPvjCUfu415cW7RT36QV5KSiBUILw OJl5UhyysiCDFoXrVxQGsIangXj1B6qVawJg799QutQFlcLp9YrZCqDlJusiCOani9 bpvbsaGSehixnEzJpx/zrvG7tYndlGxUyz8MR/X2x9LpQKWng+eaPNm+5WdNBKZQm1 hS94aGjcPofP/LoU22U5Iqo+M2paLim9dJ9bfkLC30F4WD9EYcX8bSggJN6DIkd1ys qTcihfM+tBTVTZb9medpOau4UG/UVEnoYkvg3JMPc/2gsP6vr0eoLwK/fzaaXoyaF7 NrZxxEIFP09bg== Date: Mon, 18 Jul 2022 17:40:00 -0500 From: Bjorn Helgaas To: Jim Quinlan Cc: Jim Quinlan , "open list:PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS" , Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Cyril Brulebois , "maintainer:BROADCOM BCM7XXX ARM ARCHITECTURE" , Florian Fainelli , Lorenzo Pieralisi , Rob Herring , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , open list Subject: Re: [PATCH v2 2/6] PCI: brcmstb: Split brcm_pcie_setup() into two funcs Message-ID: <20220718224000.GA1456196@bhelgaas> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220718_154004_413554_82827008 X-CRM114-Status: GOOD ( 25.02 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Jul 18, 2022 at 02:56:03PM -0400, Jim Quinlan wrote: > On Mon, Jul 18, 2022 at 2:14 PM Bjorn Helgaas 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 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel