ASoC: hdac_hdmi: Update sig_bits based on converter capability
authorJeeja KP <jeeja.kp@intel.com>
Fri, 24 Mar 2017 17:40:26 +0000 (23:10 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 29 Mar 2017 11:53:21 +0000 (12:53 +0100)
When creating the codec dai, use sig_bits to update the max bps based
on the codec capability. So both the link DMA and codec format will be
calculated based on DAI sig_bits.

So update the sig_bits with converter capability and use the sig_bits
for HDA format calculation.

Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/hdac_hdmi.c

index 78fca8acd3ec0a2209876bf5b20a1363a03c6336..5b7694721ef79f2bb7c32aaa24c9f358de9a2c3a 100644 (file)
@@ -469,7 +469,7 @@ static int hdac_hdmi_set_hw_params(struct snd_pcm_substream *substream,
 
        format = snd_hdac_calc_stream_format(params_rate(hparams),
                        params_channels(hparams), params_format(hparams),
-                       24, 0);
+                       dai->driver->playback.sig_bits, 0);
 
        pcm = hdac_hdmi_get_pcm_from_cvt(hdmi, dai_map->cvt);
        if (!pcm)
@@ -1419,8 +1419,8 @@ static int hdac_hdmi_create_dais(struct hdac_device *hdac,
                hdmi_dais[i].playback.rate_min = rate_min;
                hdmi_dais[i].playback.channels_min = 2;
                hdmi_dais[i].playback.channels_max = 2;
+               hdmi_dais[i].playback.sig_bits = bps;
                hdmi_dais[i].ops = &hdmi_dai_ops;
-
                i++;
        }