From: Yao Zi <me@ziyao.cc>
To: Manivannan Sadhasivam <mani@kernel.org>
Cc: "Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Siddharth Vadapalli" <s-vadapalli@ti.com>,
"Hans Zhang" <18255117159@163.com>,
"Kishon Vijay Abraham I" <kishon@kernel.org>,
"Chen Wang" <unicorn_wang@outlook.com>,
"Manikandan K Pillai" <mpillai@cadence.com>,
"Christophe JAILLET" <christophe.jaillet@wanadoo.fr>,
"Inochi Amaoto" <inochiama@gmail.com>,
"Han Gao" <rabenda.cn@gmail.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] PCI: sg2042: Avoid L0s and L1 on Sophgo 2042 PCIe Root Ports
Date: Fri, 27 Mar 2026 08:19:37 +0000 [thread overview]
Message-ID: <acY9kUDAuexKy19C@pie> (raw)
In-Reply-To: <wykv2qz7lt3v67n3hjjqlprjbhlv7eur5wiw2reagvu2sq3dhc@4y5x2yok4kho>
On Thu, Mar 26, 2026 at 10:15:16PM +0530, Manivannan Sadhasivam wrote:
> On Fri, Feb 27, 2026 at 06:19:25PM +0000, Yao Zi wrote:
> > Since commit f3ac2ff14834 ("PCI/ASPM: Enable all ClockPM and ASPM
> > states for devicetree platforms") force enable ASPM on all device tree
> > platform, the SG2042 root port breaks as it advertises L0s and L1
> > capabilities without supporting it.
> >
> > Provide a platform-specific initialization hook to override the L0s and
> > L1 support advertised in LNKCAP register of SG2042 Root Ports, so it
> > doesn't try to enable those states.
> >
> > Fixes: 4e27aca4881a ("riscv: sophgo: dts: add PCIe controllers for SG2042")
> > Co-authored-by: Inochi Amaoto <inochiama@gmail.com>
> > Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
> > Signed-off-by: Yao Zi <me@ziyao.cc>
> > ---
> > drivers/pci/controller/cadence/pcie-sg2042.c | 20 ++++++++++++++++++++
> > 1 file changed, 20 insertions(+)
> >
> > diff --git a/drivers/pci/controller/cadence/pcie-sg2042.c b/drivers/pci/controller/cadence/pcie-sg2042.c
> > index 0c50c74d03ee..3142f82bd393 100644
> > --- a/drivers/pci/controller/cadence/pcie-sg2042.c
> > +++ b/drivers/pci/controller/cadence/pcie-sg2042.c
> > @@ -32,6 +32,25 @@ static struct pci_ops sg2042_pcie_child_ops = {
> > .write = pci_generic_config_write,
> > };
> >
> > +static int sg2042_pcie_disable_l0s_l1(struct cdns_pcie_rc *rc)
> > +{
> > + struct cdns_pcie *pcie = &rc->pcie;
> > + u32 pcie_lnkcap_off;
> > + u32 lnkcap;
> > +
> > + pcie_lnkcap_off = CDNS_PCIE_RP_CAP_OFFSET + PCI_EXP_LNKCAP;
> > +
> > + lnkcap = cdns_pcie_rp_readw(pcie, pcie_lnkcap_off);
> > + lnkcap &= ~PCI_EXP_LNKCAP_ASPMS;
> > + cdns_pcie_rp_writew(pcie, pcie_lnkcap_off, lnkcap);
> > +
>
> cadence-host driver already has cdns_pcie_host_init_root_port() to initialize
> the Root Port. Since your intention is to modify the LNKCAP field, which belongs
> to the Root Port, you should do that in cdns_pcie_host_init_root_port() instead.
> I see no sg2042 specific registers used in this patch, so just set a flag in
> this driver like 'broken_aspm' and clear PCI_EXP_LNKCAP_ASPMS if set in
> cdns_pcie_host_init_root_port().
Okay, it makes sense. Will do it in v3.
> - Mani
>
> --
> மணிவண்ணன் சதாசிவம்
Regards,
Yao Zi
next prev parent reply other threads:[~2026-03-27 8:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-27 18:19 [PATCH v2 0/2] PCI/sg2042: Avoid L0s and L1 on Sophgo 2042 PCIe Root Ports Yao Zi
2026-02-27 18:19 ` [PATCH v2 1/2] PCI: cadence: Support platform-specific hooks for RC init/deinit Yao Zi
2026-03-03 1:08 ` Inochi Amaoto
2026-03-03 6:34 ` Chen Wang
2026-02-27 18:19 ` [PATCH v2 2/2] PCI: sg2042: Avoid L0s and L1 on Sophgo 2042 PCIe Root Ports Yao Zi
2026-02-27 18:24 ` Yao Zi
2026-03-03 1:09 ` Inochi Amaoto
2026-03-03 6:37 ` Chen Wang
2026-03-26 16:45 ` Manivannan Sadhasivam
2026-03-27 8:19 ` Yao Zi [this message]
2026-04-02 12:26 ` Chen 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=acY9kUDAuexKy19C@pie \
--to=me@ziyao.cc \
--cc=18255117159@163.com \
--cc=bhelgaas@google.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=inochiama@gmail.com \
--cc=kishon@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=mpillai@cadence.com \
--cc=rabenda.cn@gmail.com \
--cc=robh@kernel.org \
--cc=s-vadapalli@ti.com \
--cc=unicorn_wang@outlook.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.