Skip to content

WORKAROUND: Use PWRSTS_RET_ON for USB GDSCs on Lemans and Monaco#281

Open
imrashai wants to merge 2 commits intoqualcomm-linux:qcom-6.18.yfrom
imrashai:usb-ret-on-workaround
Open

WORKAROUND: Use PWRSTS_RET_ON for USB GDSCs on Lemans and Monaco#281
imrashai wants to merge 2 commits intoqualcomm-linux:qcom-6.18.yfrom
imrashai:usb-ret-on-workaround

Conversation

@imrashai
Copy link

@imrashai imrashai commented Feb 13, 2026

Currently USB team working on the actual fix to take care of keeping the GDSC ON during suspend use-case as per their requirement. This PR is a workaround to unblock the USB team.

CRs-Fixed: 4439827

@imrashai imrashai changed the title Usb ret on workaround WORKAROUND: Use PWRSTS_RET_ON for USB GDSCs on Lemans and Monaco Feb 13, 2026
@shashim-quic
Copy link

Currently USB team working on the actual fix to take care of keeping the GDSC ON during suspend use-case as per their requirement. This PR is a workaround to unblock the USB team.

Please add CRs-Fixed: in PR description.

@imrashai
Copy link
Author

Currently USB team working on the actual fix to take care of keeping the GDSC ON during suspend use-case as per their requirement. This PR is a workaround to unblock the USB team.

Please add CRs-Fixed: in PR description.

Updated the CR details in PR description now.

Copy link

@shashim-quic shashim-quic left a comment

Choose a reason for hiding this comment

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

Change-Id: I7ac4b6fec314c55be30b3a80c9bf8517528e99ec
Signed-off-by: Imran Shaik imran.shaik@oss.qualcomm.com

remove change-id from both commits in this PR. That is only relevant for gerrit.

@qcomlnxci
Copy link

Test Matrix

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

The USB GDSCs on SA8775P are currently configured with PWRSTS_OFF_ON,
which allows the GDSC framework to fully collapse these power domains
during gdsc_disable(). When these GDSCs collapse, the corresponding USB
PHY configurations are not retained in USB host mode use-cases and this
breaks the resume of USB controller from suspend.

To avoid this, configure the USB GDSC power states to PWRSTS_RET_ON. This
prevents the GDSC from powering off during gdsc_disable(), and allows
hardware to retain the PHY configurations across USB host mode use-cases.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
The USB GDSCs on QCS8300 are currently configured with PWRSTS_OFF_ON,
which allows the GDSC framework to fully collapse these power domains
during gdsc_disable(). When these GDSCs collapse, the corresponding USB
PHY configurations are not retained in USB host mode use-cases and this
breaks the resume of USB controller from suspend.

To avoid this, configure the USB GDSC power states to PWRSTS_RET_ON. This
prevents the GDSC from powering off during gdsc_disable(), and allows
hardware to retain the PHY configurations across USB host mode use-cases.

Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
@imrashai imrashai force-pushed the usb-ret-on-workaround branch from 223b6f0 to 4711d37 Compare February 17, 2026 04:28
@imrashai
Copy link
Author

Change-Id: I7ac4b6fec314c55be30b3a80c9bf8517528e99ec
Signed-off-by: Imran Shaik imran.shaik@oss.qualcomm.com

remove change-id from both commits in this PR. That is only relevant for gerrit.

Dropped the change-id from both the commits and updated the changes.

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.

3 participants

Comments