ASoC: pcm: Use wildcard msbits constraints

Use the new wildcard msbits constraints instead of installing a constraint
for each available sample format width.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Lars-Peter Clausen 2014-12-29 18:43:38 +01:00 committed by Takashi Iwai
parent 8ef9df55a7
commit 0e2a37513a

View File

@ -301,15 +301,6 @@ static bool soc_pcm_has_symmetry(struct snd_pcm_substream *substream)
return symmetry; return symmetry;
} }
/*
* List of sample sizes that might go over the bus for parameter
* application. There ought to be a wildcard sample size for things
* like the DAC/ADC resolution to use but there isn't right now.
*/
static int sample_sizes[] = {
24, 32,
};
static void soc_pcm_set_msb(struct snd_pcm_substream *substream, int bits) static void soc_pcm_set_msb(struct snd_pcm_substream *substream, int bits)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_pcm_runtime *rtd = substream->private_data;
@ -318,17 +309,10 @@ static void soc_pcm_set_msb(struct snd_pcm_substream *substream, int bits)
if (!bits) if (!bits)
return; return;
for (i = 0; i < ARRAY_SIZE(sample_sizes); i++) { ret = snd_pcm_hw_constraint_msbits(substream->runtime, 0, 0, bits);
if (bits >= sample_sizes[i]) if (ret != 0)
continue; dev_warn(rtd->dev, "ASoC: Failed to set MSB %d: %d\n",
bits, ret);
ret = snd_pcm_hw_constraint_msbits(substream->runtime, 0,
sample_sizes[i], bits);
if (ret != 0)
dev_warn(rtd->dev,
"ASoC: Failed to set MSB %d/%d: %d\n",
bits, sample_sizes[i], ret);
}
} }
static void soc_pcm_apply_msb(struct snd_pcm_substream *substream) static void soc_pcm_apply_msb(struct snd_pcm_substream *substream)