ASIX AX88796 is an NE2000 compatible ethernet chip, but doesn't seem to

have "remote DMA complete bit" is ISR.  So, don't wait for ISR.RDC bit
after writing a packet.
This commit is contained in:
bsh 2005-02-26 10:29:20 +00:00
parent b42e2b64d1
commit 987bbd3089
2 changed files with 13 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: dp8390var.h,v 1.25 2005/02/04 02:10:36 perry Exp $ */
/* $NetBSD: dp8390var.h,v 1.26 2005/02/26 10:29:20 bsh Exp $ */
/*
* Device driver for National Semiconductor DS8390/WD83C690 based ethernet
@ -142,6 +142,12 @@ struct dp8390_softc {
#define DP8390_ATTACHED 0x0040 /* attach has succeeded */
/*
* ASIX AX88796 doesn't have remote DMA conmplete bit in ISR, so don't
* check ISR.RDC
*/
#define DP8390_NO_REMOTE_DMA_COMPLETE 0x0080
/*
* NIC register access macros
*/

View File

@ -1,4 +1,4 @@
/* $NetBSD: ne2000.c,v 1.45 2005/02/04 02:10:36 perry Exp $ */
/* $NetBSD: ne2000.c,v 1.46 2005/02/26 10:29:20 bsh Exp $ */
/*-
* Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: ne2000.c,v 1.45 2005/02/04 02:10:36 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: ne2000.c,v 1.46 2005/02/26 10:29:20 bsh Exp $");
#include "opt_ipkdb.h"
@ -624,6 +624,10 @@ ne2000_write_mbuf(sc, m, buf)
}
NIC_BARRIER(nict, nich);
/* AX88796 doesn't seem to have remote DMA complete */
if (sc->sc_flags & DP8390_NO_REMOTE_DMA_COMPLETE)
return(savelen);
/*
* Wait for remote DMA to complete. This is necessary because on the
* transmit side, data is handled internally by the NIC in bursts, and