ARC: AXS10x: Add temporary quirk to reset ethernet IP

Message ID 20170906182108.16765-1-Eugeniy.Paltsev@synopsys.com
State New
Headers show
Series
  • ARC: AXS10x: Add temporary quirk to reset ethernet IP
Related show

Commit Message

Eugeniy Paltsev Sept. 6, 2017, 6:21 p.m.
DW ethernet controller on AXS10x hangs sometimes after SW reset, so
add temporary quirk to reset DW ethernet controller IP core.
This quirk can be removed after axs10x reset driver
(see http://patchwork.ozlabs.org/patch/800273/)
or simple reset driver
(see https://patchwork.kernel.org/patch/9903375/)
will be available in upstream.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
---
 arch/arc/plat-axs10x/axs10x.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Vineet Gupta Sept. 6, 2017, 7:54 p.m. | #1
On 09/06/2017 11:21 AM, Eugeniy Paltsev wrote:
> DW ethernet controller on AXS10x hangs sometimes after SW reset, so
> add temporary quirk to reset DW ethernet controller IP core.
> This quirk can be removed after axs10x reset driver
> (see http://patchwork.ozlabs.org/patch/800273/)
> or simple reset driver
> (see https://patchwork.kernel.org/patch/9903375/)
> will be available in upstream.
> 
> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>

Added to for-next !

Thx,

> ---
>   arch/arc/plat-axs10x/axs10x.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
> index f1ac679..cf14ebc 100644
> --- a/arch/arc/plat-axs10x/axs10x.c
> +++ b/arch/arc/plat-axs10x/axs10x.c
> @@ -111,6 +111,13 @@ static void __init axs10x_early_init(void)
>   
>   	axs10x_enable_gpio_intc_wire();
>   
> +	/*
> +	 * Reset ethernet IP core.
> +	 * TODO: get rid of this quirk after axs10x reset driver (or simple
> +	 * reset driver) will be available in upstream.
> +	 */
> +	iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);
> +
>   	scnprintf(mb, 32, "MainBoard v%d", mb_rev);
>   	axs10x_print_board_ver(CREG_MB_VER, mb);
>   }
>
Eugeniy Paltsev Sept. 8, 2017, 5:14 p.m. | #2
On Wed, 2017-09-06 at 12:54 -0700, Vineet Gupta wrote:
> On 09/06/2017 11:21 AM, Eugeniy Paltsev wrote:

> > DW ethernet controller on AXS10x hangs sometimes after SW reset, so

> > add temporary quirk to reset DW ethernet controller IP core.

> > This quirk can be removed after axs10x reset driver

> > (see http://patchwork.ozlabs.org/patch/800273/)

> > or simple reset driver

> > (see https://patchwork.kernel.org/patch/9903375/)

> > will be available in upstream.

> > 

> > Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>

> 

> Added to for-next !

> 

> Thx,


Hi Vineet,

Please specify if you have plans to add this patch to 4.14?

I'm asking because we mostly need this quirk in 4.14 - I hope generic simple
reset driver will be available in 4.15.

Thanks.

> 

> > ---

> >   arch/arc/plat-axs10x/axs10x.c | 7 +++++++

> >   1 file changed, 7 insertions(+)

> > 

> > diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c

> > index f1ac679..cf14ebc 100644

> > --- a/arch/arc/plat-axs10x/axs10x.c

> > +++ b/arch/arc/plat-axs10x/axs10x.c

> > @@ -111,6 +111,13 @@ static void __init axs10x_early_init(void)

> >   

> >   	axs10x_enable_gpio_intc_wire();

> >   

> > +	/*

> > +	 * Reset ethernet IP core.

> > +	 * TODO: get rid of this quirk after axs10x reset driver (or simple

> > +	 * reset driver) will be available in upstream.

> > +	 */

> > +	iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);

> > +

> >   	scnprintf(mb, 32, "MainBoard v%d", mb_rev);

> >   	axs10x_print_board_ver(CREG_MB_VER, mb);

> >   }

> > 

> 

> 

-- 
 Eugeniy Paltsev
Vineet Gupta Sept. 8, 2017, 5:31 p.m. | #3
On 09/08/2017 10:14 AM, Eugeniy Paltsev wrote:
> On Wed, 2017-09-06 at 12:54 -0700, Vineet Gupta wrote:
>> On 09/06/2017 11:21 AM, Eugeniy Paltsev wrote:
>>> DW ethernet controller on AXS10x hangs sometimes after SW reset, so
>>> add temporary quirk to reset DW ethernet controller IP core.
>>> This quirk can be removed after axs10x reset driver
>>> (see http://patchwork.ozlabs.org/patch/800273/)
>>> or simple reset driver
>>> (see https://patchwork.kernel.org/patch/9903375/)
>>> will be available in upstream.
>>>
>>> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
>> Added to for-next !
>>
>> Thx,
> Hi Vineet,
>
> Please specify if you have plans to add this patch to 4.14?
>
> I'm asking because we mostly need this quirk in 4.14 - I hope generic simple
> reset driver will be available in 4.15.

New code can't be added during the merge window ! I've applied it locally and it 
will happen after rc1 is out !

Patch

diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
index f1ac679..cf14ebc 100644
--- a/arch/arc/plat-axs10x/axs10x.c
+++ b/arch/arc/plat-axs10x/axs10x.c
@@ -111,6 +111,13 @@  static void __init axs10x_early_init(void)
 
 	axs10x_enable_gpio_intc_wire();
 
+	/*
+	 * Reset ethernet IP core.
+	 * TODO: get rid of this quirk after axs10x reset driver (or simple
+	 * reset driver) will be available in upstream.
+	 */
+	iowrite32((1 << 5), (void __iomem *) CREG_MB_SW_RESET);
+
 	scnprintf(mb, 32, "MainBoard v%d", mb_rev);
 	axs10x_print_board_ver(CREG_MB_VER, mb);
 }