diff options
Diffstat (limited to 'drivers/clk/tegra/clk-dfll.c')
-rw-r--r-- | drivers/clk/tegra/clk-dfll.c | 8 |
1 files changed, 7 insertions, 1 deletions
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) | |||
682 | struct dev_pm_opp *opp; | 682 | struct dev_pm_opp *opp; |
683 | int i, uv; | 683 | int i, uv; |
684 | 684 | ||
685 | rcu_read_lock(); | ||
686 | |||
685 | opp = dev_pm_opp_find_freq_ceil(td->soc->dev, &rate); | 687 | opp = dev_pm_opp_find_freq_ceil(td->soc->dev, &rate); |
686 | if (IS_ERR(opp)) | 688 | if (IS_ERR(opp)) { |
689 | rcu_read_unlock(); | ||
687 | return PTR_ERR(opp); | 690 | return PTR_ERR(opp); |
691 | } | ||
688 | uv = dev_pm_opp_get_voltage(opp); | 692 | uv = dev_pm_opp_get_voltage(opp); |
689 | 693 | ||
694 | rcu_read_unlock(); | ||
695 | |||
690 | for (i = 0; i < td->i2c_lut_size; i++) { | 696 | for (i = 0; i < td->i2c_lut_size; i++) { |
691 | if (regulator_list_voltage(td->vdd_reg, td->i2c_lut[i]) == uv) | 697 | if (regulator_list_voltage(td->vdd_reg, td->i2c_lut[i]) == uv) |
692 | return i; | 698 | return i; |