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>