Skip to content

FROMLIST: PCI: qcom: Set max OPP before DBI access during resume#647

Merged
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ziyuezhang-123:hamoa_opp
Jun 17, 2026
Merged

FROMLIST: PCI: qcom: Set max OPP before DBI access during resume#647
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ziyuezhang-123:hamoa_opp

Conversation

@ziyuezhang-123

@ziyuezhang-123 ziyuezhang-123 commented Jun 3, 2026

Copy link
Copy Markdown

During resume, qcom_pcie_icc_opp_update() may access DBI registers before the OPP votes are restored, which can trigger NoC errors.

Set the PCIe controller to the maximum OPP first in resume_noirq(), then proceed with link/DBI accesses. The OPP is later updated again based on the actual link bandwidth requirements.

Also introduce a small helper to reuse the max-OPP setup path shared with probe.

Fixes: 5b6272e ("PCI: qcom: Add OPP support to scale performance")
Link: https://lore.kernel.org/all/20260416-setmaxopp-v1-1-6a74e2d945a0@oss.qualcomm.com/

CRs-Fixed: 4536367

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4536367 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4536367

Please ensure the CR has a change task associated with at least one of the entities for this branch.

During resume, qcom_pcie_icc_opp_update() may access DBI registers before
the OPP votes are restored, which can trigger NoC errors.

Set the PCIe controller to the maximum OPP first in resume_noirq(), then
proceed with link/DBI accesses. The OPP is later updated again based on
the actual link bandwidth requirements.

Also introduce a small helper to reuse the max-OPP setup path shared with
probe.

Fixes: 5b6272e ("PCI: qcom: Add OPP support to scale performance")
Link: https://lore.kernel.org/all/20260416-setmaxopp-v1-1-6a74e2d945a0@oss.qualcomm.com/
Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com>
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4536367 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4536367

Please ensure the CR has a change task associated with at least one of the entities for this branch.

@psarma-qcom

Copy link
Copy Markdown

qli-2.0 GA Critical Fix

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ◻️ ◻️ ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ◻️ ◻️ ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ◻️ ◻️ ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ◻️ ◻️ ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ◻️ ◻️ ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
hotplug ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
irq ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
kaslr ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
pinctrl ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
qcom_hwrng ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ◻️ ◻️ ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ◻️ ◻️ ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ◻️ ◻️ ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ◻️ ◻️ ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ◻️ ◻️ ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
hotplug ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
irq ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
kaslr ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
pinctrl ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
qcom_hwrng ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ◻️ ◻️ ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ◻️ ◻️ ✅ Pass ✅ Pass ◻️

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ✅ Pass ❌ Fail ◻️
hotplug ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
irq ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
kaslr ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
pinctrl ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
qcom_hwrng ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️

@sgaud-quic
Salendarsingh Gaud (sgaud-quic) merged commit fffba0b into qualcomm-linux:qcom-6.18.y Jun 17, 2026
6 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants