]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: Intel: hdac_hdmi: Limit sampling rates at dai creation
authorYong Zhi <yong.zhi@intel.com>
Tue, 7 Aug 2018 17:19:16 +0000 (12:19 -0500)
committerMark Brown <broonie@kernel.org>
Fri, 7 Sep 2018 12:03:05 +0000 (13:03 +0100)
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>
sound/soc/codecs/hdac_hdmi.c

index dc6a0dfea0502d8eec398b8b96dd5dc633f38dc0..41d90dc6ebf701863e1a5694d63c26d40f38374f 100644 (file)
@@ -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);