aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-compress.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2014-08-15 07:51:28 -0400
committerMark Brown <broonie@linaro.org>2014-08-15 07:51:28 -0400
commit543c675482bcf1e7b9f85bb1589314f38f60c520 (patch)
tree904f425393ac99539827d3164d2b0f78ac1607c5 /sound/soc/soc-compress.c
parent2fa4a285ddfd39cfa711da3f5e898ec2ce80ef87 (diff)
parentae34a78c430c37c06404f032fb04e51315204281 (diff)
Merge tag 'asoc-v3.17' into asoc-linus
ASoC: Updates for v3.17 This has been a pretty exciting release in terms of the framework, we've finally got support for multiple CODECs attached to a single DAI link which has been something there's been interest in as long as I've been working on ASoC. A big thanks to Benoit and Misael for their work on this. Otherwise it's been a fairly standard release for development, including more componentisation work from Lars-Peter and a good selection of both CODEC and CPU drivers. - Support for multiple CODECs attached to a single DAI, enabling systems with for example multiple DAC/speaker drivers on a single link, contributed by Benoit Cousson based on work from Misael Lopez Cruz. - Support for byte controls larger than 256 bytes based on the use of TLVs contributed by Omair Mohammed Abdullah. - More componentisation work from Lars-Peter Clausen. - The remainder of the conversions of CODEC drivers to params_width() - Drivers for Cirrus Logic CS4265, Freescale i.MX ASRC blocks, Realtek RT286 and RT5670, Rockchip RK3xxx I2S controllers and Texas Instruments TAS2552. - Lots of updates and fixes, especially to the DaVinci, Intel, Freescale, Realtek, and rcar drivers. # gpg: Signature made Mon 04 Aug 2014 17:13:21 BST using RSA key ID 7EA229BD # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>" # gpg: aka "Mark Brown <broonie@debian.org>" # gpg: aka "Mark Brown <broonie@kernel.org>" # gpg: aka "Mark Brown <broonie@tardis.ed.ac.uk>" # gpg: aka "Mark Brown <broonie@linaro.org>" # gpg: aka "Mark Brown <Mark.Brown@linaro.org>"
Diffstat (limited to 'sound/soc/soc-compress.c')
-rw-r--r--sound/soc/soc-compress.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 10f7f1da2aca..27c06acce205 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -37,7 +37,8 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
37 if (platform->driver->compr_ops && platform->driver->compr_ops->open) { 37 if (platform->driver->compr_ops && platform->driver->compr_ops->open) {
38 ret = platform->driver->compr_ops->open(cstream); 38 ret = platform->driver->compr_ops->open(cstream);
39 if (ret < 0) { 39 if (ret < 0) {
40 pr_err("compress asoc: can't open platform %s\n", platform->name); 40 pr_err("compress asoc: can't open platform %s\n",
41 platform->component.name);
41 goto out; 42 goto out;
42 } 43 }
43 } 44 }
@@ -84,7 +85,8 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
84 if (platform->driver->compr_ops && platform->driver->compr_ops->open) { 85 if (platform->driver->compr_ops && platform->driver->compr_ops->open) {
85 ret = platform->driver->compr_ops->open(cstream); 86 ret = platform->driver->compr_ops->open(cstream);
86 if (ret < 0) { 87 if (ret < 0) {
87 pr_err("compress asoc: can't open platform %s\n", platform->name); 88 pr_err("compress asoc: can't open platform %s\n",
89 platform->component.name);
88 goto out; 90 goto out;
89 } 91 }
90 } 92 }
@@ -627,6 +629,11 @@ int soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
627 char new_name[64]; 629 char new_name[64];
628 int ret = 0, direction = 0; 630 int ret = 0, direction = 0;
629 631
632 if (rtd->num_codecs > 1) {
633 dev_err(rtd->card->dev, "Multicodec not supported for compressed stream\n");
634 return -EINVAL;
635 }
636
630 /* check client and interface hw capabilities */ 637 /* check client and interface hw capabilities */
631 snprintf(new_name, sizeof(new_name), "%s %s-%d", 638 snprintf(new_name, sizeof(new_name), "%s %s-%d",
632 rtd->dai_link->stream_name, codec_dai->name, num); 639 rtd->dai_link->stream_name, codec_dai->name, num);
@@ -680,7 +687,7 @@ int soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
680 ret = snd_compress_new(rtd->card->snd_card, num, direction, compr); 687 ret = snd_compress_new(rtd->card->snd_card, num, direction, compr);
681 if (ret < 0) { 688 if (ret < 0) {
682 pr_err("compress asoc: can't create compress for codec %s\n", 689 pr_err("compress asoc: can't create compress for codec %s\n",
683 codec->name); 690 codec->component.name);
684 goto compr_err; 691 goto compr_err;
685 } 692 }
686 693