Message ID | 1459826456-18812-3-git-send-email-eric@anholt.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Eric, > Eric Anholt <eric@anholt.net> hat am 5. April 2016 um 05:20 geschrieben: > > > 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: Eric Anholt <eric@anholt.net> > Cc: stable@vger.kernel.org please provide a Fixes tag. Thanks Stefan > --- > drivers/clk/bcm/clk-bcm2835.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c > index 87616de..7a79708 100644 > --- a/drivers/clk/bcm/clk-bcm2835.c > +++ b/drivers/clk/bcm/clk-bcm2835.c > @@ -554,6 +554,10 @@ static int bcm2835_pll_on(struct clk_hw *hw) > const struct bcm2835_pll_data *data = pll->data; > 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. */ > cprman_write(cprman, data->cm_ctrl_reg, > cprman_read(cprman, data->cm_ctrl_reg) & ~CM_PLL_ANARST); > -- > 2.7.0 > > > _______________________________________________ > linux-rpi-kernel mailing list > linux-rpi-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rpi-kernel
Stefan Wahren <stefan.wahren@i2se.com> writes: > Hi Eric, > >> Eric Anholt <eric@anholt.net> hat am 5. April 2016 um 05:20 geschrieben: >> >> >> 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: Eric Anholt <eric@anholt.net> >> Cc: stable@vger.kernel.org > > please provide a Fixes tag. > > Thanks Stefan That should be: Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c index 87616de..7a79708 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c @@ -554,6 +554,10 @@ static int bcm2835_pll_on(struct clk_hw *hw) const struct bcm2835_pll_data *data = pll->data; 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. */ cprman_write(cprman, data->cm_ctrl_reg, cprman_read(cprman, data->cm_ctrl_reg) & ~CM_PLL_ANARST);
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: Eric Anholt <eric@anholt.net> Cc: stable@vger.kernel.org --- drivers/clk/bcm/clk-bcm2835.c | 4 ++++ 1 file changed, 4 insertions(+)