Re: [PATCH] clk: exynos5250: Fix parent clock for sclk_mmc{0,1,2,3}

2013-04-23 Thread Doug Anderson
Tushar,

Thanks for tracking this down.

On Mon, Apr 22, 2013 at 11:31 PM, Tushar Behera
tushar.beh...@linaro.org wrote:
 commit 688f7d8c9fef (clk: exynos5250: Fix divider values for
 sclk_mmc{0,1,2,3}) incorrectly sets the divider for sclk_mmc{0,1,2,3}
 to fix the wrong clock value. Though this fixed issue with Arndale,
 it created regressions for other boards like Snow.

 On Exynos5250, sclk_mmcn is generated like below (as per the clock
 names in drivers/clk/samsung/clk-exynos5250.c)

 mout_group1_p == mout_mmcn ==
 div_mmcn == div_mmc_pren = sclk_mmcn

 Earlier div_mmcn was set as the parent for sclk_mmcn, hence
 div_mmc_pren was not getting referred in kernel code and depending
 on its value set during preboot, sclk_mmcn value was different for
 various boards.

 Setting the correct clock generation path should fix the issues
 reported in above referenced commit. The changes committed during the
 earlier patch has also been reverted here.

 Signed-off-by: Tushar Behera tushar.beh...@linaro.org
 CC: Doug Anderson diand...@chromium.org
 ---
 Doug,

 Would you please test whether this patch works for Snow?

Yup, it works for me.  I did the basic testing of installing to eMMC
with this and then booting from eMMC.  I saw no errors in the console.

I glanced over the patch and it looks reasonable to me.  :)

Reported-by: Doug Anderson diand...@chromium.org
Tested-by: Doug Anderson diand...@chromium.org
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] clk: exynos5250: Fix parent clock for sclk_mmc{0,1,2,3}

2013-04-23 Thread Mike Turquette
Quoting Tushar Behera (2013-04-22 23:31:51)
 commit 688f7d8c9fef (clk: exynos5250: Fix divider values for
 sclk_mmc{0,1,2,3}) incorrectly sets the divider for sclk_mmc{0,1,2,3}
 to fix the wrong clock value. Though this fixed issue with Arndale,
 it created regressions for other boards like Snow.
 
 On Exynos5250, sclk_mmcn is generated like below (as per the clock
 names in drivers/clk/samsung/clk-exynos5250.c)
 
 mout_group1_p == mout_mmcn ==
 div_mmcn == div_mmc_pren = sclk_mmcn
 
 Earlier div_mmcn was set as the parent for sclk_mmcn, hence
 div_mmc_pren was not getting referred in kernel code and depending
 on its value set during preboot, sclk_mmcn value was different for
 various boards.
 
 Setting the correct clock generation path should fix the issues
 reported in above referenced commit. The changes committed during the
 earlier patch has also been reverted here.
 
 Signed-off-by: Tushar Behera tushar.beh...@linaro.org
 CC: Doug Anderson diand...@chromium.org

Change looks good to me.

