mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
ASoC: codecs: hda: Switch to new stream-format interface
To provide option for selecting different bit-per-sample than just the maximum one, use the new format calculation mechanism. While at it, complete PCM stream initialization with subformat options. Acked-by: Mark Brown <broonie@kernel.org> Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Acked-by: Jaroslav Kysela <perex@perex.cz> Link: https://lore.kernel.org/r/20231117120610.1755254-9-cezary.rojewski@intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
0d41f0c07f
commit
d5c00ab2f5
|
|
@ -76,13 +76,16 @@ static int hda_codec_dai_prepare(struct snd_pcm_substream *substream, struct snd
|
|||
struct hdac_stream *stream;
|
||||
struct hda_codec *codec;
|
||||
unsigned int format;
|
||||
unsigned int bits;
|
||||
int ret;
|
||||
|
||||
codec = dev_to_hda_codec(dai->dev);
|
||||
stream = substream->runtime->private_data;
|
||||
stream_info = snd_soc_dai_get_dma_data(dai, substream);
|
||||
format = snd_hdac_calc_stream_format(runtime->rate, runtime->channels, runtime->format,
|
||||
runtime->sample_bits, 0);
|
||||
|
||||
bits = snd_hdac_stream_format_bits(runtime->format, runtime->subformat,
|
||||
stream_info->maxbps);
|
||||
format = snd_hdac_stream_format(runtime->channels, bits, runtime->rate);
|
||||
|
||||
ret = snd_hda_codec_prepare(codec, stream_info, stream->stream_tag, format, substream);
|
||||
if (ret < 0) {
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ static int hda_codec_create_dais(struct hda_codec *codec, int pcm_count,
|
|||
stream->channels_max = pcm->stream[dir].channels_max;
|
||||
stream->rates = pcm->stream[dir].rates;
|
||||
stream->formats = pcm->stream[dir].formats;
|
||||
stream->subformats = pcm->stream[dir].subformats;
|
||||
stream->sig_bits = pcm->stream[dir].maxbps;
|
||||
|
||||
capture_dais:
|
||||
|
|
@ -71,6 +72,7 @@ static int hda_codec_create_dais(struct hda_codec *codec, int pcm_count,
|
|||
stream->channels_max = pcm->stream[dir].channels_max;
|
||||
stream->rates = pcm->stream[dir].rates;
|
||||
stream->formats = pcm->stream[dir].formats;
|
||||
stream->subformats = pcm->stream[dir].subformats;
|
||||
stream->sig_bits = pcm->stream[dir].maxbps;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user