stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] clk: bcm2835: De-assert/assert PLL reset signal when appropriate
@ 2018-03-22  9:11 Boris Brezillon
  2018-03-22 16:33 ` Eric Anholt
  2018-04-06 18:16 ` Stephen Boyd
  0 siblings, 2 replies; 3+ messages in thread
From: Boris Brezillon @ 2018-03-22  9:11 UTC (permalink / raw)
  To: Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list, Stefan Wahren, Lee Jones, Eric Anholt,
	linux-rpi-kernel, Mike Turquette, Stephen Boyd, linux-clk
  Cc: Boris Brezillon, stable

In order to enable a PLL, not only the PLL has to be powered up and
locked, but you also have to de-assert the reset signal. The last part
was missing. Add it so PLLs that were not enabled by the FW/bootloader
can be enabled from Linux.

Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
Cc: <stable@vger.kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
---
Changes in v2:
- simplify bcm2835_pll_off()
---
 drivers/clk/bcm/clk-bcm2835.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index a07f6451694a..fa0d5c8611a0 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -602,9 +602,7 @@ static void bcm2835_pll_off(struct clk_hw *hw)
 	const struct bcm2835_pll_data *data = pll->data;
 
 	spin_lock(&cprman->regs_lock);
-	cprman_write(cprman, data->cm_ctrl_reg,
-		     cprman_read(cprman, data->cm_ctrl_reg) |
-		     CM_PLL_ANARST);
+	cprman_write(cprman, data->cm_ctrl_reg, CM_PLL_ANARST);
 	cprman_write(cprman, data->a2w_ctrl_reg,
 		     cprman_read(cprman, data->a2w_ctrl_reg) |
 		     A2W_PLL_CTRL_PWRDN);
@@ -640,6 +638,10 @@ static int bcm2835_pll_on(struct clk_hw *hw)
 		cpu_relax();
 	}
 
+	cprman_write(cprman, data->a2w_ctrl_reg,
+		     cprman_read(cprman, data->a2w_ctrl_reg) |
+		     A2W_PLL_CTRL_PRST_DISABLE);
+
 	return 0;
 }
 
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] clk: bcm2835: De-assert/assert PLL reset signal when appropriate
  2018-03-22  9:11 [PATCH v2] clk: bcm2835: De-assert/assert PLL reset signal when appropriate Boris Brezillon
@ 2018-03-22 16:33 ` Eric Anholt
  2018-04-06 18:16 ` Stephen Boyd
  1 sibling, 0 replies; 3+ messages in thread
From: Eric Anholt @ 2018-03-22 16:33 UTC (permalink / raw)
  To: Boris Brezillon, Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list, Stefan Wahren, Lee Jones,
	linux-rpi-kernel, Mike Turquette, Stephen Boyd, linux-clk
  Cc: Boris Brezillon, stable

[-- Attachment #1: Type: text/plain, Size: 586 bytes --]

Boris Brezillon <boris.brezillon@bootlin.com> writes:

> In order to enable a PLL, not only the PLL has to be powered up and
> locked, but you also have to de-assert the reset signal. The last part
> was missing. Add it so PLLs that were not enabled by the FW/bootloader
> can be enabled from Linux.
>
> Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> ---
> Changes in v2:
> - simplify bcm2835_pll_off()

Reviewed-by: Eric Anholt <eric@anholt.net>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] clk: bcm2835: De-assert/assert PLL reset signal when appropriate
  2018-03-22  9:11 [PATCH v2] clk: bcm2835: De-assert/assert PLL reset signal when appropriate Boris Brezillon
  2018-03-22 16:33 ` Eric Anholt
@ 2018-04-06 18:16 ` Stephen Boyd
  1 sibling, 0 replies; 3+ messages in thread
From: Stephen Boyd @ 2018-04-06 18:16 UTC (permalink / raw)
  To: Boris Brezillon, Eric Anholt, Florian Fainelli, Lee Jones,
	Mike Turquette, Ray Jui, Scott Branden, Stefan Wahren,
	Stephen Boyd, bcm-kernel-feedback-list, linux-clk,
	linux-rpi-kernel
  Cc: Boris Brezillon, stable

Quoting Boris Brezillon (2018-03-22 02:11:30)
> In order to enable a PLL, not only the PLL has to be powered up and
> locked, but you also have to de-assert the reset signal. The last part
> was missing. Add it so PLLs that were not enabled by the FW/bootloader
> can be enabled from Linux.
> 
> Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
> ---

Applied to clk-next

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-04-06 18:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-22  9:11 [PATCH v2] clk: bcm2835: De-assert/assert PLL reset signal when appropriate Boris Brezillon
2018-03-22 16:33 ` Eric Anholt
2018-04-06 18:16 ` Stephen Boyd

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).