Date: Mon, 21 Aug 1995 09:15:39 -0700 (PDT) From: Julian Elischer <julian@ref.tfs.com> To: luigi@labinfo.iet.unipi.it (Luigi Rizzo) Cc: freebsd-hackers@freebsd.org Subject: Re: How to abort a DMA transfer ? Message-ID: <199508211615.JAA23757@ref.tfs.com> In-Reply-To: <199508201701.TAA12803@labinfo.iet.unipi.it> from "Luigi Rizzo" at Aug 20, 95 07:01:00 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > How (within a device driver) do I abort a DMA transfer which has > been started but has not completed yet ? I am having this problem > in the driver for a hand-scanner (the scanner does some read ahead; > meanwhile, a user might close the device and we want to abort the > transfer and free the buffer). I am surprised I haven't seen (or > understood!) anything like this in existing drivers, not even in > the floppy driver! most drivers assume that if a DMA starts it will complete.. in fact I know of no mechanism to stop a DMA from completing even if the devices and memory doesn't respond, the DMA will complete, because of the marvelous PC way that DMA is implimented, if something fails to respond with a WAIT-STATE, it's assumed to have completed. So a frozen device is the QUICKEST to respond :( > > Thanks > Luigi > ==================================================================== > Luigi Rizzo Dip. di Ingegneria dell'Informazione > email: luigi@iet.unipi.it Universita' di Pisa > tel: +39-50-568533 via Diotisalvi 2, 56126 PISA (Italy) > fax: +39-50-568522 http://www.iet.unipi.it/~luigi/ > ==================================================================== >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508211615.JAA23757>