From patchwork Mon Sep 21 16:27:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "gregkh@linuxfoundation.org" X-Patchwork-Id: 309316 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 48487C43468 for ; Mon, 21 Sep 2020 17:03:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 140B52073A for ; Mon, 21 Sep 2020 17:03:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600707811; bh=Nj7XJZ3wJ2vfGccZ874EnITEz2ugjrcvfwxJ2uyaWFw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=D0mGQFtk4DZl81wEWiBNbU7Nt6Vebj54ra0bxNDoE6GWppuF1TfXcnP2rON7ehdQy aZ0s/mDIvON/B9gODuEEdcdffxzRxg4yeVjd55UoHzpXwSdJicLfMmiteA4JPXguVY bUVXQ62D/tJXRSLZHveLuwft4jsLdIIEyiXZ3TKY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729041AbgIUQhU (ORCPT ); Mon, 21 Sep 2020 12:37:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:37102 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728353AbgIUQhA (ORCPT ); Mon, 21 Sep 2020 12:37:00 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2ED622396F; Mon, 21 Sep 2020 16:36:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600706219; bh=Nj7XJZ3wJ2vfGccZ874EnITEz2ugjrcvfwxJ2uyaWFw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0I7ssbAyEnawDCPm0CpGxkMpg3h+/lDlvExKKIpdqTRCZOXCtDDlEkjfue8KZsk7a fHjkwleDkOosUDt2nUP/bIe5oKS2UzXBMZCz/g29O5Pa5UZZLYoXcpcCVfG2+FtzOL 7MkTGRY6nsc8iOcEF35vtHp6MvtUkdL12PuG7FMQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mohan Kumar , Sameer Pujar , Takashi Iwai , Sasha Levin Subject: [PATCH 4.14 14/94] ALSA: hda: Fix 2 channel swapping for Tegra Date: Mon, 21 Sep 2020 18:27:01 +0200 Message-Id: <20200921162036.202828008@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200921162035.541285330@linuxfoundation.org> References: <20200921162035.541285330@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Mohan Kumar [ 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 Acked-by: Sameer Pujar Link: https://lore.kernel.org/r/20200825052415.20626-2-mkumard@nvidia.com Signed-off-by: Takashi Iwai Signed-off-by: Sasha Levin --- sound/pci/hda/patch_hdmi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index cb7047bf844df..75bdcede04e63 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; }