public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 1/2] clk: si5351: Fix msynth_recalc_rate return value when fOUT is 0.
@ 2013-05-07  8:14 Marek Belisko
  2013-05-07  8:14 ` [PATCH 2/2] clk: si5351: Powerdown output when clock rate " Marek Belisko
  2013-05-07 10:03 ` [PATCH 1/2] clk: si5351: Fix msynth_recalc_rate return value when fOUT " Sebastian Hesselbarth
  0 siblings, 2 replies; 6+ messages in thread
From: Marek Belisko @ 2013-05-07  8:14 UTC (permalink / raw)
  To: linux-arm-kernel

When p3 is eual to 0 then result for fOUT is 0. In that case we should
return 0 not parent_rate;

This issue was causing deadlock in si5351 chip when user set_rate for
ms0->clk0 and then set_rate for ms1->clk1 (both ms sourced from plla).
After that clk1 was 0 and it wasn't possible to enable it again (try also
manually with i2cset commands). Only power cycle helps.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
---
 drivers/clk/clk-si5351.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-si5351.c b/drivers/clk/clk-si5351.c
index fc215ce..a8fc0f4 100644
--- a/drivers/clk/clk-si5351.c
+++ b/drivers/clk/clk-si5351.c
@@ -607,7 +607,7 @@ static unsigned long si5351_msynth_recalc_rate(struct clk_hw *hw,
 		si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params);
 
 	if (hwdata->params.p3 == 0)
-		return parent_rate;
+		return 0;
 
 	/*
 	 * multisync0-5: fOUT = (128 * P3 * fIN) / (P1*P3 + P2 + 512*P3)
-- 
1.7.9.5

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

end of thread, other threads:[~2013-05-07 10:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-07  8:14 [PATCH 1/2] clk: si5351: Fix msynth_recalc_rate return value when fOUT is 0 Marek Belisko
2013-05-07  8:14 ` [PATCH 2/2] clk: si5351: Powerdown output when clock rate " Marek Belisko
2013-05-07 10:07   ` Sebastian Hesselbarth
2013-05-07 10:40     ` Marek Belisko
2013-05-07 10:03 ` [PATCH 1/2] clk: si5351: Fix msynth_recalc_rate return value when fOUT " Sebastian Hesselbarth
2013-05-07 10:17   ` Marek Belisko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox