diff --git a/src/drivers/net/davicom.c b/src/drivers/net/davicom.c index 3a470c83..a859cd80 100644 --- a/src/drivers/net/davicom.c +++ b/src/drivers/net/davicom.c @@ -617,7 +617,7 @@ static int davicom_poll(struct nic *nic, int retrieve) /* eth_disable - Disable the interface */ /*********************************************************************/ static void davicom_disable ( struct nic *nic, struct pci_device *pci __unused ) { - nic_disable ( nic ); + whereami("davicom_disable\n"); davicom_reset(nic); diff --git a/src/drivers/net/mtd80x.c b/src/drivers/net/mtd80x.c index 925da9bf..c3696534 100644 --- a/src/drivers/net/mtd80x.c +++ b/src/drivers/net/mtd80x.c @@ -636,12 +636,13 @@ static void mtd_transmit( DISABLE - Turn off ethernet interface ***************************************************************************/ static void mtd_disable ( struct nic *nic, struct pci_device *pci __unused ) { - nic_disable ( nic ); - /* put the card in its initial state */ + /* Disable Tx Rx*/ outl( mtdx.crvalue & (~TxEnable) & (~RxEnable), mtdx.ioaddr + TCRRCR); + /* Reset the chip to erase previous misconfiguration. */ mtd_reset(nic); + DBG(("DISABLE\n")); } diff --git a/src/drivers/net/natsemi.c b/src/drivers/net/natsemi.c index b40fb131..e80935bd 100644 --- a/src/drivers/net/natsemi.c +++ b/src/drivers/net/natsemi.c @@ -723,8 +723,7 @@ natsemi_poll(struct nic *nic, int retrieve) static void natsemi_disable ( struct nic *nic, struct pci_device *pci __unused ) { - nic_disable ( nic ); - /* merge reset and disable */ + natsemi_init(nic); /* Disable interrupts using the mask. */ diff --git a/src/drivers/net/sis900.c b/src/drivers/net/sis900.c index 8040ddd5..804d5f99 100644 --- a/src/drivers/net/sis900.c +++ b/src/drivers/net/sis900.c @@ -1228,8 +1228,7 @@ sis900_poll(struct nic *nic, int retrieve) static void sis900_disable ( struct nic *nic, struct pci_device *pci __unused ) { - nic_disable ( nic ); - /* merge reset and disable */ + sis900_init(nic); /* Disable interrupts by clearing the interrupt mask. */ diff --git a/src/drivers/net/smc9000.c b/src/drivers/net/smc9000.c index 43f04f06..9d3542cb 100644 --- a/src/drivers/net/smc9000.c +++ b/src/drivers/net/smc9000.c @@ -792,7 +792,7 @@ static int smc9000_poll(struct nic *nic, int retrieve) } static void smc9000_disable ( struct nic *nic, struct isa_device *isa __unused ) { - nic_disable ( nic ); + smc_reset(nic->ioaddr); /* no more interrupts for me */ diff --git a/src/drivers/net/tulip.c b/src/drivers/net/tulip.c index c81b6827..15067e90 100644 --- a/src/drivers/net/tulip.c +++ b/src/drivers/net/tulip.c @@ -1185,7 +1185,7 @@ static int tulip_poll(struct nic *nic, int retrieve) /* eth_disable - Disable the interface */ /*********************************************************************/ static void tulip_disable ( struct nic *nic, struct pci_device *pci __unused ) { -nic_disable ( nic ); + #ifdef TULIP_DEBUG_WHERE whereami("tulip_disable\n"); #endif diff --git a/src/drivers/net/via-rhine.c b/src/drivers/net/via-rhine.c index b72c13bb..26642237 100644 --- a/src/drivers/net/via-rhine.c +++ b/src/drivers/net/via-rhine.c @@ -1164,7 +1164,7 @@ rhine_probe1 (struct nic *nic, struct pci_device *pci, int ioaddr, int chip_id, static void rhine_disable ( struct nic *nic, struct pci_device *pci __unused ) { - nic_disable ( nic ); + struct rhine_private *tp = (struct rhine_private *) nic->priv_data; int ioaddr = tp->ioaddr; diff --git a/src/drivers/net/w89c840.c b/src/drivers/net/w89c840.c index 97d8d158..bff37923 100644 --- a/src/drivers/net/w89c840.c +++ b/src/drivers/net/w89c840.c @@ -576,7 +576,7 @@ static void w89c840_transmit( w89c840_disable - Turn off ethernet interface ***************************************************************************/ static void w89c840_disable ( struct nic *nic, struct pci_device *pci __unused ) { - nic_disable ( nic ); + /* merge reset and disable */ w89c840_reset(nic);