Skip to content

Use gdsc_synced_poweroff_disable() callback for USB PHY GDSCs on Glymur - #1904

Merged
Taniya Das (taniyadas20) merged 2 commits into
qualcomm-linux:tech/bsp/clkfrom
kona-jagadeesh:glymur-usb-phy-gdsc
Sep 25, 2026
Merged

Taniya Das (taniyadas20) merged 2 commits into
qualcomm-linux:tech/bsp/clkfrom
kona-jagadeesh:glymur-usb-phy-gdsc

Conversation

@kona-jagadeesh

Copy link
Copy Markdown

This series includes changes to use gdsc_synced_poweroff_disable() callback for gcc_usb_0_phy_gdsc and gcc_usb_1_phy_gdsc on Glymur platform. With this change, these GDSCs get disabled only when USB drivers explicitly invoke dev_pm_genpd_synced_poweroff() before suspend, else GDSCs stay ON during suspend.

USB and PCIe GDSCs must remain enabled during system suspend for USB host
mode and PCIe non-D3cold use cases.

These GDSCs currently use PWRSTS_RET_ON in the GDSC driver, which prevents
the gdsc driver from disabling them in hardware after the first enable.
Consequently, they remain enabled indefinitely, even after their consumers
become inactive, preventing the GDSCs from being powered off when no longer
needed.

Instead, use the GenPDs synced_poweroff flag to control whether a GDSC is
disabled during suspend. USB and PCIe drivers can leave the flag unset when
the GDSC must remain enabled, and set it when the GDSC should be powered
off. This allows consumer drivers to have more dynamic control over the
GDSC power state based on their current use case.

The existing gdsc_gx_gdsc() callback also disables the GDSC based on
synced_poweroff flag but it polls for GDSC status during disable if synced
poweroff flag is set. But few PCIE GDSCs have a VOTABLE flag and should not
be polled for status during disable. Hence introduce a new
gdsc_synced_poweroff_disable() callback that disables the GDSC based on
GenPD synced_poweroff flag but won't poll for status if GDSC has VOTABLE
flag.

Change-Id: Ic57554e741a9d04729078fa8647f8e10952d6639
Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
@qcomlnxci
qcomlnxci requested review from a team, Mike Tipton (mdtipton) and Taniya Das (taniyadas20) and removed request for a team September 24, 2026 12:03
@qcomlnxci
qcomlnxci requested a review from a team September 25, 2026 06:38
Use the gdsc_synced_poweroff_disable() as power_off callback for
USB GDSCs on Glymur platform.

This allows the GDSCs to be disabled during suspend only when the consumer
driver explicitly calls dev_pm_genpd_synced_poweroff() before suspend.
Consumer drivers can therefore keep the GDSCs powered on during system
suspend by not calling dev_pm_genpd_synced_poweroff() before suspend.

Change-Id: Ifbf55774c2f4f83a42437051d724e060144e3221
Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
@taniyadas20
Taniya Das (taniyadas20) merged commit 0f238f2 into qualcomm-linux:tech/bsp/clk Sep 25, 2026
3 of 6 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.

2 participants