[U-Boot-Users] [PATCH 3/5][RESEND] CSB637 - fix dm9161 PHY interrupt mask

Anders Larsen alarsen at rea.de
Wed Aug 24 11:23:46 CEST 2005


Hi,

the patch below fixes a bug in the dm9161 interrupt masking;
a bit set /disables/ (masks) the interrupt.
Furthermore, the PHY is explicitly (re)connected when auto-
negotiation is started.

Cheers
 Anders

Signed-off-by: Anders Larsen <alarsen at rea.de>

CHANGELOG:
  Patch by Anders Larsen <alarsen at rea.de>, 2005-04-29
  Mask DM9161 interrupts correctly

---

 cpu/arm920t/at91rm9200/dm9161.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/cpu/arm920t/at91rm9200/dm9161.c b/cpu/arm920t/at91rm9200/dm9161.c
--- a/cpu/arm920t/at91rm9200/dm9161.c
+++ b/cpu/arm920t/at91rm9200/dm9161.c
@@ -138,9 +138,9 @@ UCHAR dm9161_InitPhy (AT91PS_EMAC p_mac)
 
 	/* Disable PHY Interrupts */
 	at91rm9200_EmacReadPhy (p_mac, DM9161_MDINTR, &IntValue);
-	/* clear FDX, SPD, Link, INTR masks */
-	IntValue &= ~(DM9161_FDX_MASK | DM9161_SPD_MASK |
-		      DM9161_LINK_MASK | DM9161_INTR_MASK);
+	/* set FDX, SPD, Link, INTR masks */
+	IntValue |= (DM9161_FDX_MASK | DM9161_SPD_MASK |
+		     DM9161_LINK_MASK | DM9161_INTR_MASK);
 	at91rm9200_EmacWritePhy (p_mac, DM9161_MDINTR, &IntValue);
 	at91rm9200_EmacDisableMDIO (p_mac);
 
@@ -190,6 +190,7 @@ UCHAR dm9161_AutoNegotiate (AT91PS_EMAC 
 		return FALSE;
 	/* Restart Auto_negotiation  */
 	value |= DM9161_RESTART_AUTONEG;
+	value &= ~DM9161_ISOLATE;
 	if (!at91rm9200_EmacWritePhy (p_mac, DM9161_BMCR, &value))
 		return FALSE;
 






More information about the U-Boot mailing list