- From: Michael Castelle <mcc_at_uchicago.edu>
- Date: Tue, 18 Jun 2002 16:25:40 -0500 (CDT)
Hello, I've been trying to fix a problem with the ni_pcimio driver in which the 32-bit MITE register read by mite_bytes_transferred() (naturally, apparently) overflows, which causes the count variable in mite_handle_a_linkc() to become negative. The calling user process' read requests then hang, which means that the driver is only able to acquire up to 2^32 bytes worth of data at a time. (Actually, right now mite_bytes_transferred() returns a signed int, but changing it to an unsigned int only doubles the amount of possible recording time, and doesn't fix the problem.) Has anyone else performed successful long-term data acquisition with any of the comedi-supported cards? ds sent me a mail that implied that it once worked correctly, but I don't see any evidence in the code implying that the overflow was ever detected/handled. At any rate, I've spent some time trying to figure out the appropriate behavior -- what fields of the async struct to change, etc. -- but haven't been able to come up with a decent fix. Does anyone have any suggestions on places to look, perhaps, in other drivers that handle this sort of problem? Any other tips/help would be appreciated, as I'd like to avoid simply having a user-level cron job explicitly stopping and starting acquisition every 18 hours or so. mc
Received on 2002-06-18Z20:25:40