From patchwork Fri Nov 15 09:56:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikhil Mahale X-Patchwork-Id: 11245861 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DE158138C for ; Fri, 15 Nov 2019 09:59:53 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6B5182073C for ; Fri, 15 Nov 2019 09:59:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="KztHIOGb"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=nvidia.com header.i=@nvidia.com header.b="Mt63OvVQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6B5182073C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 9B4C415F9; Fri, 15 Nov 2019 10:59:01 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 9B4C415F9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1573811991; bh=6wMzRISlM6XMsqSXmbbffGJLBiPW9ZmVb2TxI3DPjps=; h=From:To:Date:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=KztHIOGbVxdyXCloFvQtiErRaSVknI27FFWLuv39lvSuU1sEsDJZ5IjzPL3781XwY EtazbQEWcwDx5I+Q2d3Nr2MobFb5PKWWxhn19UE6ihYQYS/k/4AidItK4K0x0eqoNC Oea/30GBa0qQc2uXXTOaLNRSURIHhj/3oSg2fs74= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 8F94CF80117; Fri, 15 Nov 2019 10:56:45 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa1.perex.cz (Postfix, from userid 50401) id 0BB89F8010B; Fri, 15 Nov 2019 10:56:42 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on alsa1.perex.cz X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,SPF_PASS,SURBL_BLOCKED autolearn=disabled version=3.4.0 Received: from hqemgate14.nvidia.com (hqemgate14.nvidia.com [216.228.121.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 96658F8010B for ; Fri, 15 Nov 2019 10:56:38 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 96658F8010B Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=nvidia.com header.i=@nvidia.com header.b="Mt63OvVQ" Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqemgate14.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Fri, 15 Nov 2019 01:56:40 -0800 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Fri, 15 Nov 2019 01:56:37 -0800 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Fri, 15 Nov 2019 01:56:37 -0800 Received: from nvidia.com (10.124.1.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 15 Nov 2019 09:56:35 +0000 From: Nikhil Mahale To: Date: Fri, 15 Nov 2019 15:26:04 +0530 Message-ID: <20191115095606.22392-4-nmahale@nvidia.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20191115095606.22392-1-nmahale@nvidia.com> References: <20191115095606.22392-1-nmahale@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 X-Originating-IP: [10.124.1.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1573811800; bh=GFJTuhDHEyTAZF3QHNTG4tgZYvzDWCHGtTtKHGG8hLo=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:X-NVConfidentiality:MIME-Version: X-Originating-IP:X-ClientProxiedBy:Content-Type; b=Mt63OvVQi03YPoXLTCD8xakxF0bWoi7kTuPQJTnF6NOMHpbFFs99lEpEOJhpdWfPJ pM58oa24yyYTYd1Wl4RztWOlWbG99r2QTL2UsGCw1HKfwGhVJdg+ZCv44dTJvp5qc1 YFx4u0Ll7C/reXbMmd8MJaS5ATfLOIE/sT5tzlVMWXRzmatFUEyblKNRvgAOf2UvMe i/CIfMcnAeSlDddR8DKWTj7NQQay0B7fWZSoE2oO5qB/gjyV8agCzHI9EgD5U2h5j5 QWPu+PWDOruT2KzDpse/ufTmgK9pdkLAcjz85y/1f9qZlCsndMbFabqncVwsCEJceg crAoraZmmd1mw== Cc: alsa-devel@alsa-project.org, nmahale@nvidia.com, aplattner@nvidia.com Subject: [alsa-devel] [PATCH v2 3/5] ALSA: hda - Add DP-MST conn list support X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Document change notification HDA040-A for the Intel High Definition Audio 1.0a specification introduces a Device Select verb for Digital Display Pin Widgets that are multi-stream capable. This verb selects a Device Entry that is used by subsequent Pin Widget verbs, including the Get Connection List Entry verb. This patch queries the current Device Select value, associates it with the connection list, and updates the connection list management code to consider dev_id along with nid. Signed-off-by: Nikhil Mahale Reviewed-by: Aaron Plattner --- sound/pci/hda/hda_codec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index a2fb19129219..8f32cab8f4a4 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -88,6 +88,7 @@ struct hda_conn_list { struct list_head list; int len; hda_nid_t nid; + int dev_id; hda_nid_t conns[0]; }; @@ -96,8 +97,9 @@ static struct hda_conn_list * lookup_conn_list(struct hda_codec *codec, hda_nid_t nid) { struct hda_conn_list *p; + int dev_id = snd_hda_get_dev_select(codec, nid); list_for_each_entry(p, &codec->conn_list, list) { - if (p->nid == nid) + if (p->nid == nid && p->dev_id == dev_id) return p; } return NULL; @@ -113,6 +115,7 @@ static int add_conn_list(struct hda_codec *codec, hda_nid_t nid, int len, return -ENOMEM; p->len = len; p->nid = nid; + p->dev_id = snd_hda_get_dev_select(codec, nid); memcpy(p->conns, list, len * sizeof(hda_nid_t)); list_add(&p->list, &codec->conn_list); return 0;