Open
Conversation
added 3 commits
March 25, 2026 10:28
…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>
…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>
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>
| } | ||
| EXPORT_SYMBOL_GPL(lpi_pinctrl_remove); | ||
|
|
||
| int lpi_pinctrl_runtime_suspend(struct device *dev) |
| pm_runtime_set_autosuspend_delay(dev, 100); | ||
| pm_runtime_use_autosuspend(dev); | ||
| pm_runtime_enable(dev); | ||
|
|
There was a problem hiding this comment.
Why are we addding this here?
| ret = lpi_gpio_read(state, offset, LPI_GPIO_CFG_REG, &ctl_reg); | ||
| if (ret) { | ||
| seq_printf(s, " %-8s: <read error %d>", pindesc.name, ret); | ||
| return; |
There was a problem hiding this comment.
This does not belong to this patch?
| ret = lpi_gpio_read(state, pin, LPI_GPIO_VALUE_REG, &val); | ||
| if (ret) | ||
| return ret; | ||
| return val & LPI_GPIO_VALUE_IN_MASK; |
There was a problem hiding this comment.
Unrelated changes in this patch, please separate such changes.
| *val = ioread32(state->tlmm_base + pin_offset + addr); | ||
|
|
||
| pm_runtime_mark_last_busy(state->dev); | ||
| pm_runtime_put_autosuspend(state->dev); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.