Date: Tue, 19 Aug 1997 14:00:47 +1000 From: Stephen McKay <syssgm@dtir.qld.gov.au> To: freebsd-hackers@freebsd.org Cc: syssgm@dtir.qld.gov.au Subject: Re: isa_dmastatus Message-ID: <199708190400.OAA01354@ogre.dtir.qld.gov.au> In-Reply-To: <199708190127.KAA15154@genesis.atrad.adelaide.edu.au> from Michael Smith at "Tue, 19 Aug 1997 01:27:59 %2B0000" References: <199708190127.KAA15154@genesis.atrad.adelaide.edu.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, 19th August 1997, Michael Smith wrote: >Amancio Hasty stands accused of saying: >> So if we wish to support auto dma and use the existing dma interface >> in isa.c then I suggest that we add a simple check in the isa >> dma routine to bypass the busy flag check when we are using >> auto dma. > >It sounds like you're just adding hairs to an existing wart. This may >well be the most expedient way to go in the short term though. To be more specific, this seems like the way to go for 2.2.5. For -current, we can be more flamboyant. >It sounds to me as though there is a need for a couple of different >levels of access to the DMA support. At the bottom, we need some >primitives : > >isa_dmaacquire - obtain a DMA channel >isa_dmarelease - release a DMA channel >isa_dmastart - start a DMA transfer >isa_dmastop - stop a DMA transfer >isa_dmastatus - query DMA status Looks like a good start. Can we please have more underscores? Like isa_dma_status? These look lopsided. >which provide hands-on access to the DMA hardware. Above these, it seems >that DMA consumers would benefit from > >isa_dmatransact - start one-shot DMA transaction >isa_dmatransstatus - query/complete DMA transaction > >where the first would take assorted parameters (address, port, direction, >channel etc.), and then use the primitives to obtain the channel and start >the transaction, and the second would allow for polling the status of a >DMA transaction (instead of sleeping for it to finish, etg.). Since the DMA channels are not shareable (please correct me if wrong), there seems no point in combining acquiring a channel with any other operation. Then there's not much point in having isa_dma_transact. I think we should continue directly using routines very much like we have now, but clear up the difficulties with concepts like bounce buffering and auto DMA by adding a few more routines, or at least some more flags. Stephen.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708190400.OAA01354>