]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
ASoC: don't flip master of DT-instantiated DAI links
authorStephen Warren <swarren@nvidia.com>
Mon, 14 May 2012 20:47:22 +0000 (14:47 -0600)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 16 May 2012 08:44:18 +0000 (09:44 +0100)
Commit 4924082 "ASoC: core: Flip master for CODECs in the CPU slot of a
CODEC<->CODEC link" added code that was conditional on there being no
PCM/DMA driver for the link. However, it failed to cover the case where
the link was instantiated from device tree, and hence was specified by
DT node rather than name.

This prevents the following error on Toshiba AC100:
aplay: pcm_write:1603: write error: Input/output error

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-core.c

index 2783d2b00dba077cb2798e213bfb651c5945ad36..b37ee8077ed148613419ae37a4427ddb227ec095 100644 (file)
@@ -1612,7 +1612,8 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
                }
 
                /* If this is a regular CPU link there will be a platform */
-               if (dai_fmt && dai_link->platform_name) {
+               if (dai_fmt &&
+                   (dai_link->platform_name || dai_link->platform_of_node)) {
                        ret = snd_soc_dai_set_fmt(card->rtd[i].cpu_dai,
                                                  dai_fmt);
                        if (ret != 0 && ret != -ENOTSUPP)