From: Bjorn Helgaas <helgaas@kernel.org>
To: Lorenzo Bianconi <lorenzo@kernel.org>
Cc: "Ryder Lee" <ryder.lee@mediatek.com>,
"Jianjun Wang" <jianjun.wang@mediatek.com>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 3/3] PCI: mediatek-gen3: Move reset/assert callbacks in .power_up()
Date: Thu, 7 Nov 2024 09:27:05 -0600 [thread overview]
Message-ID: <20241107152705.GA1614612@bhelgaas> (raw)
In-Reply-To: <20241107-pcie-en7581-fixes-v1-3-af0c872323c7@kernel.org>
On Thu, Nov 07, 2024 at 02:50:55PM +0100, Lorenzo Bianconi wrote:
> In order to make the code more readable, move phy and mac reset lines
> assert/de-assert configuration in .power_up callback
> (mtk_pcie_en7581_power_up/mtk_pcie_power_up).
>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> ---
> drivers/pci/controller/pcie-mediatek-gen3.c | 24 ++++++++++++++++--------
> 1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c
> index 8c8c733a145634cdbfefd339f4a692f25a6e24de..c0127d0fb4f059b9f9e816360130e183e8f0e990 100644
> --- a/drivers/pci/controller/pcie-mediatek-gen3.c
> +++ b/drivers/pci/controller/pcie-mediatek-gen3.c
> @@ -867,6 +867,13 @@ static int mtk_pcie_en7581_power_up(struct mtk_gen3_pcie *pcie)
> int err;
> u32 val;
>
> + /*
> + * The controller may have been left out of reset by the bootloader
> + * so make sure that we get a clean start by asserting resets here.
> + */
> + reset_control_bulk_assert(pcie->soc->phy_resets.num_resets,
> + pcie->phy_resets);
> + reset_control_assert(pcie->mac_reset);
Add blank line here.
> /*
> * Wait for the time needed to complete the bulk assert in
> * mtk_pcie_setup for EN7581 SoC.
> @@ -941,6 +948,15 @@ static int mtk_pcie_power_up(struct mtk_gen3_pcie *pcie)
> struct device *dev = pcie->dev;
> int err;
>
> + /*
> + * The controller may have been left out of reset by the bootloader
> + * so make sure that we get a clean start by asserting resets here.
> + */
> + reset_control_bulk_assert(pcie->soc->phy_resets.num_resets,
> + pcie->phy_resets);
> + reset_control_assert(pcie->mac_reset);
> + usleep_range(10, 20);
Unrelated to this patch, but since you're moving it, do you know what
this delay is for? Can we add a #define and a spec citation for it?
Is there a requirement that the PHY and MAC reset ordering be
different for EN7581 vs other chips?
EN7581:
assert PHY reset
assert MAC reset
power on PHY
deassert PHY reset
deassert MAC reset
others:
assert PHY reset
assert MAC reset
deassert PHY reset
power on PHY
deassert MAC reset
Is there one order that would work for both?
> /* PHY power on and enable pipe clock */
> err = reset_control_bulk_deassert(pcie->soc->phy_resets.num_resets, pcie->phy_resets);
> if (err) {
> @@ -1013,14 +1029,6 @@ static int mtk_pcie_setup(struct mtk_gen3_pcie *pcie)
> * counter since the bulk is shared.
> */
> reset_control_bulk_deassert(pcie->soc->phy_resets.num_resets, pcie->phy_resets);
> - /*
> - * The controller may have been left out of reset by the bootloader
> - * so make sure that we get a clean start by asserting resets here.
> - */
> - reset_control_bulk_assert(pcie->soc->phy_resets.num_resets, pcie->phy_resets);
> -
> - reset_control_assert(pcie->mac_reset);
> - usleep_range(10, 20);
>
> /* Don't touch the hardware registers before power up */
> err = pcie->soc->power_up(pcie);
>
> --
> 2.47.0
>
next prev parent reply other threads:[~2024-11-07 15:33 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-07 13:50 [PATCH 0/3] PCI: mediatek-gen3: mtk_pcie_en7581_power_up code refactoring Lorenzo Bianconi
2024-11-07 13:50 ` [PATCH 1/3] PCI: mediatek-gen3: Add missing reset_control_deassert for mac_rst in mtk_pcie_en7581_power_up Lorenzo Bianconi
2024-11-07 13:50 ` [PATCH 2/3] PCI: mediatek-gen3: rely on clk_bulk_prepare_enable " Lorenzo Bianconi
2024-11-07 15:19 ` Bjorn Helgaas
2024-11-07 15:28 ` Lorenzo Bianconi
2024-11-07 13:50 ` [PATCH 3/3] PCI: mediatek-gen3: Move reset/assert callbacks in .power_up() Lorenzo Bianconi
2024-11-07 15:27 ` Bjorn Helgaas [this message]
2024-11-07 16:08 ` Lorenzo Bianconi
2024-11-07 16:21 ` Bjorn Helgaas
2024-11-07 16:37 ` Lorenzo Bianconi
2024-11-08 2:51 ` Jianjun Wang (王建军)
2024-11-08 16:48 ` Bjorn Helgaas
2024-11-08 17:15 ` lorenzo
2024-11-08 2:41 ` Jianjun Wang (王建军)
2024-11-08 8:39 ` lorenzo
2024-11-08 16:37 ` Bjorn Helgaas
2024-11-08 17:04 ` lorenzo
2024-11-08 17:17 ` Bjorn Helgaas
2024-11-08 17:23 ` lorenzo
2024-11-11 6:04 ` Jianjun Wang (王建军)
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=20241107152705.GA1614612@bhelgaas \
--to=helgaas@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bhelgaas@google.com \
--cc=jianjun.wang@mediatek.com \
--cc=kw@linux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=matthias.bgg@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=ryder.lee@mediatek.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.