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",