mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-19 02:29:40 +00:00
Some revisions of the aic7880 have a problem where, if the
data fifo is full, but the PCI input latch is not empty, HDMAEN cannot be cleared. The fix used here is to attempt to drain the data fifo until there is space for the input latch to drain and HDMAEN de-asserts. This is a 1 instruction fix, so it should have no performance impact.
This commit is contained in:
parent
14c35d6ca0
commit
b66655cf37
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=37223
@ -35,7 +35,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: aic7xxx.seq,v 1.75 1997/08/13 17:02:28 gibbs Exp $
|
||||
* $Id: aic7xxx.seq,v 1.76 1997/09/27 19:37:27 gibbs Exp $
|
||||
*/
|
||||
|
||||
#include <dev/aic7xxx/aic7xxx.reg>
|
||||
@ -944,7 +944,15 @@ dma_fifoempty:
|
||||
dma_dmadone:
|
||||
and DFCNTRL, ~(SCSIEN|SDMAEN|HDMAEN);
|
||||
dma_halt:
|
||||
test DFCNTRL, (SCSIEN|SDMAEN|HDMAEN) jnz dma_halt;
|
||||
/*
|
||||
* Some revisions of the aic7880 have a problem where, if the
|
||||
* data fifo is full, but the PCI input latch is not empty,
|
||||
* HDMAEN cannot be cleared. The fix used here is to attempt
|
||||
* to drain the data fifo until there is space for the input
|
||||
* latch to drain and HDMAEN de-asserts.
|
||||
*/
|
||||
mov NONE, DFDAT;
|
||||
test DFCNTRL, HDMAEN jnz dma_halt;
|
||||
return:
|
||||
ret;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user