Regards,
Mike

 ---
 Doug,
 
 Would you please test whether this patch works for Snow?
 
 
  drivers/clk/samsung/clk-exynos5250.c |   16 
  1 file changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/clk/samsung/clk-exynos5250.c 
 b/drivers/clk/samsung/clk-exynos5250.c
 index 7290faa..bb54606 100644
 --- a/drivers/clk/samsung/clk-exynos5250.c
 +++ b/drivers/clk/samsung/clk-exynos5250.c
 @@ -276,10 +276,10 @@ struct samsung_div_clock exynos5250_div_clks[] 
 __initdata = {
 DIV(none, div_pcm0, sclk_audio0, DIV_MAU, 4, 8),
 DIV(none, div_sata, mout_sata, DIV_FSYS0, 20, 4),
 DIV(none, div_usb3, mout_usb3, DIV_FSYS0, 24, 4),
 -   DIV(none, div_mmc0, mout_mmc0, DIV_FSYS1, 8, 8),
 -   DIV(none, div_mmc1, mout_mmc1, DIV_FSYS1, 24, 8),
 -   DIV(none, div_mmc2, mout_mmc2, DIV_FSYS2, 8, 8),
 -   DIV(none, div_mmc3, mout_mmc3, DIV_FSYS2, 24, 8),
 +   DIV(none, div_mmc0, mout_mmc0, DIV_FSYS1, 0, 4),
 +   DIV(none, div_mmc1, mout_mmc1, DIV_FSYS1, 16, 4),
 +   DIV(none, div_mmc2, mout_mmc2, DIV_FSYS2, 0, 4),
 +   DIV(none, div_mmc3, mout_mmc3, DIV_FSYS2, 16, 4),
 DIV(none, div_uart0, mout_uart0, DIV_PERIC0, 0, 4),
 DIV(none, div_uart1, mout_uart1, DIV_PERIC0, 4, 4),
 DIV(none, div_uart2, mout_uart2, DIV_PERIC0, 8, 4),
 @@ -421,13 +421,13 @@ struct samsung_gate_clock exynos5250_gate_clks[] 
 __initdata = {
 SRC_MASK_DISP1_0, 20, 0, 0),
 GATE(sclk_audio0, sclk_audio0, div_audio0,
 SRC_MASK_MAU, 0, CLK_SET_RATE_PARENT, 0),
 -   GATE(sclk_mmc0, sclk_mmc0, div_mmc0,
 +   GATE(sclk_mmc0, sclk_mmc0, div_mmc_pre0,
 SRC_MASK_FSYS, 0, CLK_SET_RATE_PARENT, 0),
 -   GATE(sclk_mmc1, sclk_mmc1, div_mmc1,
 +   GATE(sclk_mmc1, sclk_mmc1, div_mmc_pre1,
 SRC_MASK_FSYS, 4, CLK_SET_RATE_PARENT, 0),
 -   GATE(sclk_mmc2, sclk_mmc2, div_mmc2,
 +   GATE(sclk_mmc2, sclk_mmc2, div_mmc_pre2,
 SRC_MASK_FSYS, 8, CLK_SET_RATE_PARENT, 0),
 -   GATE(sclk_mmc3, sclk_mmc3, div_mmc3,
 +   GATE(sclk_mmc3, sclk_mmc3, div_mmc_pre3,
 SRC_MASK_FSYS, 12, CLK_SET_RATE_PARENT, 0),
 GATE(sclk_sata, sclk_sata, div_sata,
 SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0),
 -- 
 1.7.9.5
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] clk: exynos5250: Fix parent clock for sclk_mmc{0,1,2,3}

2013-04-23 Thread Kukjin Kim

On 04/24/13 01:23, Mike Turquette wrote:

Quoting Tushar Behera (2013-04-22 23:31:51)

commit 688f7d8c9fef (clk: exynos5250: Fix divider values for
sclk_mmc{0,1,2,3}) incorrectly sets the divider for sclk_mmc{0,1,2,3}
to fix the wrong clock value. Though this fixed issue with Arndale,
it created regressions for other boards like Snow.

On Exynos5250, sclk_mmcn  is generated like below (as per the clock
names in drivers/clk/samsung/clk-exynos5250.c)

mout_group1_p ==  mout_mmcn  ==
 div_mmcn  ==  div_mmc_pren  =  sclk_mmcn

Earlier div_mmcn  was set as the parent for sclk_mmcn, hence
div_mmc_pren  was not getting referred in kernel code and depending
on its value set during preboot, sclk_mmcn  value was different for
various boards.

Setting the correct clock generation path should fix the issues
reported in above referenced commit. The changes committed during the
earlier patch has also been reverted here.

Signed-off-by: Tushar Beheratushar.beh...@linaro.org
CC: Doug Andersondiand...@chromium.org


Change looks good to me.



+1

Olof, I think, you can pick this up in the arm-soc directly.

If you want:
Acked-by: Kukjin Kim kgene@samsung.com

Thanks.

- Kukjin


---
Doug,

Would you please test whether this patch works for Snow?


  drivers/clk/samsung/clk-exynos5250.c |   16 
  1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/clk/samsung/clk-exynos5250.c 
b/drivers/clk/samsung/clk-exynos5250.c
index 7290faa..bb54606 100644
--- a/drivers/clk/samsung/clk-exynos5250.c
+++ b/drivers/clk/samsung/clk-exynos5250.c
@@ -276,10 +276,10 @@ struct samsung_div_clock exynos5250_div_clks[] __initdata 
= {
 DIV(none, div_pcm0, sclk_audio0, DIV_MAU, 4, 8),
 DIV(none, div_sata, mout_sata, DIV_FSYS0, 20, 4),
 DIV(none, div_usb3, mout_usb3, DIV_FSYS0, 24, 4),
-   DIV(none, div_mmc0, mout_mmc0, DIV_FSYS1, 8, 8),
-   DIV(none, div_mmc1, mout_mmc1, DIV_FSYS1, 24, 8),
-   DIV(none, div_mmc2, mout_mmc2, DIV_FSYS2, 8, 8),
-   DIV(none, div_mmc3, mout_mmc3, DIV_FSYS2, 24, 8),
+   DIV(none, div_mmc0, mout_mmc0, DIV_FSYS1, 0, 4),
+   DIV(none, div_mmc1, mout_mmc1, DIV_FSYS1, 16, 4),
+   DIV(none, div_mmc2, mout_mmc2, DIV_FSYS2, 0, 4),
+   DIV(none, div_mmc3, mout_mmc3, DIV_FSYS2, 16, 4),
 DIV(none, div_uart0, mout_uart0, DIV_PERIC0, 0, 4),
 DIV(none, div_uart1, mout_uart1, DIV_PERIC0, 4, 4),
 DIV(none, div_uart2, mout_uart2, DIV_PERIC0, 8, 4),
@@ -421,13 +421,13 @@ struct samsung_gate_clock exynos5250_gate_clks[] 
__initdata = {
 SRC_MASK_DISP1_0, 20, 0, 0),
 GATE(sclk_audio0, sclk_audio0, div_audio0,
 SRC_MASK_MAU, 0, CLK_SET_RATE_PARENT, 0),
-   GATE(sclk_mmc0, sclk_mmc0, div_mmc0,
+   GATE(sclk_mmc0, sclk_mmc0, div_mmc_pre0,
 SRC_MASK_FSYS, 0, CLK_SET_RATE_PARENT, 0),
-   GATE(sclk_mmc1, sclk_mmc1, div_mmc1,
+   GATE(sclk_mmc1, sclk_mmc1, div_mmc_pre1,
 SRC_MASK_FSYS, 4, CLK_SET_RATE_PARENT, 0),
-   GATE(sclk_mmc2, sclk_mmc2, div_mmc2,
+   GATE(sclk_mmc2, sclk_mmc2, div_mmc_pre2,
 SRC_MASK_FSYS, 8, CLK_SET_RATE_PARENT, 0),
-   GATE(sclk_mmc3, sclk_mmc3, div_mmc3,
+   GATE(sclk_mmc3, sclk_mmc3, div_mmc_pre3,
 SRC_MASK_FSYS, 12, CLK_SET_RATE_PARENT, 0),
 GATE(sclk_sata, sclk_sata, div_sata,
 SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0),
--
1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] clk: exynos5250: Fix parent clock for sclk_mmc{0,1,2,3}

2013-04-23 Thread Olof Johansson
On Tue, Apr 23, 2013 at 12:01:51PM +0530, Tushar Behera wrote:
 commit 688f7d8c9fef (clk: exynos5250: Fix divider values for
 sclk_mmc{0,1,2,3}) incorrectly sets the divider for sclk_mmc{0,1,2,3}
 to fix the wrong clock value. Though this fixed issue with Arndale,
 it created regressions for other boards like Snow.
 
 On Exynos5250, sclk_mmcn is generated like below (as per the clock
 names in drivers/clk/samsung/clk-exynos5250.c)
 
 mout_group1_p == mout_mmcn ==
   div_mmcn == div_mmc_pren = sclk_mmcn
 
 Earlier div_mmcn was set as the parent for sclk_mmcn, hence
 div_mmc_pren was not getting referred in kernel code and depending
 on its value set during preboot, sclk_mmcn value was different for
 various boards.
 
 Setting the correct clock generation path should fix the issues
 reported in above referenced commit. The changes committed during the
 earlier patch has also been reverted here.
 
 Signed-off-by: Tushar Behera tushar.beh...@linaro.org
 CC: Doug Anderson diand...@chromium.org
 ---
 Doug,
 
 Would you please test whether this patch works for Snow?

Applied to next/drivers in arm-soc.git.


-Olof

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html