Skip to content

FROMLIST: PCI: qcom: Add D3cold support - #461

Merged
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ziyuezhang-123:talos
May 4, 2026
Merged

FROMLIST: PCI: qcom: Add D3cold support#461
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
ziyuezhang-123:talos

Conversation

@ziyuezhang-123

@ziyuezhang-123 ziyuezhang-123 commented Apr 14, 2026

Copy link
Copy Markdown

Add support for transitioning PCIe endpoints under host bridge into D3cold by integrating with the DWC core suspend/resume helpers.

Implement PME_TurnOff message generation via ELBI_SYS_CTRL and hook it into the DWC host operations so the controller follows the standard PME_TurnOff-based power-down sequence before entering D3cold.

When the device is suspended into D3cold, fully tear down interconnect bandwidth, OPP votes. If D3cold is not entered, retain existing behavior by keeping the required interconnect and OPP votes.

Use dw_pcie::skip_pwrctrl_off to avoid powering off devices during suspend to preseve wakeup capability of the devices and also not to power on the devices in the init path.

Drop the qcom_pcie::suspended flag and rely on the existing dw_pcie::suspended state, which now drives both the power-management flow and the interconnect/OPP handling.

Link: https://lore.kernel.org/all/20260407-d3cold-v4-5-bb171f75b465@oss.qualcomm.com/
CRs-Fixed: 4504416

@shashim-quic

Copy link
Copy Markdown

qcom-6.18.y-check

unless you fix it , PR won't merge. hint: check if your mainline component in CR is associated with valid changes.

@ziyuezhang-123

Copy link
Copy Markdown
Author

qcom-6.18.y-check

unless you fix it , PR won't merge. hint: check if your mainline component in CR is associated with valid changes.

Hi Shiraz,

I have update the CR number now.
it has linked to the kernel.qli.2.0 CR ticket, CR4504416

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix compilation issues :
https://github.com/qualcomm-linux/kernel-config/actions/runs/24442062305/job/71409226019

