Subject: continuous DMA transfers
To: None <port-i386@NetBSD.ORG>
From: Ken Hornstein <kenh@entropic.com>
List: port-i386
Date: 01/04/1995 14:16:13
(Even though this deals with the kernel, it was i386-specific, so I felt it
should go to port-i386.  If this should go elsewhere, please let me know).

The Intel 8237 DMA controller has a feature where you can have it reload the
last set of DMA parameters when a transfer is complete.  This is from memory,
as my documentation is at home (I think this is called "auto init").

I need this feature for something I'm working on (getting record working
correctly on the GUS driver).  It looks pretty straightforward to implement -
just frob the right bit at the right time, no sweat.  The thing I'm wondering
about is the right way to pass an flag for this to isa_dmastart().  The flags
argument looks like it would be perfect to hold this, except that it looks like
it takes all the various mbuf flags and ignores all but B_READ and B_WRITE.
I'm afraid if I just pick one of the buffer flags, the auto init mode will get
set sometime when it wasn't meant to, which could cause some weird problems.

I guess what I'm asking is: What do people think is the "Right Thing" to do?
I definately don't have a problem with doing this myself, but I'd like to
in a way that won't raise ay objections down the road if (knock on wood) this
eventually gets integrated into the NetBSD tree.

--Ken