On 09/18/2007 04:32 AM, Trent Piepho wrote:
You can see the version in Hg after your patch was applied, and it uses schedule_timeout()
Yes, as said, that was a mismatch between the 2.6.22.x I was looking at and the patch that removed the _interruptible() from a few months go already. Also explains some of the mis-communication with Krzysztof earlier...
I seem to have deleted the necessary unlock call before I sent the patch. One of the tests is inverted too. Here is a new version which fixes all that. The other problem you pointed at out in the current code about mistaken timeouts is fixed as well.
Yes, I agree with this, looking much better now. The removal of that last INIT checking loop _might_ cause a timing difference if earlier we just timed out in snd_ad1848_wait() but in that case, we're sol already anyway and who cares. Comment is good as well. Maybe s/should/could/ in:
+ * has in fact not begun. It should take 128 (no AC) or 384 (AC) cycles + * for ACI to drop. This gives a wait of at most 70 ms with a more + * typical value of 3-9 ms.
By the way, as to the cs4231 mirror image -- the CS4248 was the only chip that I didn't experience the autocalibration "(1)" timeout on using cs4231_lib which seems to indicate that for the CS423x chips, ACI never comes up at all when not auto-calibrating. Just for info, this same code handles that just fine.
I just now tested this on a CS4231A driven by ad1848_lib -- is working fine.
Acked-by: Rene Herman rene.herman@gmail.com
Rene.