Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Apr 1997 09:56:28 +0200 (MET DST)
From:      Luigi Rizzo <luigi@labinfo.iet.unipi.it>
To:        hackers@freebsd.org
Subject:   DMA overruns ?
Message-ID:  <199704280756.JAA29907@labinfo.iet.unipi.it>

next in thread | raw e-mail | index | archive | help
Hi,

for some unkonwn reason, my "asc" driver for a hand scanner occasionally
loses some byte when transferring data from a color scanhead.

The device is an ISA device, uses a 8-bit DMA channel, and probably
does not have much buffering. Data are saved one scanline at a time,
corresponding to about 2500 bytes/line, and the overruns are rare (say
1 lost byte every 20-30 lines on average when I save to disk).

The overruns seem to occur almost independently from the speed the head
is moving (provided it is not too fast...), both on a 486/66 and on a
P5/133, even when saving to a mfs partition (and I checked, the system
was not paging at the moment). The driver under Windows 3.1 does
not seem to have this problem.

Now I am wondering: is it possible that there is some long,
uninterruptible operation which makes the bus unavailable for enough
time to cause the overrun ? Although I am prepared to try toggling
random bits in the driver (the controller chip is undocumented :(
) to see if the problem goes away, I'd like to understand what
could be the problem.

	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?199704280756.JAA29907>