diff mbox

sh_eth: r8a7790: Handle the RFE (Receive FIFO overflow Error) interrupt

Message ID 1375142928-17769-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Laurent Pinchart July 30, 2013, 12:08 a.m. UTC
The RFE interrupt is enabled for the r8a7790 but isn't handled,
resulting in the interrupts core noticing unhandled interrupts, and
eventually disabling the ethernet IRQ.

Fix it by adding RFE to the bitmask of error interrupts to be handled
for r8a7790.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/net/ethernet/renesas/sh_eth.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Simon Horman July 30, 2013, 2:10 a.m. UTC | #1
On Tue, Jul 30, 2013 at 02:08:48AM +0200, Laurent Pinchart wrote:
> The RFE interrupt is enabled for the r8a7790 but isn't handled,
> resulting in the interrupts core noticing unhandled interrupts, and
> eventually disabling the ethernet IRQ.
> 
> Fix it by adding RFE to the bitmask of error interrupts to be handled
> for r8a7790.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

This looks good to me:

Reviewed-by: Simon Horman <horms+renesas@verge.net.au>

> ---
>  drivers/net/ethernet/renesas/sh_eth.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
> index fedc0a0..9e2afe8 100644
> --- a/drivers/net/ethernet/renesas/sh_eth.c
> +++ b/drivers/net/ethernet/renesas/sh_eth.c
> @@ -403,8 +403,9 @@ static struct sh_eth_cpu_data r8a7790_data = {
>  	.eesipr_value	= 0x01ff009f,
>  
>  	.tx_check	= EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
> -	.eesr_err_check	= EESR_TWB | EESR_TABT | EESR_RABT | EESR_RDE |
> -			  EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI,
> +	.eesr_err_check	= EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
> +			  EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE |
> +			  EESR_ECI,
>  
>  	.apr		= 1,
>  	.mpr		= 1,
> -- 
> Regards,
> 
> Laurent Pinchart
> 
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov July 30, 2013, 2:17 p.m. UTC | #2
Hello.

On 30-07-2013 4:08, Laurent Pinchart wrote:

> The RFE interrupt is enabled for the r8a7790 but isn't handled,
> resulting in the interrupts core noticing unhandled interrupts, and
> eventually disabling the ethernet IRQ.

> Fix it by adding RFE to the bitmask of error interrupts to be handled
> for r8a7790.

    So, Simon hasn't synced his patch to my late bug fix in 3.10... Did this 
patch help you with your NFS boot issue, Laurent?

> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Laurent Pinchart July 30, 2013, 2:20 p.m. UTC | #3
Hi Sergei,

On Tuesday 30 July 2013 18:17:02 Sergei Shtylyov wrote:
> On 30-07-2013 4:08, Laurent Pinchart wrote:
> > The RFE interrupt is enabled for the r8a7790 but isn't handled,
> > resulting in the interrupts core noticing unhandled interrupts, and
> > eventually disabling the ethernet IRQ.
> > 
> > Fix it by adding RFE to the bitmask of error interrupts to be handled
> > for r8a7790.
> 
> So, Simon hasn't synced his patch to my late bug fix in 3.10... Did this
> patch help you with your NFS boot issue, Laurent?

Yes, it fixes the "disabling interrupt, nobody cared" problem. I still have 
intermittent NFS issues, but at least I can now boot.

> > Signed-off-by: Laurent Pinchart
> > <laurent.pinchart+renesas@ideasonboard.com>
Sergei Shtylyov July 30, 2013, 2:47 p.m. UTC | #4
Hello.

On 30-07-2013 18:20, Laurent Pinchart wrote:

>>> The RFE interrupt is enabled for the r8a7790 but isn't handled,
>>> resulting in the interrupts core noticing unhandled interrupts, and
>>> eventually disabling the ethernet IRQ.

>>> Fix it by adding RFE to the bitmask of error interrupts to be handled
>>> for r8a7790.

>> So, Simon hasn't synced his patch to my late bug fix in 3.10... Did this
>> patch help you with your NFS boot issue, Laurent?

> Yes, it fixes the "disabling interrupt, nobody cared" problem. I still have
> intermittent NFS issues, but at least I can now boot.

    I was somewhat thrown off by the Rx FIFO overflow messages appearing before
the "nobody cared", so I thought that must be another unhandled interrupt.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov July 30, 2013, 8:41 p.m. UTC | #5
Hello.

On 07/30/2013 04:08 AM, Laurent Pinchart wrote:

> The RFE interrupt is enabled for the r8a7790 but isn't handled,
> resulting in the interrupts core noticing unhandled interrupts, and
> eventually disabling the ethernet IRQ.
>
> Fix it by adding RFE to the bitmask of error interrupts to be handled
> for r8a7790.

> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> ---

    Laurent forgot to specify that the patch is for the net-next.git.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman July 31, 2013, 12:32 a.m. UTC | #6
On Tue, Jul 30, 2013 at 06:17:02PM +0400, Sergei Shtylyov wrote:
> Hello.
> 
> On 30-07-2013 4:08, Laurent Pinchart wrote:
> 
> >The RFE interrupt is enabled for the r8a7790 but isn't handled,
> >resulting in the interrupts core noticing unhandled interrupts, and
> >eventually disabling the ethernet IRQ.
> 
> >Fix it by adding RFE to the bitmask of error interrupts to be handled
> >for r8a7790.
> 
>    So, Simon hasn't synced his patch to my late bug fix in 3.10...

Sorry for missing that.

> Did this patch help you with your NFS boot issue, Laurent?
> 
> >Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> 
> WBR, Sergei
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov Sept. 12, 2013, 7:45 p.m. UTC | #7
Hello.

On 07/30/2013 06:20 PM, Laurent Pinchart wrote:

>>> The RFE interrupt is enabled for the r8a7790 but isn't handled,
>>> resulting in the interrupts core noticing unhandled interrupts, and
>>> eventually disabling the ethernet IRQ.

>>> Fix it by adding RFE to the bitmask of error interrupts to be handled
>>> for r8a7790.

>> So, Simon hasn't synced his patch to my late bug fix in 3.10... Did this
>> patch help you with your NFS boot issue, Laurent?

> Yes, it fixes the "disabling interrupt, nobody cared" problem. I still have
> intermittent NFS issues, but at least I can now boot.

    Looks like the reason for them is the same I had to fix up for the BOCK-W: 
the bouncing LINK signal. The PHY used is the same as on BOCK-W, however, its 
LED seems to be configured differently: for LINK and ACTIVE LEDs, this is 
non-default PHY configuration which AFAIK gets reset to default when the PHY 
gets reset. What I saw when I added orintk() for the interrupt enable/mask 
tracing was the LINK signal behaving normally at first but after some time ECI 
(M-Port in the manuals) interrupts started to behave the way well known from 
BOCK-W, i.e. bouncing on and off after each packet; I was also getting endless 
RFE (Rx FIFO overflow) interrupts and NFS was unable to mount at all in this 
traced mode. The fix was the same as for BOCK-W: to set 'no_ether_link' field 
of the platfrom data to 1. After that I've no more seen NFS timeouts and RFE 
interrupts. I'm going to continue testing but thought I let everybody know of 
my currct findings and the remedy for the NFS issue.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index fedc0a0..9e2afe8 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -403,8 +403,9 @@  static struct sh_eth_cpu_data r8a7790_data = {
 	.eesipr_value	= 0x01ff009f,
 
 	.tx_check	= EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
-	.eesr_err_check	= EESR_TWB | EESR_TABT | EESR_RABT | EESR_RDE |
-			  EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI,
+	.eesr_err_check	= EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
+			  EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE |
+			  EESR_ECI,
 
 	.apr		= 1,
 	.mpr		= 1,