From mboxrd@z Thu Jan 1 00:00:00 1970 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=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no 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 8B739C432C3 for ; Fri, 15 Nov 2019 13:13:54 +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 817862073B for ; Fri, 15 Nov 2019 13:13: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="fnPc2yGn" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 817862073B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de 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 28DE7822; Fri, 15 Nov 2019 14:13:01 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 28DE7822 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1573823631; bh=ddB9YVzw7fpHFDhWt5y+z8E6IiIOb4RDEq3482ppwTo=; h=Date:From:To:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=fnPc2yGngsUFeE6Fofw+lFyEDKHGqAMKORZv8ySaBQbupwH6kn/RXZNwFGoeR969F 3jrCcssMZFeWxwn6+EltVQV8ojjGFwPolNpIlysIiW9JM+QWDkcXbW7HyQvnskr48g EFcVNmi35MAMcyXQYs8/N7bVaV5JQG6Ldj1eW+G8= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 9E4D5F80103; Fri, 15 Nov 2019 14:13:00 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id D95D1F80104; Fri, 15 Nov 2019 14:12:58 +0100 (CET) Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id A0CBFF800CC for ; Fri, 15 Nov 2019 14:12:56 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz A0CBFF800CC X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id A5426B27D; Fri, 15 Nov 2019 13:12:55 +0000 (UTC) Date: Fri, 15 Nov 2019 14:12:55 +0100 Message-ID: From: Takashi Iwai To: Nikhil Mahale In-Reply-To: <20191115095606.22392-3-nmahale@nvidia.com> References: <20191115095606.22392-1-nmahale@nvidia.com> <20191115095606.22392-3-nmahale@nvidia.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Cc: alsa-devel@alsa-project.org, tiwai@suse.com, aplattner@nvidia.com Subject: Re: [alsa-devel] [PATCH v2 2/5] ALSA: hda - Add DP-MST jack 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On Fri, 15 Nov 2019 10:56:03 +0100, Nikhil Mahale wrote: > > static struct hda_jack_tbl * > -snd_hda_jack_tbl_new(struct hda_codec *codec, hda_nid_t nid) > +snd_hda_jack_tbl_new(struct hda_codec *codec, hda_nid_t nid, int dev_id) > { > - struct hda_jack_tbl *jack = snd_hda_jack_tbl_get(codec, nid); > + struct hda_jack_tbl *jack = > + snd_hda_jack_tbl_get_mst(codec, nid, dev_id); > + struct hda_jack_tbl *existing_nid_jack = > + any_jack_tbl_get_from_nid(codec, nid); > + > + WARN_ON(dev_id != 0 && !codec->dp_mst); > + > if (jack) > return jack; > jack = snd_array_new(&codec->jacktbl); > if (!jack) > return NULL; > jack->nid = nid; > + jack->dev_id = dev_id; > jack->jack_dirty = 1; > - jack->tag = codec->jacktbl.used; > + if (!existing_nid_jack) > + jack->tag = codec->jacktbl.used; > + else > + jack->tag = existing_nid_jack->tag; > + > return jack; > } In this logic, we assign the same tag to multiple jack objects, and this will lead to the multiple calls of SET_UNSOLICITED_ENABLE on the same pin. But this should be only once at parsing, and the rest resume init will be done from the codec regmap cache, so it's not too bad, I guess. Alternatively we can set 0 to jack->tag when existing_nid_jack!=NULL, too, and skip SET_UNSOLICITED_ENABLE for tag==0. But this will make *_get_from_tag() won't work as you intended, hence the step will be - get the jack once via snd_hda_jack_tbl_get_from_tag(tag) - get the jack again with snd_hda_jack_tbl_get_mst(jack->nid, dev_id) But it's more complex, and not better, either. thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel