On Mon, Apr 19, 2010 at 9:09 AM, Liam Girdwood lrg@slimlogic.co.uk wrote:
I've CC'ed folks on this mail who have either contributed or maintain ASoC architecture code. Please have a look at your architecture and test if you can. I only have access to OMAP and pxa3xx hardware and as such have only tested the changes on these two architectures only. I'd appreciated anyone else testing on the other architectures too.
A few things:
First, you probably need to add this:
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 38d94d7..c2df201 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1364,8 +1364,10 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card) soc_bind_dai_link(card, i);
/* bind completed ? */ - if (card->num_rtd != card->num_links) + if (card->num_rtd != card->num_links) { + mutex_unlock(&card->mutex); return; + }
/* card bind complete so register a sound card */ ret = snd_card_create(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, @@ -1373,6 +1375,7 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card) if (ret < 0) { printk(KERN_ERR "asoc: can't create sound card for card %s\n", card->name); + mutex_unlock(&card->mutex); return; } card->snd_card->dev = card->dev;
Secondly, I'm seeing this when I turn on debugging:
Cirrus Logic CS4270 ALSA SoC Codec Driver cs4270 0-004f: found device at i2c address 4F cs4270 0-004f: hardware revision 3 cs4270 0-004f: codec register CS4270 79 cs4270 0-004f: dai register cs4270 0 Registered DAI 'cs4270.0' Registered codec 'CS4270.79' ...
soc-audio soc-audio: CODEC CS4270 not registered
Does this mean that my fabric driver should be looking for "CS4270.79" instead of just "CS4270"?