On 11/27/20 10:59 PM, 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@xxxxxxxxxxxxxx> > Signed-off-by: Srinivasa Rao Mandadapu <srivasam@xxxxxxxxxxxxxx> > --- > 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, > > }; > Tested this series on a Lenovo Yoga C630 Tested-by: Steev Klimaszewski <steev@xxxxxxxx>