X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=drivers%2Fclk%2Ftegra%2Fclk-dfll.c;h=c4e3a52e225bcea0583d3eed0308a523b12ebec3;hb=2dab48ef2b2e8b53373acbe354e7c635b03115e1;hp=c2ff859ee0e8be75ead40cdd0af59f331b79d7c8;hpb=dc847d5b4aa852c41b56c21bdc759fee13cc8f68;p=cascardo%2Flinux.git diff --git a/drivers/clk/tegra/clk-dfll.c b/drivers/clk/tegra/clk-dfll.c index c2ff859ee0e8..c4e3a52e225b 100644 --- a/drivers/clk/tegra/clk-dfll.c +++ b/drivers/clk/tegra/clk-dfll.c @@ -682,11 +682,17 @@ static int find_lut_index_for_rate(struct tegra_dfll *td, unsigned long rate) struct dev_pm_opp *opp; int i, uv; + rcu_read_lock(); + opp = dev_pm_opp_find_freq_ceil(td->soc->dev, &rate); - if (IS_ERR(opp)) + if (IS_ERR(opp)) { + rcu_read_unlock(); return PTR_ERR(opp); + } uv = dev_pm_opp_get_voltage(opp); + rcu_read_unlock(); + for (i = 0; i < td->i2c_lut_size; i++) { if (regulator_list_voltage(td->vdd_reg, td->i2c_lut[i]) == uv) return i;