On 28/11/2020 04:59, Srinivasa Rao Mandadapu wrote:
To support playback continuation after hard suspend(bypass powerd) and resume add component driver ops and do regcache sync.
Signed-off-by: V Sujith Kumar Reddy vsujithk@codeaurora.org Signed-off-by: Srinivasa Rao Mandadapu srivasam@codeaurora.org
LGTM,
Reviewed-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
sound/soc/qcom/lpass-platform.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c index 0e71899..12764a8 100644 --- a/sound/soc/qcom/lpass-platform.c +++ b/sound/soc/qcom/lpass-platform.c @@ -827,6 +827,39 @@ static void lpass_platform_pcm_free(struct snd_soc_component *component, } }
+static int lpass_platform_pcmops_suspend(struct snd_soc_component *component) +{
- struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
- struct regmap *map;
- unsigned int dai_id = component->id;
- if (dai_id == LPASS_DP_RX)
map = drvdata->hdmiif_map;
- else
map = drvdata->lpaif_map;
- regcache_cache_only(map, true);
- regcache_mark_dirty(map);
- return 0;
+}
+static int lpass_platform_pcmops_resume(struct snd_soc_component *component) +{
- struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
- struct regmap *map;
- unsigned int dai_id = component->id;
- if (dai_id == LPASS_DP_RX)
map = drvdata->hdmiif_map;
- else
map = drvdata->lpaif_map;
- regcache_cache_only(map, false);
- return regcache_sync(map);
+}
- static const struct snd_soc_component_driver lpass_component_driver = { .name = DRV_NAME, .open = lpass_platform_pcmops_open,
@@ -839,6 +872,8 @@ static const struct snd_soc_component_driver lpass_component_driver = { .mmap = lpass_platform_pcmops_mmap, .pcm_construct = lpass_platform_pcm_new, .pcm_destruct = lpass_platform_pcm_free,
.suspend = lpass_platform_pcmops_suspend,
.resume = lpass_platform_pcmops_resume,
};