From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
To: "Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Kishon Vijay Abraham I" <kishon@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Jonathan Corbet" <corbet@lwn.net>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Rob Herring" <robh@kernel.org>
Cc: <linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
<mhi@lists.linux.dev>, <quic_vbadigan@quicinc.com>,
<quic_ramkri@quicinc.com>, <quic_nitegupt@quicinc.com>,
<quic_skananth@quicinc.com>, <quic_parass@quicinc.com>,
"Krishna chaitanya chundru" <quic_krichai@quicinc.com>,
Manivannan Sadhasivam <mani@kernel.org>
Subject: [PATCH v7 2/4] PCI: qcom-ep: Add support for D-state change notification
Date: Wed, 10 Jul 2024 16:38:15 +0530 [thread overview]
Message-ID: <20240710-dstate_notifier-v7-2-8d45d87b2b24@quicinc.com> (raw)
In-Reply-To: <20240710-dstate_notifier-v7-0-8d45d87b2b24@quicinc.com>
Add support to pass D-state change notification to Endpoint
function driver.
Read perst value to determine if the link is in D3Cold/D3hot.
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
---
drivers/pci/controller/dwc/pcie-qcom-ep.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c
index 236229f66c80..817fad805c51 100644
--- a/drivers/pci/controller/dwc/pcie-qcom-ep.c
+++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c
@@ -648,6 +648,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
struct device *dev = pci->dev;
u32 status = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_STATUS);
u32 mask = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_MASK);
+ pci_power_t state;
u32 dstate, val;
writel_relaxed(status, pcie_ep->parf + PARF_INT_ALL_CLEAR);
@@ -671,11 +672,16 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) &
DBI_CON_STATUS_POWER_STATE_MASK;
dev_dbg(dev, "Received D%d state event\n", dstate);
- if (dstate == 3) {
+ state = dstate;
+ if (dstate == PCI_D3hot) {
val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
val |= PARF_PM_CTRL_REQ_EXIT_L1;
writel_relaxed(val, pcie_ep->parf + PARF_PM_CTRL);
+
+ if (gpiod_get_value(pcie_ep->reset))
+ state = PCI_D3cold;
}
+ pci_epc_dstate_notify(pci->ep.epc, state);
} else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) {
dev_dbg(dev, "Received Linkup event. Enumeration complete!\n");
dw_pcie_ep_linkup(&pci->ep);
--
2.42.0
next prev parent reply other threads:[~2024-07-10 11:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-10 11:08 [PATCH v7 0/4] PCI: endpoint: add D-state change notifier support Krishna chaitanya chundru
2024-07-10 11:08 ` [PATCH v7 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
2024-07-10 11:08 ` Krishna chaitanya chundru [this message]
2024-07-10 12:11 ` [PATCH v7 2/4] PCI: qcom-ep: Add support for D-state change notification Bjorn Helgaas
2024-07-11 6:27 ` Krishna Chaitanya Chundru
2024-07-11 18:48 ` Bjorn Helgaas
2024-07-29 12:08 ` Krishna Chaitanya Chundru
2024-07-10 20:28 ` Mayank Rana
2024-07-23 3:37 ` Yogesh Jadav
2024-07-10 11:08 ` [PATCH v7 3/4] PCI: qcom-ep: Print D-state name to distinguish D3hot/D3cold Krishna chaitanya chundru
2024-07-10 11:08 ` [PATCH v7 4/4] PCI: epf-mhi: Add support for handling D-state notify from EPC 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=20240710-dstate_notifier-v7-2-8d45d87b2b24@quicinc.com \
--to=quic_krichai@quicinc.com \
--cc=bhelgaas@google.com \
--cc=corbet@lwn.net \
--cc=kishon@kernel.org \
--cc=kw@linux.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=mhi@lists.linux.dev \
--cc=quic_nitegupt@quicinc.com \
--cc=quic_parass@quicinc.com \
--cc=quic_ramkri@quicinc.com \
--cc=quic_skananth@quicinc.com \
--cc=quic_vbadigan@quicinc.com \
--cc=robh@kernel.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