[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZbvQB/X0kwFs7nAb@lizhi-Precision-Tower-5810>
Date: Thu, 1 Feb 2024 12:08:23 -0500
From: Frank Li <Frank.li@....com>
To: Bjorn Helgaas <helgaas@...nel.org>
Cc: bhelgaas@...gle.com, devicetree@...r.kernel.org,
gustavo.pimentel@...opsys.com, imx@...ts.linux.dev, kw@...ux.com,
leoyang.li@....com, linux-arm-kernel@...ts.infradead.org,
linux-imx@....com, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org, lorenzo.pieralisi@....com,
lpieralisi@...nel.org, mani@...nel.org,
manivannan.sadhasivam@...aro.org, minghuan.lian@....com,
mingkai.hu@....com, robh+dt@...nel.org, roy.zang@....com,
shawnguo@...nel.org, zhiqiang.hou@....com
Subject: Re: [PATCH v12 2/3] PCI: dwc: Implement general suspend/resume
functionality for L2/L3 transitions
On Thu, Feb 01, 2024 at 10:50:25AM -0600, Bjorn Helgaas wrote:
> On Mon, Aug 21, 2023 at 02:48:14PM -0400, Frank Li wrote:
> > Introduce helper function dw_pcie_get_ltssm() to retrieve SMLH_LTSS_STATE.
> > ...
>
> > diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
> > index 615660640801..91d13f9b21b1 100644
> > --- a/drivers/pci/controller/dwc/pcie-designware.h
> > +++ b/drivers/pci/controller/dwc/pcie-designware.h
>
> > @@ -364,6 +375,7 @@ struct dw_pcie_ops {
> > void (*write_dbi2)(struct dw_pcie *pcie, void __iomem *base, u32 reg,
> > size_t size, u32 val);
> > int (*link_up)(struct dw_pcie *pcie);
> > + enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *pcie);
>
> This has already been applied as
> https://git.kernel.org/linus/4774faf854f5 ("PCI: dwc: Implement
> generic suspend/resume functionality"), but this .get_ltssm() pointer
> doesn't seem to be used anywhere. Should we remove it until we need
> it?
Could you place hold on for a while? I am working on imx PCIe. One old
imx6 may need it!
If not, I will submit patch to clean it. My new patches depend on
https://lore.kernel.org/imx/ZbJ+tFPn3aOYHCwf@lizhi-Precision-Tower-5810/T/#t
All already reviewed, could you please pick up these, so I can continue
my futher work.
Another
https://lore.kernel.org/imx/20240201-pme_msg-v2-0-6767052fe6a4@nxp.com/T/#t
was under review.
After these, suspend/resume will become simple and common for all dwc
platform.
Frank.
>
> > +static inline enum dw_pcie_ltssm dw_pcie_get_ltssm(struct dw_pcie *pci)
> > +{
> > + u32 val;
> > +
> > + if (pci->ops && pci->ops->get_ltssm)
> > + return pci->ops->get_ltssm(pci);
> > +
> > + val = dw_pcie_readl_dbi(pci, PCIE_PORT_DEBUG0);
> > +
> > + return (enum dw_pcie_ltssm)FIELD_GET(PORT_LOGIC_LTSSM_STATE_MASK, val);
> > +}
Powered by blists - more mailing lists