WORKAROUND: Gdsc synced poweroff disable patches for QCS615#724
WORKAROUND: Gdsc synced poweroff disable patches for QCS615#724Kriskura176767 wants to merge 4 commits into
Conversation
The GX GDSC is a special power domain that should only be disabled by OS during GMU recovery. In all other scenarios, the GMU firmware is responsible for handling its disable sequence, and OS must not interfere. During the resume_noirq() phase of system resume, the GenPD framework enables all power domains and later disables them in the complete() phase if there are no active votes from OS. This behavior can incorrectly disable the GX GDSC while the GMU firmware is still using it. To prevent this, implement a custom disable callback for GX GDSC that relies on GenPD’s synced_poweroff flag. The GMU driver sets this flag only during recovery, allowing OS to explicitly disable GX GDSC in hardware in that case. In all other situations, the disable callback will avoid touching GX GDSC hardware. Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260427-gfx-clk-fixes-v2-1-797e54b3d464@oss.qualcomm.com Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4492412 on any of the following entities: Entities:
CR: 4492412 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
|
"qli-2.0 GA Critical Fix" |
PR #724 — validate-patchPR: #724
Final Summary
|
PR #724 — checker-log-analyzerPR: #724
Detailed report: Full report
|
…eroff flag is set USB, PCIE GDSCs require the GDSC to left ON in USB host mode and PCIE non-D3 cold usecases even during system suspend. To handle this use the GenPD's synced_poweroff flag which can be set by USB/PCIE drivers if they require the GDSC to be disabled before suspend. If the GDSC is required to be left ON, the USB/PCIE drivers can avoid setting this flag before suspend. Add support for custom gdsc disable callback that disables GDSC based on GenPD's synced_poweroff flag. Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
9dd85e5 to
b217a8f
Compare
Test Matrix
|
|
"qli-2.0 GA Critical Fix" |
…GDSC's Use gdsc_synced_poweroff_disable callback for USB GDSC's on qcs615 platforms so these GDSC's get disabled only when consumer drivers explicitly invoke dev_pm_genpd_synced_poweroff() API before suspend. Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
…mode bus suspend On targets pre-sm8750, when DUT enters bus suspend in host mode, there is a xHCI crash seen on resume. During bus susend use case if the device is wakeup capable, the GDSC needs to be kept ON to retain memory and avoid SMMU faults. Set synced_poweroff flag to false to ensure GDSC is turned OFF during cable disconnect or non-bus suspend host mode scenario. Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
b217a8f to
5ef7ddf
Compare
|
Exception for 2.0 : https://jira-dc.qualcomm.com/jira/browse/QLIJIRA-137 |
PR #724 — validate-patchPR: #724
Final Summary
|
PR #724 — checker-log-analyzerPR: #724
Detailed report: Full report
|
Test Matrix
|
Test Matrix
|
Add support to keep GDSC On during host mode bus suspend
On targets pre-sm8750, when DUT enters bus suspend in host mode, there is a xHCI crash seen on resume. During bus susend use case if the device is wakeup capable, the GDSC needs to be kept ON to retain memory and avoid SMMU faults. Set synced_poweroff flag to false to ensure GDSC is turned OFF during cable disconnect or non-bus suspend host mode scenario.
CRs-Fixed: 4492412