summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorMohan Kumar <mkumard@nvidia.com>2020-08-25 10:54:14 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-09-23 10:46:27 +0200
commitcea06c8a39aa862e4aa2b82074abb43c0a4d989a (patch)
treea694c634f9acaa36e2e89499d962fde8a417940a /sound/pci
parent824a4ed2767d4568a0eece73fafe0141128b4d18 (diff)
downloadlinux-stable-cea06c8a39aa862e4aa2b82074abb43c0a4d989a.tar.gz
linux-stable-cea06c8a39aa862e4aa2b82074abb43c0a4d989a.tar.bz2
linux-stable-cea06c8a39aa862e4aa2b82074abb43c0a4d989a.zip
ALSA: hda: Fix 2 channel swapping for Tegra
[ Upstream commit 216116eae43963c662eb84729507bad95214ca6b ] The Tegra HDA codec HW implementation has an issue related to not swapping the 2 channel Audio Sample Packet(ASP) channel mapping. Whatever the FL and FR mapping specified the left channel always comes out of left speaker and right channel on right speaker. So add condition to disallow the swapping of FL,FR during the playback. Signed-off-by: Mohan Kumar <mkumard@nvidia.com> Acked-by: Sameer Pujar <spujar@nvidia.com> Link: https://lore.kernel.org/r/20200825052415.20626-2-mkumard@nvidia.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_hdmi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index cb7047bf844d..75bdcede04e6 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -3399,6 +3399,7 @@ static int tegra_hdmi_build_pcms(struct hda_codec *codec)
static int patch_tegra_hdmi(struct hda_codec *codec)
{
+ struct hdmi_spec *spec;
int err;
err = patch_generic_hdmi(codec);
@@ -3406,6 +3407,10 @@ static int patch_tegra_hdmi(struct hda_codec *codec)
return err;
codec->patch_ops.build_pcms = tegra_hdmi_build_pcms;
+ spec = codec->spec;
+ spec->chmap.ops.chmap_cea_alloc_validate_get_type =
+ nvhdmi_chmap_cea_alloc_validate_get_type;
+ spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate;
return 0;
}