From d68963cafc7fc14ddfb121613f58b18813bbb508 Mon Sep 17 00:00:00 2001 From: ambrisko Date: Thu, 17 Jun 2004 02:19:11 +0000 Subject: While setting up a transmit packet disable interupts on the card then re-enable them after we are done setting up the packet. This seems to fix the MPI350 newer firmware hangs. --- sys/dev/an/if_an.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sys/dev/an/if_an.c') diff --git a/sys/dev/an/if_an.c b/sys/dev/an/if_an.c index e1623ec..fb08f70 100644 --- a/sys/dev/an/if_an.c +++ b/sys/dev/an/if_an.c @@ -2725,6 +2725,9 @@ an_start(ifp) ifp->if_timer = 5; } } else { /* MPI-350 */ + /* Disable interrupts. */ + CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), 0); + while (sc->an_rdata.an_tx_empty || idx != sc->an_rdata.an_tx_cons) { IF_DEQUEUE(&ifp->if_snd, m0); @@ -2798,6 +2801,9 @@ an_start(ifp) */ ifp->if_timer = 5; } + + /* Re-enable interrupts. */ + CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), AN_INTRS(sc->mpi350)); } if (m0 != NULL) -- cgit v1.1