On Thu, Jun 18, 2020 at 07:55:34PM +0800, Shengjiu Wang wrote: > Add pm runtime support and move clock handling there. > Close the clocks at suspend to reduce the power consumption. > > fsl_spdif_suspend is replaced by pm_runtime_force_suspend. > fsl_spdif_resume is replaced by pm_runtime_force_resume. > > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx> LGTM, yet some nits, please add my ack after fixing: Acked-by: Nicolin Chen <nicoleotsuka@xxxxxxxxx> > @@ -495,25 +496,10 @@ static int fsl_spdif_startup(struct snd_pcm_substream *substream, > > -disable_txclk: > - for (i--; i >= 0; i--) > - clk_disable_unprepare(spdif_priv->txclk[i]); > err: > - if (!IS_ERR(spdif_priv->spbaclk)) > - clk_disable_unprepare(spdif_priv->spbaclk); > -err_spbaclk: > - clk_disable_unprepare(spdif_priv->coreclk); > - > return ret; Only "return ret;" remains now. We could clean the goto away. > -static int fsl_spdif_resume(struct device *dev) > +static int fsl_spdif_runtime_resume(struct device *dev) > +disable_rx_clk: > + clk_disable_unprepare(spdif_priv->rxclk); > +disable_tx_clk: > +disable_spba_clk: Why have two duplicated ones? Could probably drop the 2nd one.