On Wed, Apr 25, 2018 at 03:47:30PM +0200, Stefan Potyra wrote: > + ret = clk_prepare_enable(clk); > + if (ret) > + return ret; > + > rate = clk_get_rate(clk); > if (!rate) { > struct clk *pll_clk = devm_clk_get(dev, "pll"); > > - if (IS_ERR(pll_clk)) > - return PTR_ERR(pll_clk); > + if (IS_ERR(pll_clk)) { > + ret = PTR_ERR(pll_clk); > + goto out_disable_clk; > + } > + > > rate = clk_get_rate(pll_clk); Isn't this just showing the same problem with not enabling the pll_clk before getting the rate that you're trying to fix for the main clk?