Commit d5298429 authored by Eric Anholt's avatar Eric Anholt Committed by Greg Kroah-Hartman

clk: bcm2835: Fix PLL poweron

commit e708b383 upstream.

In poweroff, we set the reset bit and the power down bit, but only
managed to unset the reset bit for poweron.  This meant that if HDMI
did -EPROBE_DEFER after it had grabbed its clocks, we'd power down the
PLLH (that had been on at boot time) and never recover.
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
Fixes: 41691b88 ("clk: bcm2835: Add support for programming the audio domain clocks")
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent dd191766
...@@ -901,6 +901,10 @@ static int bcm2835_pll_on(struct clk_hw *hw) ...@@ -901,6 +901,10 @@ static int bcm2835_pll_on(struct clk_hw *hw)
const struct bcm2835_pll_data *data = pll->data; const struct bcm2835_pll_data *data = pll->data;
ktime_t timeout; ktime_t timeout;
cprman_write(cprman, data->a2w_ctrl_reg,
cprman_read(cprman, data->a2w_ctrl_reg) &
~A2W_PLL_CTRL_PWRDN);
/* Take the PLL out of reset. */ /* Take the PLL out of reset. */
cprman_write(cprman, data->cm_ctrl_reg, cprman_write(cprman, data->cm_ctrl_reg,
cprman_read(cprman, data->cm_ctrl_reg) & ~CM_PLL_ANARST); cprman_read(cprman, data->cm_ctrl_reg) & ~CM_PLL_ANARST);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment