All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sh_eth: Change handling of IRQ
@ 2009-03-17  5:50   ` Nobuhiro Iwamatsu
  0 siblings, 0 replies; 10+ messages in thread
From: Nobuhiro Iwamatsu @ 2009-03-17  5:50 UTC (permalink / raw)
  To: netdev; +Cc: Linux-sh, Paul Mundt

Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
changed.
This revises it for this change.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
---
 drivers/net/sh_eth.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index 7f8e514..7b18827 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -687,6 +687,7 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
 {
 	struct net_device *ndev = netdev;
 	struct sh_eth_private *mdp = netdev_priv(ndev);
+	irqreturn_t ret = IRQ_NONE;
 	u32 ioaddr, boguscnt = RX_RING_SIZE;
 	u32 intr_status = 0;

@@ -696,7 +697,13 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
 	/* Get interrpt stat */
 	intr_status = ctrl_inl(ioaddr + EESR);
 	/* Clear interrupt */
-	ctrl_outl(intr_status, ioaddr + EESR);
+	if (intr_status & (EESR_FRC | EESR_RMAF | EESR_RRF |
+			EESR_RTLF | EESR_RTSF | EESR_PRE | EESR_CERF |
+			TX_CHECK | EESR_ERR_CHECK)) {
+		ctrl_outl(intr_status, ioaddr + EESR);
+		ret = IRQ_HANDLED;
+	} else
+		goto other_irq;

 	if (intr_status & (EESR_FRC | /* Frame recv*/
 			EESR_RMAF | /* Multi cast address recv*/
@@ -723,9 +730,10 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
 		       ndev->name, intr_status);
 	}

+other_irq:
 	spin_unlock(&mdp->lock);

-	return IRQ_HANDLED;
+	return ret;
 }

 static void sh_eth_timer(unsigned long data)
@@ -844,7 +852,13 @@ static int sh_eth_open(struct net_device *ndev)
 	int ret = 0;
 	struct sh_eth_private *mdp = netdev_priv(ndev);

-	ret = request_irq(ndev->irq, &sh_eth_interrupt, 0, ndev->name, ndev);
+	ret = request_irq(ndev->irq, &sh_eth_interrupt,
+#if defined(CONFIG_CPU_SUBTYPE_SH7763) || defined(CONFIG_CPU_SUBTYPE_SH7764)
+				IRQF_SHARED,
+#else
+				0,
+#endif
+				ndev->name, ndev);
 	if (ret) {
 		printk(KERN_ERR "Can not assign IRQ number to %s\n", CARDNAME);
 		return ret;
-- 
1.6.2


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

* [PATCH] sh_eth: Change handling of IRQ
@ 2009-03-17  5:50   ` Nobuhiro Iwamatsu
  0 siblings, 0 replies; 10+ messages in thread
From: Nobuhiro Iwamatsu @ 2009-03-17  5:50 UTC (permalink / raw)
  To: netdev; +Cc: Linux-sh, Paul Mundt

Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
changed.
This revises it for this change.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
---
 drivers/net/sh_eth.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index 7f8e514..7b18827 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -687,6 +687,7 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
 {
 	struct net_device *ndev = netdev;
 	struct sh_eth_private *mdp = netdev_priv(ndev);
+	irqreturn_t ret = IRQ_NONE;
 	u32 ioaddr, boguscnt = RX_RING_SIZE;
 	u32 intr_status = 0;

@@ -696,7 +697,13 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
 	/* Get interrpt stat */
 	intr_status = ctrl_inl(ioaddr + EESR);
 	/* Clear interrupt */
-	ctrl_outl(intr_status, ioaddr + EESR);
+	if (intr_status & (EESR_FRC | EESR_RMAF | EESR_RRF |
+			EESR_RTLF | EESR_RTSF | EESR_PRE | EESR_CERF |
+			TX_CHECK | EESR_ERR_CHECK)) {
+		ctrl_outl(intr_status, ioaddr + EESR);
+		ret = IRQ_HANDLED;
+	} else
+		goto other_irq;

 	if (intr_status & (EESR_FRC | /* Frame recv*/
 			EESR_RMAF | /* Multi cast address recv*/
@@ -723,9 +730,10 @@ static irqreturn_t sh_eth_interrupt(int irq, void *netdev)
 		       ndev->name, intr_status);
 	}

+other_irq:
 	spin_unlock(&mdp->lock);

-	return IRQ_HANDLED;
+	return ret;
 }

 static void sh_eth_timer(unsigned long data)
@@ -844,7 +852,13 @@ static int sh_eth_open(struct net_device *ndev)
 	int ret = 0;
 	struct sh_eth_private *mdp = netdev_priv(ndev);

