Patchwork [REGRESSION+BISECT] imx6: 3.8+: sata failure with 24d340ac "ARM i.MX6: Fix ethernet PLL clocks"

login
register
mail settings
Submitter Shawn Guo
Date Jan. 31, 2013, 1:30 p.m.
Message ID <20130131133054.GD2735@S2101-09.ap.freescale.net>
Download mbox | patch
Permalink /patch/217189/
State New
Headers show

Comments

Shawn Guo - Jan. 31, 2013, 1:30 p.m.
On Thu, Jan 31, 2013 at 12:36:27PM +0100, Paolo Pisati wrote:
> Hi,
> 
> sata doesn't work anymore in 3.8rcX (while it was ok in 3.7 + 1 patch[1]) and i've bisected
> it down to:
> 
Technically, it's not a regression since vanilla 3.7 kernel does not
have SATA work out of box.  So we do not have to maintain the function
when changing clock code.

Can you please try to see if the following change bring that SATA back
to work?

Shawn
Paolo Pisati - Jan. 31, 2013, 1:53 p.m.
On Thu, Jan 31, 2013 at 09:30:56PM +0800, Shawn Guo wrote:
> 
> Can you please try to see if the following change bring that SATA back
> to work?
> 
> Shawn
> 
> diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
> index c0c4e72..8f756af 100644
> --- a/arch/arm/mach-imx/clk-imx6q.c
> +++ b/arch/arm/mach-imx/clk-imx6q.c
> @@ -436,6 +436,9 @@ int __init mx6q_clocks_init(void)
>         for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)
>                 clk_prepare_enable(clk[clks_init_on[i]]);
> 
> +       if (IS_ENABLED(CONFIG_SATA_AHCI_PLATFORM))
> +               clk_prepare_enable(clk[sata_ref_100m]);
> +
>         /* Set initial power mode */
>         imx6q_set_lpm(WAIT_CLOCKED);

yes, it fixes SATA.

Tested-by: <p.pisati@gmail.com>
Shawn Guo - Jan. 31, 2013, 2:26 p.m.
On Thu, Jan 31, 2013 at 02:53:51PM +0100, Paolo Pisati wrote:
> On Thu, Jan 31, 2013 at 09:30:56PM +0800, Shawn Guo wrote:
> > 
> > Can you please try to see if the following change bring that SATA back
> > to work?
> > 
> > Shawn
> > 
> > diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
> > index c0c4e72..8f756af 100644
> > --- a/arch/arm/mach-imx/clk-imx6q.c
> > +++ b/arch/arm/mach-imx/clk-imx6q.c
> > @@ -436,6 +436,9 @@ int __init mx6q_clocks_init(void)
> >         for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)
> >                 clk_prepare_enable(clk[clks_init_on[i]]);
> > 
> > +       if (IS_ENABLED(CONFIG_SATA_AHCI_PLATFORM))
> > +               clk_prepare_enable(clk[sata_ref_100m]);
> > +
> >         /* Set initial power mode */
> >         imx6q_set_lpm(WAIT_CLOCKED);
> 
> yes, it fixes SATA.
> 
> Tested-by: <p.pisati@gmail.com>

Just to be clear, I'm not sending this change to mainline, as I expect
someone who cares about SATA function adds this code when he submits
imx6q SATA support (that out of tree patch).

Shawn

Patch

diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
index c0c4e72..8f756af 100644
--- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/arch/arm/mach-imx/clk-imx6q.c
@@ -436,6 +436,9 @@  int __init mx6q_clocks_init(void)
        for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)
                clk_prepare_enable(clk[clks_init_on[i]]);

+       if (IS_ENABLED(CONFIG_SATA_AHCI_PLATFORM))
+               clk_prepare_enable(clk[sata_ref_100m]);
+
        /* Set initial power mode */
        imx6q_set_lpm(WAIT_CLOCKED);