[alsa-devel] ASoC - Support for multiple components
Timur Tabi
timur at freescale.com
Wed Apr 21 23:07:00 CEST 2010
On Mon, Apr 19, 2010 at 9:09 AM, Liam Girdwood <lrg at 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"?
--
Timur Tabi
Linux kernel developer at Freescale
More information about the Alsa-devel
mailing list