| From fd85e50ce5f2b97782451f80f212e97b3f8ae681 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 7 Aug 2018 12:19:16 -0500 |
| Subject: ASoC: Intel: hdac_hdmi: Limit sampling rates at dai creation |
| |
| From: Yong Zhi <yong.zhi@intel.com> |
| |
| [ 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> |
| --- |
| sound/soc/codecs/hdac_hdmi.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c |
| index 098196610542a..be2473166bfaf 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); |
| -- |
| 2.20.1 |
| |