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@xxxxxxxxxxxxxxxx> --- 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@xxxxxxxxxxxxxxxx --- 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@xxxxxxxxxxxxxxxx>