The existing OPP table in the device tree for PCIe is shared across
different link configurations such as data rates 8GT/s x2 and 16GT/s x1.
These configurations often operate at the same frequency, allowing them
to reuse the same OPP entries. However, 8GT/s and 16 GT/s may have
different characteristics beyond frequency—such as RPMh votes in QCOM
case, which cannot be represented accurately when sharing a single OPP.
In such cases, frequency alone is not sufficient to uniquely identify
an OPP. To support these scenarios, introduce a new API
dev_pm_opp_find_freq_level_exact() that allows OPP lookup using both
frequency and performance level.
Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
---
Changes in v2:
- Use opp-level to indentify data rate and use both frequency and level
to identify the OPP. (Viresh)
- Link to v1: https://lore.kernel.org/r/20250717-opp_pcie-v1-0-dde6f452571b@oss.qualcomm.com
---
Krishna Chaitanya Chundru (3):
PM/OPP: Support to match OPP based on both frequency and level.
arm64: dts: qcom: sm8450: Add opp-level to indicate PCIe data rates
PCI: qcom: Use frequency and level based OPP lookup
arch/arm64/boot/dts/qcom/sm8450.dtsi | 41 ++++++++++---
drivers/opp/core.c | 103 +++++++++++++++++++++++++++++++++
drivers/opp/opp.h | 13 +++++
drivers/pci/controller/dwc/pcie-qcom.c | 3 +-
include/linux/pm_opp.h | 13 +++++
5 files changed, 163 insertions(+), 10 deletions(-)
---
base-commit: c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9
change-id: 20250717-opp_pcie-793160b2b113
Best regards,
--
Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>