summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorYong Zhi <yong.zhi@intel.com>2018-08-07 12:19:16 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-11-20 18:46:05 +0100
commit3d5d2f7806a9a685ab8cca3511119755af2645a1 (patch)
tree457ed5edda96890ebf949a5540d7080266f9f7bc /sound
parent0376916b7b2cff6db9566b4db946c43d97064f9e (diff)
downloadlinux-stable-3d5d2f7806a9a685ab8cca3511119755af2645a1.tar.gz
linux-stable-3d5d2f7806a9a685ab8cca3511119755af2645a1.tar.bz2
linux-stable-3d5d2f7806a9a685ab8cca3511119755af2645a1.zip
ASoC: Intel: hdac_hdmi: Limit sampling rates at dai creation
[ Upstream commit 3b857472f34faa7d11001afa5e158833812c98d7 ] Playback of 44.1Khz contents with HDMI plugged returns "Invalid pipe config" because HDMI paths in the FW topology are configured to operate at 48Khz. This patch filters out sampling rates not supported at hdac_hdmi_create_dais() to let user space SRC to do the converting. Signed-off-by: Yong Zhi <yong.zhi@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/hdac_hdmi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
index 098196610542..be2473166bfa 100644
--- a/sound/soc/codecs/hdac_hdmi.c
+++ b/sound/soc/codecs/hdac_hdmi.c
@@ -1410,6 +1410,12 @@ static int hdac_hdmi_create_dais(struct hdac_device *hdev,
if (ret)
return ret;
+ /* Filter out 44.1, 88.2 and 176.4Khz */
+ rates &= ~(SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_176400);
+ if (!rates)
+ return -EINVAL;
+
sprintf(dai_name, "intel-hdmi-hifi%d", i+1);
hdmi_dais[i].name = devm_kstrdup(&hdev->dev,
dai_name, GFP_KERNEL);