aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/skge.c18
-rw-r--r--drivers/net/skge.h7
2 files changed, 23 insertions, 2 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 290d6aa92383..9f24714260be 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -2731,6 +2731,24 @@ static irqreturn_t skge_intr(int irq, void *dev_id, struct pt_regs *regs)
2731 if (status & IS_XA2_F) 2731 if (status & IS_XA2_F)
2732 skge_tx_intr(hw->dev[1]); 2732 skge_tx_intr(hw->dev[1]);
2733 2733
2734 if (status & IS_PA_TO_RX1) {
2735 struct skge_port *skge = netdev_priv(hw->dev[0]);
2736 ++skge->net_stats.rx_over_errors;
2737 skge_write16(hw, B3_PA_CTRL, PA_CLR_TO_RX1);
2738 }
2739
2740 if (status & IS_PA_TO_RX2) {
2741 struct skge_port *skge = netdev_priv(hw->dev[1]);
2742 ++skge->net_stats.rx_over_errors;
2743 skge_write16(hw, B3_PA_CTRL, PA_CLR_TO_RX2);
2744 }
2745
2746 if (status & IS_PA_TO_TX1)
2747 skge_write16(hw, B3_PA_CTRL, PA_CLR_TO_TX1);
2748
2749 if (status & IS_PA_TO_TX2)
2750 skge_write16(hw, B3_PA_CTRL, PA_CLR_TO_TX2);
2751
2734 if (status & IS_MAC1) 2752 if (status & IS_MAC1)
2735 skge_mac_intr(hw, 0); 2753 skge_mac_intr(hw, 0);
2736 2754
diff --git a/drivers/net/skge.h b/drivers/net/skge.h
index ba6dfd2f01d8..37323cd29e7e 100644
--- a/drivers/net/skge.h
+++ b/drivers/net/skge.h
@@ -203,8 +203,11 @@ enum {
203 IS_XA2_F = 1<<1, /* Q_XA2 End of Frame */ 203 IS_XA2_F = 1<<1, /* Q_XA2 End of Frame */
204 IS_XA2_C = 1<<0, /* Q_XA2 Encoding Error */ 204 IS_XA2_C = 1<<0, /* Q_XA2 Encoding Error */
205 205
206 IS_PORT_1 = IS_XA1_F| IS_R1_F| IS_MAC1, 206 IS_TO_PORT1 = IS_PA_TO_RX1 | IS_PA_TO_TX1,
207 IS_PORT_2 = IS_XA2_F| IS_R2_F| IS_MAC2, 207 IS_TO_PORT2 = IS_PA_TO_RX2 | IS_PA_TO_TX2,
208
209 IS_PORT_1 = IS_XA1_F| IS_R1_F | IS_TO_PORT1 | IS_MAC1,
210 IS_PORT_2 = IS_XA2_F| IS_R2_F | IS_TO_PORT2 | IS_MAC2,
208}; 211};
209 212
210 213