/opt/actions-runner/_work/kernel-config/kernel-config/drivers/pci/controller/dwc/pcie-qcom.c: In function ‘qcom_pcie_host_init’:
/opt/actions-runner/_work/kernel-config/kernel-config/drivers/pci/controller/dwc/pcie-qcom.c:1317:16: error: ‘struct dw_pcie_rp’ has no member named ‘skip_pwrctrl_off’
 1317 |         if (!pp->skip_pwrctrl_off) {
      |                ^~
/opt/actions-runner/_work/kernel-config/kernel-config/drivers/pci/controller/dwc/pcie-qcom.c: In function ‘qcom_pcie_host_deinit’:
/opt/actions-runner/_work/kernel-config/kernel-config/drivers/pci/controller/dwc/pcie-qcom.c:1363:21: error: ‘struct dw_pcie_rp’ has no member named ‘skip_pwrctrl_off’

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

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

@ziyuezhang-123

Copy link
Copy Markdown
Author

qcom-6.18.y-check

Hi Shriaz
qcom-6.18.y-check is pass now

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case glymur-crd kaanapali-mtp lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 sm8750-mtp x1e80100-crd
0_qcom-next-ci-premerge-tests ◻️ ◻️ ◻️ ◻️ ◻️ ❌ Fail ◻️ ◻️ ◻️ ◻️
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 ⚠️ skip ✅ Pass ◻️ ◻️ ◻️ ◻️
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 ◻️ ◻️ ⚠️ skip ⚠️ skip ⚠️ skip ◻️ ◻️ ◻️ ◻️ ◻️
PCIe ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
Probe_Failure_Check ◻️ ◻️ ◻️ ❌ Fail ◻️ ❌ Fail ◻️ ◻️ ◻️ ◻️
RMNET ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
UFS_Validation ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
USBHost ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️ ◻️ ◻️ ◻️
WiFi_Firmware_Driver ◻️ ◻️ ⚠️ skip ⚠️ skip ⚠️ skip ✅ Pass ◻️ ◻️ ◻️ ◻️
WiFi_OnOff ◻️ ◻️ ✅ Pass ❌ Fail ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
cdsp_remoteproc ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
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 ✅ Pass ◻️ ◻️ ◻️ ◻️
rngtest ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
shmbridge ◻️ ◻️ ❌ Fail ✅ Pass ✅ Pass ❌ Fail ◻️ ◻️ ◻️ ◻️
smmu ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
watchdog ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️
wpss_remoteproc ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️ ◻️ ◻️

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

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

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

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

@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case glymur-crd kaanapali-mtp lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 sm8750-mtp x1e80100-crd
0_qcom-next-ci-premerge-tests ◻️ ◻️ ◻️ ◻️ ◻️ ❌ Fail ◻️ ◻️ ◻️ ◻️
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 ✅ Pass ◻️ ◻️
Ethernet ◻️ ◻️ ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ✅ Pass ⚠️ 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 ◻️ ◻️ ⚠️ skip ⚠️ skip ⚠️ skip ◻️ ⚠️ skip ⚠️ skip ◻️ ◻️
PCIe ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
Probe_Failure_Check ◻️ ◻️ ◻️ ❌ Fail ◻️ ❌ Fail ❌ Fail ✅ Pass ◻️ ◻️
RMNET ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
UFS_Validation ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
USBHost ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ◻️ ◻️
WiFi_Firmware_Driver ◻️ ◻️ ⚠️ skip ⚠️ skip ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ◻️ ◻️
WiFi_OnOff ◻️ ◻️ ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
cdsp_remoteproc ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
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 ✅ Pass ◻️ ◻️
rngtest ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
shmbridge ◻️ ◻️ ❌ Fail ✅ Pass ✅ Pass ❌ Fail ✅ Pass ❌ Fail ◻️ ◻️
smmu ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
watchdog ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️
wpss_remoteproc ◻️ ◻️ ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ◻️

@sgaud-quic

Copy link
Copy Markdown
Contributor

DCO Check failed, committer should sign-off the commit :

Summary
Commit sha: [4c32558](https://github.com/qualcomm-linux/kernel/pull/461/commits/4c32558f608d5871cf5d30690e51eb65dadac4a0), Author: Ziyue Zhang, Committer: Ziyue Zhang; Expected "Ziyue Zhang [ziyue.zhang@oss.qualcomm.com](mailto:ziyue.zhang@oss.qualcomm.com)", but got "Krishna Chaitanya Chundru [krishna.chundru@oss.qualcomm.com](mailto:krishna.chundru@oss.qualcomm.com)".

Add support for transitioning PCIe endpoints under host bridge into
D3cold by integrating with the DWC core suspend/resume helpers.

Implement PME_TurnOff message generation via ELBI_SYS_CTRL and hook it
into the DWC host operations so the controller follows the standard
PME_TurnOff-based power-down sequence before entering D3cold.

When the device is suspended into D3cold, fully tear down interconnect
bandwidth, OPP votes. If D3cold is not entered, retain existing behavior
by keeping the required interconnect and OPP votes.

Use dw_pcie::skip_pwrctrl_off to avoid powering off devices during suspend
to preseve wakeup capability of the devices and also not to power on the
devices in the init path.

Drop the qcom_pcie::suspended flag and rely on the existing
dw_pcie::suspended state, which now drives both the power-management
flow and the interconnect/OPP handling

Link: https://lore.kernel.org/all/20260407-d3cold-v4-5-bb171f75b465@oss.qualcomm.com/
Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
@qcomlnxci
qcomlnxci requested a review from a team May 2, 2026 15:32
@qcomlnxci

Copy link
Copy Markdown

Test Matrix

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

@sgaud-quic
Salendarsingh Gaud (sgaud-quic) merged commit 796722c into qualcomm-linux:qcom-6.18.y May 4, 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.

4 participants