Skip to content

Commit

Permalink
ASoC: dpcm: Add helper function for initializing runtime pcm
Browse files Browse the repository at this point in the history
We have the same code for initializing the runtime pcm on both the playback and
the capture path. Factor this out into a common helper function.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
  • Loading branch information
Lars-Peter Clausen authored and Mark Brown committed Jan 6, 2014
1 parent e41975e commit 08ae9b4
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions sound/soc/soc-pcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1228,28 +1228,28 @@ static int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)
return err;
}

static void dpcm_init_runtime_hw(struct snd_pcm_runtime *runtime,
struct snd_soc_pcm_stream *stream)
{
runtime->hw.rate_min = stream->rate_min;
runtime->hw.rate_max = stream->rate_max;
runtime->hw.channels_min = stream->channels_min;
runtime->hw.channels_max = stream->channels_max;
runtime->hw.formats &= stream->formats;
runtime->hw.rates = stream->rates;
}

static void dpcm_set_fe_runtime(struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
struct snd_soc_dai_driver *cpu_dai_drv = cpu_dai->driver;

if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
runtime->hw.rate_min = cpu_dai_drv->playback.rate_min;
runtime->hw.rate_max = cpu_dai_drv->playback.rate_max;
runtime->hw.channels_min = cpu_dai_drv->playback.channels_min;
runtime->hw.channels_max = cpu_dai_drv->playback.channels_max;
runtime->hw.formats &= cpu_dai_drv->playback.formats;
runtime->hw.rates = cpu_dai_drv->playback.rates;
} else {
runtime->hw.rate_min = cpu_dai_drv->capture.rate_min;
runtime->hw.rate_max = cpu_dai_drv->capture.rate_max;
runtime->hw.channels_min = cpu_dai_drv->capture.channels_min;
runtime->hw.channels_max = cpu_dai_drv->capture.channels_max;
runtime->hw.formats &= cpu_dai_drv->capture.formats;
runtime->hw.rates = cpu_dai_drv->capture.rates;
}
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
dpcm_init_runtime_hw(runtime, &cpu_dai_drv->playback);
else
dpcm_init_runtime_hw(runtime, &cpu_dai_drv->capture);
}

static int dpcm_fe_dai_startup(struct snd_pcm_substream *fe_substream)
Expand Down

0 comments on commit 08ae9b4

Please sign in to comment.