On 9/30/20 5:50 PM, Lucas Stach wrote: [...] > @@ -143,11 +144,17 @@ static int imx_pgc_power_up(struct generic_pm_domain *genpd) > u32 reg_val; > int i, ret; > > + ret = pm_runtime_get_sync(domain->dev); > + if (ret) { > + pm_runtime_put_noidle(domain->dev); > + return ret; > + } > + > if (!IS_ERR(domain->regulator)) { > ret = regulator_enable(domain->regulator); > if (ret) { > dev_err(domain->dev, "failed to enable regulator\n"); > - return ret; > + goto out_put_pm; > } > } > > @@ -205,6 +212,8 @@ static int imx_pgc_power_up(struct generic_pm_domain *genpd) > clk_disable_unprepare(domain->clk[i]); > if (!IS_ERR(domain->regulator)) > regulator_disable(domain->regulator); > +out_put_pm: > + pm_runtime_put(domain->dev); > > return ret; > } Shouldn't this be pm_runtime_put_sync() ?