ASoC: Intel: Skylake: Ignore rate check for DMIC link
DMIC NHLT entry is sample rate agnostic, so ignore the rate checks for DMIC type Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
65aecfa884
commit
16882d24b3
|
@ -55,7 +55,7 @@ void skl_nhlt_free(void *addr)
|
|||
|
||||
static struct nhlt_specific_cfg *skl_get_specific_cfg(
|
||||
struct device *dev, struct nhlt_fmt *fmt,
|
||||
u8 no_ch, u32 rate, u16 bps)
|
||||
u8 no_ch, u32 rate, u16 bps, u8 linktype)
|
||||
{
|
||||
struct nhlt_specific_cfg *sp_config;
|
||||
struct wav_fmt *wfmt;
|
||||
|
@ -68,11 +68,17 @@ static struct nhlt_specific_cfg *skl_get_specific_cfg(
|
|||
wfmt = &fmt_config->fmt_ext.fmt;
|
||||
dev_dbg(dev, "ch=%d fmt=%d s_rate=%d\n", wfmt->channels,
|
||||
wfmt->bits_per_sample, wfmt->samples_per_sec);
|
||||
if (wfmt->channels == no_ch && wfmt->samples_per_sec == rate &&
|
||||
wfmt->bits_per_sample == bps) {
|
||||
if (wfmt->channels == no_ch && wfmt->bits_per_sample == bps) {
|
||||
/*
|
||||
* if link type is dmic ignore rate check as the blob is
|
||||
* generic for all rates
|
||||
*/
|
||||
sp_config = &fmt_config->config;
|
||||
if (linktype == NHLT_LINK_DMIC)
|
||||
return sp_config;
|
||||
|
||||
return sp_config;
|
||||
if (wfmt->samples_per_sec == rate)
|
||||
return sp_config;
|
||||
}
|
||||
|
||||
fmt_config = (struct nhlt_fmt_cfg *)(fmt_config->config.caps +
|
||||
|
@ -128,7 +134,8 @@ struct nhlt_specific_cfg
|
|||
if (skl_check_ep_match(dev, epnt, instance, link_type, dirn)) {
|
||||
fmt = (struct nhlt_fmt *)(epnt->config.caps +
|
||||
epnt->config.size);
|
||||
sp_config = skl_get_specific_cfg(dev, fmt, num_ch, s_rate, bps);
|
||||
sp_config = skl_get_specific_cfg(dev, fmt, num_ch,
|
||||
s_rate, bps, link_type);
|
||||
if (sp_config)
|
||||
return sp_config;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue