Mercurial > ecos
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); }