-	ret = request_irq(ndev->irq, &sh_eth_interrupt, 0, ndev->name, ndev);
+	ret = request_irq(ndev->irq, &sh_eth_interrupt,
+#if defined(CONFIG_CPU_SUBTYPE_SH7763) || defined(CONFIG_CPU_SUBTYPE_SH7764)
+				IRQF_SHARED,
+#else
+				0,
+#endif
+				ndev->name, ndev);
 	if (ret) {
 		printk(KERN_ERR "Can not assign IRQ number to %s\n", CARDNAME);
 		return ret;
-- 
1.6.2


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

* [PATCH] sh_eth: Fix mistake of the address of SH7763
@ 2009-03-17  5:52 ` Nobuhiro Iwamatsu
  0 siblings, 0 replies; 10+ messages in thread
From: Nobuhiro Iwamatsu @ 2009-03-17  5:52 UTC (permalink / raw)
  To: netdev; +Cc: Linux-sh, Paul Mundt

Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
This revise it.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
---
 drivers/net/sh_eth.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/sh_eth.h b/drivers/net/sh_eth.h
index 73bc718..1537e13 100644
--- a/drivers/net/sh_eth.h
+++ b/drivers/net/sh_eth.h
@@ -43,8 +43,8 @@

 #define SH7763_SKB_ALIGN 32
 /* Chip Base Address */
-# define SH_TSU_ADDR  0xFFE01800
-# define ARSTR 		  0xFFE01800
+# define SH_TSU_ADDR	0xFEE01800
+# define ARSTR			SH_TSU_ADDR

 /* Chip Registers */
 /* E-DMAC */
-- 
1.6.2

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

* [PATCH] sh_eth: Fix mistake of the address of SH7763
@ 2009-03-17  5:52 ` Nobuhiro Iwamatsu
  0 siblings, 0 replies; 10+ messages in thread
From: Nobuhiro Iwamatsu @ 2009-03-17  5:52 UTC (permalink / raw)
  To: netdev; +Cc: Linux-sh, Paul Mundt

Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
This revise it.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
---
 drivers/net/sh_eth.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/sh_eth.h b/drivers/net/sh_eth.h
index 73bc718..1537e13 100644
--- a/drivers/net/sh_eth.h
+++ b/drivers/net/sh_eth.h
@@ -43,8 +43,8 @@

 #define SH7763_SKB_ALIGN 32
 /* Chip Base Address */
-# define SH_TSU_ADDR  0xFFE01800
-# define ARSTR 		  0xFFE01800
+# define SH_TSU_ADDR	0xFEE01800
+# define ARSTR			SH_TSU_ADDR

 /* Chip Registers */
 /* E-DMAC */
-- 
1.6.2

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

* Re: [PATCH] sh_eth: Change handling of IRQ
  2009-03-17  5:50   ` Nobuhiro Iwamatsu
@ 2009-03-30 23:15     ` Paul Mundt
  -1 siblings, 0 replies; 10+ messages in thread
From: Paul Mundt @ 2009-03-30 23:15 UTC (permalink / raw)
  To: Nobuhiro Iwamatsu; +Cc: netdev, Linux-sh

On Tue, Mar 17, 2009 at 02:50:57PM +0900, Nobuhiro Iwamatsu wrote:
> Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
> changed.
> This revises it for this change.
> 
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>

On Tue, Mar 17, 2009 at 02:52:23PM +0900, Nobuhiro Iwamatsu wrote:
> Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
> This revise it.
> 
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>

The sh changes this depends on for the CPU subtypes are merged upstream
now, so this can go through either tree. As there is nothing really
netdev specific about this, I suppose the easiest is to just roll both of
these in to the sh tree.

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

* Re: [PATCH] sh_eth: Change handling of IRQ
@ 2009-03-30 23:15     ` Paul Mundt
  0 siblings, 0 replies; 10+ messages in thread
From: Paul Mundt @ 2009-03-30 23:15 UTC (permalink / raw)
  To: Nobuhiro Iwamatsu; +Cc: netdev, Linux-sh

On Tue, Mar 17, 2009 at 02:50:57PM +0900, Nobuhiro Iwamatsu wrote:
> Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
> changed.
> This revises it for this change.
> 
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>

On Tue, Mar 17, 2009 at 02:52:23PM +0900, Nobuhiro Iwamatsu wrote:
> Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
> This revise it.
> 
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>

The sh changes this depends on for the CPU subtypes are merged upstream
now, so this can go through either tree. As there is nothing really
netdev specific about this, I suppose the easiest is to just roll both of
these in to the sh tree.

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

* Re: [PATCH] sh_eth: Change handling of IRQ
  2009-03-30 23:15     ` Paul Mundt
@ 2009-03-30 23:16       ` Paul Mundt
  -1 siblings, 0 replies; 10+ messages in thread
From: Paul Mundt @ 2009-03-30 23:16 UTC (permalink / raw)
  To: Nobuhiro Iwamatsu, netdev, Linux-sh

On Tue, Mar 31, 2009 at 08:15:13AM +0900, Paul Mundt wrote:
> On Tue, Mar 17, 2009 at 02:50:57PM +0900, Nobuhiro Iwamatsu wrote:
> > Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
> > changed.
> > This revises it for this change.
> > 
> > Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
> 
> On Tue, Mar 17, 2009 at 02:52:23PM +0900, Nobuhiro Iwamatsu wrote:
> > Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
> > This revise it.
> > 
> > Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
> 
> The sh changes this depends on for the CPU subtypes are merged upstream
> now, so this can go through either tree. As there is nothing really
> netdev specific about this, I suppose the easiest is to just roll both of
> these in to the sh tree.

Oh, nevermind, I see these were merged already through the net tree..

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

* Re: [PATCH] sh_eth: Change handling of IRQ
@ 2009-03-30 23:16       ` Paul Mundt
  0 siblings, 0 replies; 10+ messages in thread
From: Paul Mundt @ 2009-03-30 23:16 UTC (permalink / raw)
  To: Nobuhiro Iwamatsu, netdev, Linux-sh

On Tue, Mar 31, 2009 at 08:15:13AM +0900, Paul Mundt wrote:
> On Tue, Mar 17, 2009 at 02:50:57PM +0900, Nobuhiro Iwamatsu wrote:
> > Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
> > changed.
> > This revises it for this change.
> > 
> > Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
> 
> On Tue, Mar 17, 2009 at 02:52:23PM +0900, Nobuhiro Iwamatsu wrote:
> > Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
> > This revise it.
> > 
> > Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
> 
> The sh changes this depends on for the CPU subtypes are merged upstream
> now, so this can go through either tree. As there is nothing really
> netdev specific about this, I suppose the easiest is to just roll both of
> these in to the sh tree.

Oh, nevermind, I see these were merged already through the net tree..

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

* Re: [PATCH] sh_eth: Change handling of IRQ
  2009-03-30 23:16       ` Paul Mundt
@ 2009-03-31  0:58         ` Nobuhiro Iwamatsu
  -1 siblings, 0 replies; 10+ messages in thread
From: Nobuhiro Iwamatsu @ 2009-03-31  0:58 UTC (permalink / raw)
  To: Paul Mundt, Nobuhiro Iwamatsu, netdev, Linux-sh

Paul Mundt wrote:
> On Tue, Mar 31, 2009 at 08:15:13AM +0900, Paul Mundt wrote:
>> On Tue, Mar 17, 2009 at 02:50:57PM +0900, Nobuhiro Iwamatsu wrote:
>>> Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
>>> changed.
>>> This revises it for this change.
>>>
>>> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
>> On Tue, Mar 17, 2009 at 02:52:23PM +0900, Nobuhiro Iwamatsu wrote:
>>> Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
>>> This revise it.
>>>
>>> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
>> The sh changes this depends on for the CPU subtypes are merged upstream
>> now, so this can go through either tree. As there is nothing really
>> netdev specific about this, I suppose the easiest is to just roll both of
>> these in to the sh tree.
> 
> Oh, nevermind, I see these were merged already through the net tree..
> 
I should have reported that these were taken in.
I will report it from the next time.

Best regards,
  Nobuhiro

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

* Re: [PATCH] sh_eth: Change handling of IRQ
@ 2009-03-31  0:58         ` Nobuhiro Iwamatsu
  0 siblings, 0 replies; 10+ messages in thread
From: Nobuhiro Iwamatsu @ 2009-03-31  0:58 UTC (permalink / raw)
  To: Paul Mundt, Nobuhiro Iwamatsu, netdev, Linux-sh

Paul Mundt wrote:
> On Tue, Mar 31, 2009 at 08:15:13AM +0900, Paul Mundt wrote:
>> On Tue, Mar 17, 2009 at 02:50:57PM +0900, Nobuhiro Iwamatsu wrote:
>>> Handling of IRQ of the SH7763/SH7764 CPU which sh_eth supported was
>>> changed.
>>> This revises it for this change.
>>>
>>> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
>> On Tue, Mar 17, 2009 at 02:52:23PM +0900, Nobuhiro Iwamatsu wrote:
>>> Address of SH_TSU_ADDR and ARSTR of SH7763 was wrong.
>>> This revise it.
>>>
>>> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
>> The sh changes this depends on for the CPU subtypes are merged upstream
>> now, so this can go through either tree. As there is nothing really
>> netdev specific about this, I suppose the easiest is to just roll both of
>> these in to the sh tree.
> 
> Oh, nevermind, I see these were merged already through the net tree..
> 
I should have reported that these were taken in.
I will report it from the next time.

Best regards,
  Nobuhiro

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

end of thread, other threads:[~2009-03-31  0:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-17  5:52 [PATCH] sh_eth: Fix mistake of the address of SH7763 Nobuhiro Iwamatsu
2009-03-17  5:52 ` Nobuhiro Iwamatsu
2009-03-17  5:50 ` [PATCH] sh_eth: Change handling of IRQ Nobuhiro Iwamatsu
2009-03-17  5:50   ` Nobuhiro Iwamatsu
2009-03-30 23:15   ` Paul Mundt
2009-03-30 23:15     ` Paul Mundt
2009-03-30 23:16     ` Paul Mundt
2009-03-30 23:16       ` Paul Mundt
2009-03-31  0:58       ` Nobuhiro Iwamatsu
2009-03-31  0:58         ` Nobuhiro Iwamatsu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.