- From: Frank Mori Hess <fmhess_at_users.sourceforge.net>
- Date: Fri, 22 Nov 2002 11:57:59 -0600
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday 22 November 2002 10:38 am, Rolf Mueller wrote: > > I notice that your recent changes (2002/11/19) in the DMA underrun > detection result in "DMA underrun" errors being triggered for all but > ridiculously low conversion frequencies (100 Hz or so). What typically > happens is that nbytes (from mite_bytes_read) is a bit larger than > devpriv->last_buf_write_count, whereas the latter is always 8192, the > former is something like 8212, 8216, 8248, 8252. However, with the > pre-2002/11/19 I do not see any hick-ups in the waveform that would > indicate a problem. Rolf, The problem is actually that the ao_waveform.c demo doesn't quite preload enough data before starting the output waveform. If you make it preload 16K instead of 8K the problem should go away. The underrun detection can generate false positives, which is less than ideal but preferable to it missing real underruns. To improve things would require some infrastructure changes. The underrun state would have to be checked when the user space program writes data to comedi, which would require that comedi.o be able to poll the driver on how many bytes it has currently read. That is basically what the poll() function subdevices can provide does already, except that we want a more passive version of poll() that doesn't prompt the driver to do additional transfers of data between the hardware and comedi (at least that is what it does for input). Maybe poll() could be split into a passive query (which would only be needed for dma situations), and a function that would actually cause data waiting in a hardware fifo to get dumped. > > It also appears to me that the ai-munging is not done correctly or > consistently, signed numbers seem to be treated as unsigned, this does > not seem to be a problem of the user application, because it occurs > with cmd and ktimetrace likewise. > The ai munging should be fixed in cvs now. I had completely broken it for 611x cards, and in general when a chanlist alternates between bipolar and unipolar ranges. - -- Frank -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE93nAp5vihyNWuA4URAg2yAJ9ag73NLAtOhUA6mVJCDWIiROgU/wCeOFYU 5QiNC4z6JmiIv/v8gGwlrpc= =j24e -----END PGP SIGNATURE-----
Received on 2002-11-22Z17:57:59