소스 검색

net: Fix problem with 405EZ ethernet interrupt

On 405EZ the RX-/TX-interrupts are coalesced into one IRQ bit in the
UIC. We need to acknowledge the RX-/TX-interrupts in the
SDR0_ICINTSTAT reg as well.

This problem was introduced with commit
d1631fe1 [ppc4xx: Consolidate PPC4xx UIC defines]

Signed-off-by: James Clough <james@rtetc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
James Clough 15 년 전
부모
커밋
c0b46d8ead
1개의 변경된 파일9개의 추가작업 그리고 0개의 파일을 삭제
  1. 9 0
      drivers/net/4xx_enet.c

+ 9 - 0
drivers/net/4xx_enet.c

@@ -1717,6 +1717,15 @@ int enetInt (struct eth_device *dev)
 				rc = 0;
 				rc = 0;
 			}
 			}
 		}
 		}
+#if defined(CONFIG_405EZ)
+		/*
+		 * On 405EZ the RX-/TX-interrupts are coalesced into
+		 * one IRQ bit in the UIC. We need to acknowledge the
+		 * RX-/TX-interrupts in the SDR0_ICINTSTAT reg as well.
+		 */
+		mtsdr(SDR0_ICINTSTAT,
+		      SDR_ICRX_STAT | SDR_ICTX0_STAT | SDR_ICTX1_STAT);
+#endif  /* defined(CONFIG_405EZ) */
 	} while (serviced);
 	} while (serviced);
 
 
 	return (rc);
 	return (rc);