diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:37:40 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:37:40 -0400 |
| commit | ec31b2124158f60c515ed84bd5e40db1a883c7b6 (patch) | |
| tree | 05de4bebce63cf1eaf25d24c9de4b59e5aa7e100 /drivers/net | |
| parent | ca72cddfcb6afd75a808da4f027325fa63a1b856 (diff) | |
| parent | eabd90944b3a00766e84da3d117ea0f3e0a3b1a3 (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.c | 23 |
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 | ||
