Message ID | 20200525072209.6935-1-dinghao.liu@zju.edu.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ASoC: ti: Fix runtime PM imbalance in omap2_mcbsp_set_clks_src | expand |
On 25/05/2020 10.22, Dinghao Liu wrote: > When clk_set_parent() returns an error code, a pairing > runtime PM usage counter increment is needed to keep the > counter balanced. > > Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn> > --- > sound/soc/ti/omap-mcbsp.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/sound/soc/ti/omap-mcbsp.c b/sound/soc/ti/omap-mcbsp.c > index 3d41ca2238d4..84b4de9b670c 100644 > --- a/sound/soc/ti/omap-mcbsp.c > +++ b/sound/soc/ti/omap-mcbsp.c > @@ -80,6 +80,7 @@ static int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id) > if (r) { > dev_err(mcbsp->dev, "CLKS: could not clk_set_parent() to %s\n", > src); > + pm_runtime_get_sync(mcbsp->dev); > clk_put(fck_src); > return r; > } I think it would be cleaner in this way: pm_runtime_put_sync(mcbsp->dev); r = clk_set_parent(mcbsp->fclk, fck_src); if (r) dev_err(mcbsp->dev, "CLKS: could not clk_set_parent() to %s\n", src); pm_runtime_get_sync(mcbsp->dev); clk_put(fck_src); return r; - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> > > On 25/05/2020 10.22, Dinghao Liu wrote: > > When clk_set_parent() returns an error code, a pairing > > runtime PM usage counter increment is needed to keep the > > counter balanced. > > > > Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn> > > --- > > sound/soc/ti/omap-mcbsp.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/sound/soc/ti/omap-mcbsp.c b/sound/soc/ti/omap-mcbsp.c > > index 3d41ca2238d4..84b4de9b670c 100644 > > --- a/sound/soc/ti/omap-mcbsp.c > > +++ b/sound/soc/ti/omap-mcbsp.c > > @@ -80,6 +80,7 @@ static int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id) > > if (r) { > > dev_err(mcbsp->dev, "CLKS: could not clk_set_parent() to %s\n", > > src); > > + pm_runtime_get_sync(mcbsp->dev); > > > clk_put(fck_src); > > return r; > > } > > I think it would be cleaner in this way: > > pm_runtime_put_sync(mcbsp->dev); > > r = clk_set_parent(mcbsp->fclk, fck_src); > if (r) > dev_err(mcbsp->dev, "CLKS: could not clk_set_parent() to %s\n", > src); > > pm_runtime_get_sync(mcbsp->dev); > clk_put(fck_src); > > return r; > > - Péter > > Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. > Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki Thank you for your advice! This is better and I will fix this in the next version of patch. Regards, Dinghao
diff --git a/sound/soc/ti/omap-mcbsp.c b/sound/soc/ti/omap-mcbsp.c index 3d41ca2238d4..84b4de9b670c 100644 --- a/sound/soc/ti/omap-mcbsp.c +++ b/sound/soc/ti/omap-mcbsp.c @@ -80,6 +80,7 @@ static int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id) if (r) { dev_err(mcbsp->dev, "CLKS: could not clk_set_parent() to %s\n", src); + pm_runtime_get_sync(mcbsp->dev); clk_put(fck_src); return r; }
When clk_set_parent() returns an error code, a pairing runtime PM usage counter increment is needed to keep the counter balanced. Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn> --- sound/soc/ti/omap-mcbsp.c | 1 + 1 file changed, 1 insertion(+)