Hi Takashi. This reworks snd_ad1848_probe(), making for IMO significantly more straightforward reading. The original had a somewhat odd try-loop where it not only waited for the codec to come out of init but also retried a failed basic detect which seems to not make sense. Except for that, the detection logic should be unchanged. I am by the way rather unsure what it is that the spin_lock is trying to protect us from here. What's the error scenario if we just not take it? We aren't live yet... Next step is folding this into snd_wss_probe() directly. Rene.