Skip to content

ASoC runtime pm fix#438

Open
RaviHothi wants to merge 4 commits intoqualcomm-linux:qcom-6.18.yfrom
RaviHothi:xo_sd_fix
Open

ASoC runtime pm fix#438
RaviHothi wants to merge 4 commits intoqualcomm-linux:qcom-6.18.yfrom
RaviHothi:xo_sd_fix

Conversation

@RaviHothi
Copy link
Copy Markdown
Contributor

This PR introduces runtime PM suspend/resume handling across LPASS pinctrl and ASoC macro codec drivers to ensure clocks are properly gated when devices are idle and re‑enabled in a defined order on resume.
The changes improve power management correctness for platforms using LPASS LPI island mode and prevent unnecessary clock votes during idle periods.

CRs-Fixed: 4400613

RaviHothi and others added 4 commits April 8, 2026 19:34
…me PM

Convert the LPASS WSA macro codec driver to use the PM clock framework
for runtime power management.

The driver now relies on pm_clk helpers and runtime PM instead of
manually enabling and disabling macro, dcodec, mclk, npl, and fsgen
clocks. Runtime suspend and resume handling is delegated to the PM
core via pm_clk_suspend() and pm_clk_resume(), while existing runtime
PM callbacks continue to manage regcache state.

This ensures clocks are enabled only when the WSA macro is active,
improves power efficiency on LPASS platforms supporting LPI/island
modes, and aligns the driver with common ASoC runtime PM patterns used
across Qualcomm LPASS codec drivers.

Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
…e PM

Convert the LPASS VA macro codec driver to use the PM clock framework
for runtime power management.

The driver now relies on pm_clk helpers and runtime PM instead of
manually enabling and disabling macro, dcodec, mclk, and npl clocks.
All clock control during runtime suspend and resume is delegated to
the PM core via pm_clk_suspend() and pm_clk_resume().

This change ensures clocks are only enabled when the VA macro is
active, improves power efficiency on LPASS platforms supporting
LPI/island modes, and aligns the driver with common ASoC runtime PM
patterns used across Qualcomm LPASS codec drivers.

Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Convert the LPASS LPI pinctrl driver to use the PM clock framework for
runtime power management.

This allows the LPASS LPI pinctrl driver to drop clock votes when idle,
improves power efficiency on platforms using LPASS LPI island mode, and
aligns the driver with common runtime PM patterns used across Qualcomm
LPASS subsystems.

Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
Refactor the LPI GPIO register access helpers to propagate read/write
errors to callers instead of silently returning invalid values.

Update all call sites to handle error returns and improve debugfs output
by reporting register read failures explicitly.

This improves robustness and debuggability without changing intended
GPIO functionality.

Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
@RaviHothi RaviHothi requested a review from a team April 8, 2026 15:04
@idlethread
Copy link
Copy Markdown
Contributor

Why aren't these patches on LKML and then in a kernel-topic branch?

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