aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 11:37:40 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 11:37:40 -0400
commitec31b2124158f60c515ed84bd5e40db1a883c7b6 (patch)
tree05de4bebce63cf1eaf25d24c9de4b59e5aa7e100 /drivers/net
parentca72cddfcb6afd75a808da4f027325fa63a1b856 (diff)
parenteabd90944b3a00766e84da3d117ea0f3e0a3b1a3 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix crashkernel= handling when no crashkernel= specified [POWERPC] Make emergency stack safe for current_thread_info() use [POWERPC] spufs: add .gitignore for spu_save_dump.h & spu_restore_dump.h [POWERPC] spufs: trace spu_acquire_saved events [POWERPC] spufs: fix marker name for find_victim [POWERPC] spufs: add marker for destroy_spu_context [POWERPC] spufs: add sputrace marker parameter names [POWERPC] spufs: add context switch notification log [POWERPC] mpc5200: defconfigs for CM5200, Lite5200B, Motion-PRO and TQM5200 [POWERPC] mpc5200: Switch mpc5200 dts files to dts-v1 format [POWERPC] mpc5200: Fix FEC error handling on FIFO errors [POWERPC] mpc5200: add Phytec pcm030 board support [POWERPC] mpc5200: add gpiolib support for mpc5200 [POWERPC] mpc5200: add interrupt type function [POWERPC] mpc5200: Fix unterminated of_device_id table
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/fec_mpc52xx.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index e5e6352556fa..d21b7ab64bd1 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -491,20 +491,23 @@ static irqreturn_t mpc52xx_fec_interrupt(int irq, void *dev_id)
491 491
492 out_be32(&fec->ievent, ievent); /* clear pending events */ 492 out_be32(&fec->ievent, ievent); /* clear pending events */
493 493
494 if (ievent & ~(FEC_IEVENT_RFIFO_ERROR | FEC_IEVENT_XFIFO_ERROR)) { 494 /* on fifo error, soft-reset fec */
495 if (ievent & ~FEC_IEVENT_TFINT) 495 if (ievent & (FEC_IEVENT_RFIFO_ERROR | FEC_IEVENT_XFIFO_ERROR)) {
496 dev_dbg(&dev->dev, "ievent: %08x\n", ievent); 496
497 if (net_ratelimit() && (ievent & FEC_IEVENT_RFIFO_ERROR))
498 dev_warn(&dev->dev, "FEC_IEVENT_RFIFO_ERROR\n");
499 if (net_ratelimit() && (ievent & FEC_IEVENT_XFIFO_ERROR))
500 dev_warn(&dev->dev, "FEC_IEVENT_XFIFO_ERROR\n");
501
502 mpc52xx_fec_reset(dev);
503
504 netif_wake_queue(dev);
497 return IRQ_HANDLED; 505 return IRQ_HANDLED;
498 } 506 }
499 507
500 if (net_ratelimit() && (ievent & FEC_IEVENT_RFIFO_ERROR)) 508 if (ievent & ~FEC_IEVENT_TFINT)
501 dev_warn(&dev->dev, "FEC_IEVENT_RFIFO_ERROR\n"); 509 dev_dbg(&dev->dev, "ievent: %08x\n", ievent);
502 if (net_ratelimit() && (ievent & FEC_IEVENT_XFIFO_ERROR))
503 dev_warn(&dev->dev, "FEC_IEVENT_XFIFO_ERROR\n");
504 510
505 mpc52xx_fec_reset(dev);
506
507 netif_wake_queue(dev);
508 return IRQ_HANDLED; 511 return IRQ_HANDLED;
509} 512}
510 513