netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: macb: Handle the RXUBR interrupt on all devices
@ 2015-05-05 20:00 Nathan Sullivan
  2015-05-09 20:04 ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Nathan Sullivan @ 2015-05-05 20:00 UTC (permalink / raw)
  To: nicolas.ferre; +Cc: netdev, linux-kernel, Nathan Sullivan

The same hardware issue the at91 must work around applies to at least the
Zynq ethernet, and possibly more devices.  The driver also needs to handle
the RXUBR interrupt since it turns it on with MACB_RX_INT_FLAGS anyway.

Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>
---
 drivers/net/ethernet/cadence/macb.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 4104d49..61aa570 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -981,7 +981,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
 	struct macb_queue *queue = dev_id;
 	struct macb *bp = queue->bp;
 	struct net_device *dev = bp->dev;
-	u32 status;
+	u32 status, ctrl;
 
 	status = queue_readl(queue, ISR);
 
@@ -1037,6 +1037,15 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
 		 * add that if/when we get our hands on a full-blown MII PHY.
 		 */
 
+		if (status & MACB_BIT(RXUBR)) {
+			ctrl = macb_readl(bp, NCR);
+			macb_writel(bp, NCR, ctrl & ~MACB_BIT(RE));
+			macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
+
+			if (bp->caps & MACB_CAPS_ISR_CLEAR_ON_WRITE)
+				macb_writel(bp, ISR, MACB_BIT(RXUBR));
+		}
+
 		if (status & MACB_BIT(ISR_ROVR)) {
 			/* We missed at least one packet */
 			if (macb_is_gem(bp))
-- 
1.7.10.4

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

* Re: [PATCH] net: macb: Handle the RXUBR interrupt on all devices
  2015-05-05 20:00 [PATCH] net: macb: Handle the RXUBR interrupt on all devices Nathan Sullivan
@ 2015-05-09 20:04 ` David Miller
  2015-05-11 10:10   ` Nicolas Ferre
  0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2015-05-09 20:04 UTC (permalink / raw)
  To: nathan.sullivan; +Cc: nicolas.ferre, netdev, linux-kernel

From: Nathan Sullivan <nathan.sullivan@ni.com>
Date: Tue, 5 May 2015 15:00:25 -0500

> The same hardware issue the at91 must work around applies to at least the
> Zynq ethernet, and possibly more devices.  The driver also needs to handle
> the RXUBR interrupt since it turns it on with MACB_RX_INT_FLAGS anyway.
> 
> Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>

Applied, thank you.

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

* Re: [PATCH] net: macb: Handle the RXUBR interrupt on all devices
  2015-05-09 20:04 ` David Miller
@ 2015-05-11 10:10   ` Nicolas Ferre
  2015-05-11 14:28     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Nicolas Ferre @ 2015-05-11 10:10 UTC (permalink / raw)
  To: David Miller; +Cc: nathan.sullivan, netdev, linux-kernel

Le 09/05/2015 22:04, David Miller a écrit :
> From: Nathan Sullivan <nathan.sullivan@ni.com>
> Date: Tue, 5 May 2015 15:00:25 -0500
> 
>> The same hardware issue the at91 must work around applies to at least the
>> Zynq ethernet, and possibly more devices.  The driver also needs to handle
>> the RXUBR interrupt since it turns it on with MACB_RX_INT_FLAGS anyway.
>>
>> Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>
> 
> Applied, thank you.

A v2 of this patch with more explanation in both the commit message and
in code comments had been sent. Not a big deal (I suspect you can't use
the v2 one, now that it's applied in your tree, can you?).

Bye,
-- 
Nicolas Ferre

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

* Re: [PATCH] net: macb: Handle the RXUBR interrupt on all devices
  2015-05-11 10:10   ` Nicolas Ferre
@ 2015-05-11 14:28     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2015-05-11 14:28 UTC (permalink / raw)
  To: nicolas.ferre; +Cc: nathan.sullivan, netdev, linux-kernel

From: Nicolas Ferre <nicolas.ferre@atmel.com>
Date: Mon, 11 May 2015 12:10:54 +0200

> Le 09/05/2015 22:04, David Miller a écrit :
>> From: Nathan Sullivan <nathan.sullivan@ni.com>
>> Date: Tue, 5 May 2015 15:00:25 -0500
>> 
>>> The same hardware issue the at91 must work around applies to at least the
>>> Zynq ethernet, and possibly more devices.  The driver also needs to handle
>>> the RXUBR interrupt since it turns it on with MACB_RX_INT_FLAGS anyway.
>>>
>>> Signed-off-by: Nathan Sullivan <nathan.sullivan@ni.com>
>> 
>> Applied, thank you.
> 
> A v2 of this patch with more explanation in both the commit message and
> in code comments had been sent. Not a big deal (I suspect you can't use
> the v2 one, now that it's applied in your tree, can you?).

Sorry, yes I see there was a v2.  If you want to send me a relative patch that
corrects things, I can apply that.

Thanks.

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

end of thread, other threads:[~2015-05-11 14:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-05 20:00 [PATCH] net: macb: Handle the RXUBR interrupt on all devices Nathan Sullivan
2015-05-09 20:04 ` David Miller
2015-05-11 10:10   ` Nicolas Ferre
2015-05-11 14:28     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).