From: Bjorn Helgaas <helgaas@kernel.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: chester62515@gmail.com, mbrugger@suse.com,
ghennadi.procopciuc@oss.nxp.com, s32@nxp.com,
bhelgaas@google.com, jingoohan1@gmail.com, lpieralisi@kernel.org,
kwilczynski@kernel.org, mani@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, Ionut.Vicovan@nxp.com,
larisa.grigore@nxp.com, Ghennadi.Procopciuc@nxp.com,
ciprianmarian.costea@nxp.com, bogdan.hamciuc@nxp.com,
Frank.li@nxp.com, linux-arm-kernel@lists.infradead.org,
linux-pci@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, imx@lists.linux.dev,
cassel@kernel.org, Richard Zhu <hongxing.zhu@nxp.com>,
Lucas Stach <l.stach@pengutronix.de>,
Minghuan Lian <minghuan.Lian@nxp.com>,
Mingkai Hu <mingkai.hu@nxp.com>, Roy Zang <roy.zang@nxp.com>,
Christian Bruel <christian.bruel@foss.st.com>,
linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [PATCH 3/4 v3] PCI: s32g: Add initial PCIe support (RC)
Date: Wed, 5 Nov 2025 18:05:31 -0600 [thread overview]
Message-ID: <20251106000531.GA1930429@bhelgaas> (raw)
In-Reply-To: <CAKfTPtCtHquxtK=Zx2WSNm15MmqeUXO8XXi8FkS4EpuP80PP7g@mail.gmail.com>
[+cc imx6, layerscape, stm32 maintainers for possible suspend bug]
On Fri, Oct 24, 2025 at 08:50:46AM +0200, Vincent Guittot wrote:
> On Wed, 22 Oct 2025 at 21:04, Bjorn Helgaas <helgaas@kernel.org> wrote:
> > On Wed, Oct 22, 2025 at 07:43:08PM +0200, Vincent Guittot wrote:
> > > Add initial support of the PCIe controller for S32G Soc family. Only
> > > host mode is supported.
> > > +static void s32g_init_pcie_controller(struct s32g_pcie *s32g_pp)
> > > +{
> > > ...
> > > + /*
> > > + * Make sure we use the coherency defaults (just in case the settings
> > > + * have been changed from their reset values)
> > > + */
> > > + s32g_pcie_reset_mstr_ace(pci, memblock_start_of_DRAM());
> >
> > This seems sketchy and no other driver uses memblock_start_of_DRAM().
> > Shouldn't a physical memory address like this come from devicetree
> > somehow?
>
> I was using DT but has been asked to not use it and was proposed to
> use memblock_start_of_DRAM() instead
Can you point me to that conversation?
> > > + s32g_pp->ctrl_base = devm_platform_ioremap_resource_byname(pdev, "ctrl");
> > > + if (IS_ERR(s32g_pp->ctrl_base))
> > > + return PTR_ERR(s32g_pp->ctrl_base);
> >
> > This looks like the first DWC driver that uses a "ctrl" resource. Is
> > this something unique to s32g, or do other drivers have something
> > similar but use a different name?
>
> AFAICT this seems to be s32g specific in the RM
It does look like there's very little consistency in reg-names across
drivers, so I guess it's fine.
> > > +static int s32g_pcie_suspend_noirq(struct device *dev)
> > > +{
> > > + struct s32g_pcie *s32g_pp = dev_get_drvdata(dev);
> > > + struct dw_pcie *pci = &s32g_pp->pci;
> > > +
> > > + if (!dw_pcie_link_up(pci))
> > > + return 0;
> >
> > Does something bad happen if you omit the link up check and the link
> > is not up when we get here? The check is racy (the link could go down
> > between dw_pcie_link_up() and dw_pcie_suspend_noirq()), so it's not
> > completely reliable.
> >
> > If you have to check, please add a comment about why this driver needs
> > it when no other driver does.
>
> dw_pcie_suspend_noirq returns an error and the suspend fails
The implication is that *every* user of dw_pcie_suspend_noirq() would
have to check for the link being up. There are only three existing
callers:
imx_pcie_suspend_noirq()
ls_pcie_suspend_noirq()
stm32_pcie_suspend_noirq()
but none of them checks for the link being up.
> I will add a comment
> /*
> * If the link is not up, there is nothing to suspend and resume
Sometimes true, but still racy as I mentioned, and doesn't explain why
s32g is different from imx, ls, and stm32.
> > > + return dw_pcie_suspend_noirq(pci);
> > > +}
next prev parent reply other threads:[~2025-11-06 0:05 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-22 17:43 [PATCH 0/4 v3] PCI: s32g: Add support for PCIe controller Vincent Guittot
2025-10-22 17:43 ` [PATCH 1/4 v3] dt-bindings: PCI: s32g: Add NXP " Vincent Guittot
2025-10-22 19:17 ` Frank Li
2025-10-24 6:58 ` Vincent Guittot
2025-11-06 0:00 ` Bjorn Helgaas
2025-11-06 7:51 ` Vincent Guittot
2025-11-06 7:12 ` Manivannan Sadhasivam
2025-11-06 8:09 ` Vincent Guittot
2025-11-06 17:38 ` Bjorn Helgaas
2025-11-10 9:14 ` Vincent Guittot
2025-10-22 17:43 ` [PATCH 2/4 v3] PCI: dw: Add more registers and bitfield definition Vincent Guittot
2025-10-22 17:43 ` [PATCH 3/4 v3] PCI: s32g: Add initial PCIe support (RC) Vincent Guittot
2025-10-22 19:04 ` Bjorn Helgaas
2025-10-24 6:50 ` Vincent Guittot
2025-11-05 10:28 ` Niklas Cassel
2025-11-05 10:43 ` Ilpo Järvinen
2025-11-05 11:00 ` Niklas Cassel
2025-11-06 0:05 ` Bjorn Helgaas [this message]
2025-11-06 6:24 ` Manivannan Sadhasivam
2025-11-06 7:50 ` Vincent Guittot
2025-11-14 10:05 ` Christian Bruel
2025-11-14 21:35 ` Bjorn Helgaas
2025-11-06 7:46 ` Vincent Guittot
2025-10-22 19:44 ` Frank Li
2025-10-24 6:53 ` Vincent Guittot
2025-11-05 7:58 ` Vincent Guittot
2025-11-06 17:23 ` Bjorn Helgaas
2025-11-06 17:33 ` Vincent Guittot
2025-10-22 17:43 ` [PATCH 4/4 v3] MAINTAINERS: Add MAINTAINER for NXP S32G PCIe driver Vincent Guittot
2025-10-22 19:20 ` Frank Li
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=20251106000531.GA1930429@bhelgaas \
--to=helgaas@kernel.org \
--cc=Frank.li@nxp.com \
--cc=Ghennadi.Procopciuc@nxp.com \
--cc=Ionut.Vicovan@nxp.com \
--cc=bhelgaas@google.com \
--cc=bogdan.hamciuc@nxp.com \
--cc=cassel@kernel.org \
--cc=chester62515@gmail.com \
--cc=christian.bruel@foss.st.com \
--cc=ciprianmarian.costea@nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=ghennadi.procopciuc@oss.nxp.com \
--cc=hongxing.zhu@nxp.com \
--cc=imx@lists.linux.dev \
--cc=jingoohan1@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=l.stach@pengutronix.de \
--cc=larisa.grigore@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=mbrugger@suse.com \
--cc=minghuan.Lian@nxp.com \
--cc=mingkai.hu@nxp.com \
--cc=robh@kernel.org \
--cc=roy.zang@nxp.com \
--cc=s32@nxp.com \
--cc=vincent.guittot@linaro.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).