changeset 1726:ccf115a781cc

Improve start/stop functions
author gthomas
date Tue, 24 Aug 2004 13:16:18 +0000
parents 8f7aa40767cb
children e31d381b2dd1
files packages/devs/eth/ns/dp83816/current/ChangeLog packages/devs/eth/ns/dp83816/current/src/if_dp83816.c
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/devs/eth/ns/dp83816/current/ChangeLog
+++ b/packages/devs/eth/ns/dp83816/current/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-24  Gary Thomas  <gary@mlbassoc.com>
+
+	* src/if_dp83816.c: Enable start/stop functions (device was always
+	enabled once configured before)
+
 2003-10-14  Gary Thomas  <gary@mlbassoc.com>
 
 	* src/if_dp83816.c (dp83816_poll): Try to better detect condition
--- a/packages/devs/eth/ns/dp83816/current/src/if_dp83816.c
+++ b/packages/devs/eth/ns/dp83816/current/src/if_dp83816.c
@@ -153,8 +153,8 @@ dp83816_reset(dp83816_priv_data_t *dp)
     DP_OUT(dp->base, DP_RFCR, _RFCR_RFEN | _RFCR_AAB | _RFCR_APM);
     // Set up interrupts
     DP_IN(dp->base, DP_ISR, stat);  // Clear any current interrupts
-    DP_OUT(dp->base, DP_IMR, 0xFFFFFFFF);  // Enable them all!
-    DP_OUT(dp->base, DP_IER, 1);
+    DP_OUT(dp->base, DP_IMR, 0x00000000);  // Disable them all!
+    DP_OUT(dp->base, DP_IER, 0);
     return true;
 }
 
@@ -222,6 +222,8 @@ dp83816_stop(struct eth_drv_sc *sc)
 {
     dp83816_priv_data_t *dp = (dp83816_priv_data_t *)sc->driver_private;
 
+    DP_OUT(dp->base, DP_IMR, 0x00000000);  // Disable interrupts
+    DP_OUT(dp->base, DP_IER, 0);
     DP_OUT(dp->base, DP_CR, _CR_RXD | _CR_TXD);
 }
 
@@ -236,6 +238,8 @@ dp83816_start(struct eth_drv_sc *sc, uns
 {
     dp83816_priv_data_t *dp = (dp83816_priv_data_t *)sc->driver_private;
 
+    DP_OUT(dp->base, DP_IMR, 0xFFFFFFFF);  // Enable interrupts
+    DP_OUT(dp->base, DP_IER, 1);
     DP_OUT(dp->base, DP_CR, _CR_RXE | _CR_TXE);
 }