ASoC: codecs: hdac_hda: Switch to new stream-format interface
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 17 Nov 2023 12:06:03 +0000 (13:06 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 27 Nov 2023 16:28:17 +0000 (17:28 +0100)
To provide option for selecting different bit-per-sample than just the
maximum one, use the new format calculation mechanism.

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-10-cezary.rojewski@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/soc/codecs/hdac_hda.c

index 355f30779a3487efc74d247eeaf63664051b39ff..0c589e46574dd6838948fa2a2b6e568c69d4d992 100644 (file)
@@ -215,18 +215,16 @@ static int hdac_hda_dai_hw_params(struct snd_pcm_substream *substream,
        struct hdac_hda_priv *hda_pvt;
        unsigned int format_val;
        unsigned int maxbps;
+       unsigned int bits;
 
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
                maxbps = dai->driver->playback.sig_bits;
        else
                maxbps = dai->driver->capture.sig_bits;
+       bits = snd_hdac_stream_format_bits(params_format(params), SNDRV_PCM_SUBFORMAT_STD, maxbps);
 
        hda_pvt = snd_soc_component_get_drvdata(component);
-       format_val = snd_hdac_calc_stream_format(params_rate(params),
-                                                params_channels(params),
-                                                params_format(params),
-                                                maxbps,
-                                                0);
+       format_val = snd_hdac_stream_format(params_channels(params), bits, params_rate(params));
        if (!format_val) {
                dev_err(dai->dev,
                        "invalid format_val, rate=%d, ch=%d, format=%d, maxbps=%d\n",