[alsa-devel] [PATCH] ad1838/cs4231 -- fix MCE timeout upon initial load

Rene Herman rene.herman at gmail.com
Tue Sep 18 08:50:59 CEST 2007

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 at gmail.com>


More information about the Alsa-devel mailing list