From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Krishna Chaitanya Chundru <quic_krichai@quicinc.com>
Cc: "Bjorn Helgaas" <helgaas@kernel.org>,
linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org, mka@chromium.org,
quic_vbadigan@quicinc.com, quic_hemantk@quicinc.com,
quic_nitegupt@quicinc.com, quic_skananth@quicinc.com,
quic_ramkri@quicinc.com, swboyd@chromium.org,
dmitry.baryshkov@linaro.org,
"Stanimir Varbanov" <svarbanov@mm-sol.com>,
"Andy Gross" <agross@kernel.org>,
"Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konrad.dybcio@somainline.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Bjorn Helgaas" <bhelgaas@google.com>
Subject: Re: [PATCH v6 2/5] PCI: qcom: Add retry logic for link to be stable in L1ss
Date: Mon, 12 Sep 2022 23:03:46 +0530 [thread overview]
Message-ID: <20220912173346.GB25849@workstation> (raw)
In-Reply-To: <7310fc0c-5f87-87a6-4484-d60970ce3285@quicinc.com>
On Mon, Sep 12, 2022 at 09:39:36PM +0530, Krishna Chaitanya Chundru wrote:
>
> On 9/10/2022 1:20 AM, Bjorn Helgaas wrote:
> > On Fri, Sep 09, 2022 at 02:14:41PM +0530, Krishna chaitanya chundru wrote:
> > > Some specific devices are taking time to settle the link in L1ss.
> > > So added a retry logic before returning from the suspend op.
> > "L1ss" is not a state. If you mean "L1.1" or "L1.2", say that. Also
> > in code comments below.
> Yes L1ss means L1.2 and L1.2 We will update it next patch
> > s/So added a/Add/
> >
> > What are these specific devices? Is this a qcom controller defect?
> > An endpoint defect that should be addressed via some kind of generic
> > quirk?
>
> This is depending up on the endpoint devices and it varies to device to
> device.
>
Can we identify the source of the traffic? Is the NVMe driver not
flushing it's queues correctly?
> We are thinking this is not a defect if there is some traffic in the link
> the link will
>
> not go to L1ss .
>
Is this hack still required even after switching to syscore ops?
Thanks,
Mani
> >
> > > Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> > > ---
> > > drivers/pci/controller/dwc/pcie-qcom.c | 36 +++++++++++++++++++++++-----------
> > > 1 file changed, 25 insertions(+), 11 deletions(-)
> > >
> > > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
> > > index 6e04d0d..15c2067 100644
> > > --- a/drivers/pci/controller/dwc/pcie-qcom.c
> > > +++ b/drivers/pci/controller/dwc/pcie-qcom.c
> > > @@ -1809,26 +1809,40 @@ static int qcom_pcie_probe(struct platform_device *pdev)
> > > static int __maybe_unused qcom_pcie_pm_suspend(struct qcom_pcie *pcie)
> > > {
> > > u32 val;
> > > + ktime_t timeout, start;
> > > struct dw_pcie *pci = pcie->pci;
> > > struct device *dev = pci->dev;
> > > if (!pcie->cfg->supports_system_suspend)
> > > return 0;
> > > - /* if the link is not active turn off clocks */
> > > - if (!dw_pcie_link_up(pci)) {
> > > - dev_info(dev, "Link is not active\n");
> > > - goto suspend;
> > > - }
> > > + start = ktime_get();
> > > + /* Wait max 200 ms */
> > > + timeout = ktime_add_ms(start, 200);
> > > - /* if the link is not in l1ss don't turn off clocks */
> > > - val = readl(pcie->parf + PCIE20_PARF_PM_STTS);
> > > - if (!(val & PCIE20_PARF_PM_STTS_LINKST_IN_L1SUB)) {
> > > - dev_warn(dev, "Link is not in L1ss\n");
> > > - return 0;
> > > + while (1) {
> > > +
> > > + if (!dw_pcie_link_up(pci)) {
> > > + dev_warn(dev, "Link is not active\n");
> > > + break;
> > > + }
> > > +
> > > + /* if the link is not in l1ss don't turn off clocks */
> > > + val = readl(pcie->parf + PCIE20_PARF_PM_STTS);
> > > + if ((val & PCIE20_PARF_PM_STTS_LINKST_IN_L1SUB)) {
> > > + dev_dbg(dev, "Link enters L1ss after %d ms\n",
> > > + ktime_to_ms(ktime_get() - start));
> > > + break;
> > > + }
> > > +
> > > + if (ktime_after(ktime_get(), timeout)) {
> > > + dev_warn(dev, "Link is not in L1ss\n");
> > > + return 0;
> > > + }
> > > +
> > > + udelay(1000);
> > > }
> > > -suspend:
> > > if (pcie->cfg->ops->suspend)
> > > pcie->cfg->ops->suspend(pcie);
> > > --
> > > 2.7.4
> > >
next prev parent reply other threads:[~2022-09-12 17:33 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-09 8:44 [PATCH v6 0/5] PCI: qcom: Add system suspend & resume support Krishna chaitanya chundru
2022-09-09 8:44 ` [PATCH v6 1/5] PCI: qcom: Add system suspend and " Krishna chaitanya chundru
2022-09-09 17:31 ` Matthias Kaehlcke
2022-09-12 16:06 ` Krishna Chaitanya Chundru
2022-09-12 16:54 ` Matthias Kaehlcke
2022-09-12 17:09 ` Manivannan Sadhasivam
2022-09-09 8:44 ` [PATCH v6 2/5] PCI: qcom: Add retry logic for link to be stable in L1ss Krishna chaitanya chundru
2022-09-09 19:50 ` Bjorn Helgaas
2022-09-12 16:09 ` Krishna Chaitanya Chundru
2022-09-12 17:33 ` Manivannan Sadhasivam [this message]
2022-09-13 14:24 ` Krishna Chaitanya Chundru
2022-09-13 16:39 ` Manivannan Sadhasivam
2022-09-14 1:45 ` Krishna Chaitanya Chundru
2022-09-14 5:59 ` Manivannan Sadhasivam
2022-09-19 16:23 ` kernel test robot
2022-09-09 8:44 ` [PATCH v6 3/5] phy: core: Add support for phy power down & power up Krishna chaitanya chundru
2022-09-09 8:44 ` Krishna chaitanya chundru
2022-09-09 9:04 ` Dmitry Baryshkov
2022-09-09 9:04 ` Dmitry Baryshkov
2022-09-14 14:50 ` Krishna Chaitanya Chundru
2022-09-14 14:50 ` Krishna Chaitanya Chundru
2022-09-19 17:29 ` Dmitry Baryshkov
2022-09-19 17:29 ` Dmitry Baryshkov
2022-09-20 9:41 ` Krishna Chaitanya Chundru
2022-09-20 9:41 ` Krishna Chaitanya Chundru
2022-09-13 14:58 ` Vinod Koul
2022-09-13 14:58 ` Vinod Koul
2022-09-13 16:41 ` Bjorn Helgaas
2022-09-13 16:41 ` Bjorn Helgaas
2022-09-09 8:44 ` [PATCH v6 4/5] phy: qcom: Add power down/up callbacks to pcie phy Krishna chaitanya chundru
2022-09-09 8:44 ` Krishna chaitanya chundru
2022-09-09 8:44 ` [PATCH v6 5/5] clk: qcom: Alwaya on pcie gdsc Krishna chaitanya chundru
2022-09-12 17:04 ` Manivannan Sadhasivam
2022-09-13 6:42 ` Rajendra Nayak
2022-09-13 16:42 ` Manivannan Sadhasivam
2022-09-14 1:47 ` Krishna Chaitanya Chundru
2022-09-13 16:34 ` Bjorn Helgaas
2022-09-14 1:48 ` Krishna Chaitanya Chundru
2022-09-09 19:51 ` [PATCH v6 0/5] PCI: qcom: Add system suspend & resume support Bjorn Helgaas
2022-09-12 16:10 ` Krishna Chaitanya Chundru
2022-09-12 17:08 ` Bjorn Helgaas
2022-09-12 17:21 ` Manivannan Sadhasivam
2022-09-12 17:37 ` Manivannan Sadhasivam
2022-09-14 1:47 ` Krishna Chaitanya Chundru
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=20220912173346.GB25849@workstation \
--to=manivannan.sadhasivam@linaro.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=bhelgaas@google.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=helgaas@kernel.org \
--cc=konrad.dybcio@somainline.org \
--cc=kw@linux.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mka@chromium.org \
--cc=quic_hemantk@quicinc.com \
--cc=quic_krichai@quicinc.com \
--cc=quic_nitegupt@quicinc.com \
--cc=quic_ramkri@quicinc.com \
--cc=quic_skananth@quicinc.com \
--cc=quic_vbadigan@quicinc.com \
--cc=robh@kernel.org \
--cc=svarbanov@mm-sol.com \
--cc=swboyd@chromium.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 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.