At Tue, 18 Nov 2003 21:16:44 -0800 (PST),
Itay Ben-Yaacov wrote:
> 
> 
> As I reported earlier, intel8x0 fails to resume properly on my Dell I8200 with alsa 
> >= 0.9.7
> 
> This is due to the fact that snd_intel8x0_ich_chip_init() no longer waits that extra 
> 1/4 second it
> used to in 0.9.6 and ealier.  It seems to believe that all the codecs are ready, but 
> apparently
> they are not.
> 
> I tried to look into this a bit further and found that:
> In intel8x0_resume() there are two ac97 codecs actually resumed on my machine (I 
> suppose that
> these are precisely the primary and secondary ones that snd_intel8x0_ich_chip_init() 
> has waited
> for already), indexed 0 and 1.
> 
> When resuming ac97 no. 0, in snd_ac97_resume() there are quite a few registers that 
> do not get set
> properly.  For example, here's a bit of my debugging messages: 
> 
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 2: c0c 8000
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 6: 801f 8000
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register a: 801e 0
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register c: 801f 8008
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register e: 801f 8008
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 10: 9f1f 8808
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 12: 9f1f 8808
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 14: 9f1f 8808
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 16: 9f1f 8808
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 18: 1010 8808
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 1c: 0 8000
> Nov 18 23:58:24 pisica kernel: PEZZ: bad register 1e: 0 8000
> 
> The first value is the one read from the register after writing into it, the second 
> is what was
> written.

hmm, i guess in reverse, the left is the value written and the right
is the value read ?

> 
> On the other hand, if I just add a hard-coded 1/4 second wait before 
> snd_ac97_resume(), emulating
> the good old days, I only get:
> 
> Nov 19 00:00:26 pisica kernel: PEZZ: bad register 2a: 9 209
> 
> And the sound resumes fine.
> 
> The other ac97, indexed 1, seems to be indifferent to whether I resume it with or 
> without such a
> delay.
> 
> So I believe the problem is that codec no. 0 is not waited for properly, even though 
> it reports to
> be ready... Could that be?

yes, it's likely.
could you try the attached patch?
it's to cvs but of course applicable to the new 1.0.0-pre1, too.

also, i'd like to ask you to test 1.0.0-pre1, because we have clean up
the handling of multiple codecs of intel8x0 driver, but it's not
tested well.  please check whether it works for you.


thanks,

Takashi

Attachment: ad18xx-resume-fix.dif
Description: Binary data

Reply via email to