* [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.