On Mon, May 25, 2020 at 02:11:18PM +0800, Shengjiu Wang wrote: > > > @@ -1135,6 +1137,24 @@ static int fsl_asrc_runtime_resume(struct device *dev) > > > goto disable_asrck_clk; > > > } > > > > > > + /* Stop all pairs provisionally */ > > > + regmap_read(asrc->regmap, REG_ASRCTR, &asrctr); > > > + regmap_update_bits(asrc->regmap, REG_ASRCTR, > > > + ASRCTR_ASRCEi_ALL_MASK, 0); > > > + > > > + /* Restore all registers */ > > > + regcache_cache_only(asrc->regmap, false); > > > + regcache_mark_dirty(asrc->regmap); > > > > > > I see you doing regcache_mark_dirty() in the resume() now, > > being different from previously doing in suspend()? > Which is for probe -> runtime_resume case. > After probe, the power may be disabled, so move mark_dirtry > to runtime_resume, then regcache can re-write all the registers. I see. Just noticed that you add a regcache_cache_only in probe(). Acked already. Thanks.