Turn on D_DSBL_WRINVAL on `ledma'.

This commit is contained in:
pk 1997-09-09 20:54:48 +00:00
parent b74cbfe5ed
commit 0bd088474a

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_le.c,v 1.49 1997/07/07 16:28:44 pk Exp $ */ /* $NetBSD: if_le.c,v 1.50 1997/09/09 20:54:48 pk Exp $ */
/*- /*-
* Copyright (c) 1997 Jason R. Thorpe. All rights reserved. * Copyright (c) 1997 Jason R. Thorpe. All rights reserved.
@ -91,9 +91,19 @@ myleintr(arg)
void *arg; void *arg;
{ {
register struct le_softc *lesc = arg; register struct le_softc *lesc = arg;
static int dodrain=0;
if (lesc->sc_dma->sc_regs->csr & D_ERR_PEND) if (lesc->sc_dma->sc_regs->csr & D_ERR_PEND) {
dodrain = 1;
return ledmaintr(lesc->sc_dma); return ledmaintr(lesc->sc_dma);
}
if (dodrain) { /* XXX - is this necessary with D_DSBL_WRINVAL on? */
#define E_DRAIN 0x400 /* XXX: fix dmareg.h */
int i = 10;
while (i-- > 0 && (lesc->sc_dma->sc_regs->csr & D_DRAINING))
delay(1);
}
return (am7990_intr(arg)); return (am7990_intr(arg));
} }
@ -252,6 +262,9 @@ lehwreset(sc)
DMA_RESET(lesc->sc_dma); DMA_RESET(lesc->sc_dma);
lesc->sc_dma->sc_regs->en_bar = lesc->sc_laddr & 0xff000000; lesc->sc_dma->sc_regs->en_bar = lesc->sc_laddr & 0xff000000;
DMA_ENINTR(lesc->sc_dma); DMA_ENINTR(lesc->sc_dma);
#define D_DSBL_WRINVAL D_DSBL_SCSI_DRN /* XXX: fix dmareg.h */
/* Disable E-cache invalidates on chip writes */
lesc->sc_dma->sc_regs->csr |= D_DSBL_WRINVAL;
} }
#endif #endif
} }