At Mon, 30 Jun 2008 22:20:17 +0900, Kan-I Jyo wrote:
Dear Takashi,
Thank you for your kind help all the time.
2008/6/25 Takashi Iwai tiwai@suse.de:
The hardware sets the corresponding bits to this register when the codec is found on the slot. So, this seems really like a hardware problem.
For all my try these days have all led to a non-working audio device, I can not help thinking the high possibility of a hardware problem. Just want to make sure that I have made good efforts before blaming on hardware side.
Or, if it's a timing issue, you can try to add some delays in azx_reset()...
Considering this kind of issue, I have increased the "msleep" in azx_reset() from 1 to 1000. With no luck, stiil there the "no codecs found" message.
Moreover, I have changed the "msleep" to "ssleep" with a even larger value. As you may have expected, no recognization of the ADi 1986A codec at all.
Then it implies that the hardware doesn't set this bit. It's supposed to be mandatory, and this probing mechanism works well for other hundreds of devices. Thus I think something still wrong in your device setup.
If you know the slot number of the codec beforehand, you can modify to force to set chip->codec_mask in azx_reset(). Then the driver will continue to probe the codec.
Takashi