[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241123-remove_wait2-v5-3-b5f9e6b794c2@quicinc.com>
Date: Sat, 23 Nov 2024 00:40:01 +0530
From: Krishna chaitanya chundru <quic_krichai@...cinc.com>
To: Jingoo Han <jingoohan1@...il.com>,
Manivannan Sadhasivam
<manivannan.sadhasivam@...aro.org>,
Lorenzo Pieralisi
<lpieralisi@...nel.org>,
Krzysztof Wilczyński
<kw@...ux.com>,
Rob Herring <robh@...nel.org>, Bjorn Helgaas
<bhelgaas@...gle.com>,
Konrad Dybcio <konradybcio@...nel.org>
CC: <linux-pci@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-arm-msm@...r.kernel.org>,
Krzysztof Wilczyński
<kwilczynski@...nel.org>,
<andersson@...nel.org>, <quic_vbadigan@...cinc.com>,
<quic_mrana@...cinc.com>,
"Krishna chaitanya
chundru" <quic_krichai@...cinc.com>
Subject: [PATCH v5 3/3] PCI: qcom: Update ICC and OPP values during link up
event
The 'commit 4581403f6792 ("PCI: qcom: Enumerate endpoints based on Link up
event in 'global_irq' interrupt")' added the Link up based enumeration
support failed to update the ICC/OPP vote once link is up. Earlier, the
update happens during probe and the endpoints may or may not be enumerated
at that time. So the ICC/OPP vote was not guaranteed to be accurate. Now
with the Link up based enumeration support, the driver can request the
accurate vote based on the PCIe link.
So call qcom_pcie_icc_opp_update() in qcom_pcie_global_irq_thread() after
enumerating the endpoints.
Fixes: 4581403f6792 ("PCI: qcom: Enumerate endpoints based on Link up event in 'global_irq' interrupt")
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>
Signed-off-by: Krishna chaitanya chundru <quic_krichai@...cinc.com>
---
drivers/pci/controller/dwc/pcie-qcom.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
index 656d2be9d87f..e4d3366ead1f 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1569,6 +1569,8 @@ static irqreturn_t qcom_pcie_global_irq_thread(int irq, void *data)
pci_lock_rescan_remove();
pci_rescan_bus(pp->bridge->bus);
pci_unlock_rescan_remove();
+
+ qcom_pcie_icc_opp_update(pcie);
} else {
dev_WARN_ONCE(dev, 1, "Received unknown event. INT_STATUS: 0x%08x\n",
status);
--
2.34.1
Powered by blists - more mailing lists