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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B878C433F5 for ; Thu, 30 Sep 2021 16:14:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 410BA613CD for ; Thu, 30 Sep 2021 16:14:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349330AbhI3QPk (ORCPT ); Thu, 30 Sep 2021 12:15:40 -0400 Received: from mga03.intel.com ([134.134.136.65]:53611 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349136AbhI3QPd (ORCPT ); Thu, 30 Sep 2021 12:15:33 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10123"; a="225301309" X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="scan'208";a="225301309" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 09:13:50 -0700 X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="scan'208";a="521260621" Received: from lcalx-mobl1.amr.corp.intel.com (HELO [10.212.88.180]) ([10.212.88.180]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 09:13:48 -0700 Subject: Re: [PATCH 01/13] ASoC: soc-pcm: Don't reconnect an already active BE To: Sameer Pujar , =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= , broonie@kernel.org, lgirdwood@gmail.com, robh+dt@kernel.org, thierry.reding@gmail.com, jonathanh@nvidia.com, catalin.marinas@arm.com, will@kernel.org, perex@perex.cz, tiwai@suse.com, kuninori.morimoto.gx@renesas.com Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, sharadg@nvidia.com, linux-arm-kernel@lists.infradead.org References: <1630056839-6562-1-git-send-email-spujar@nvidia.com> <1630056839-6562-2-git-send-email-spujar@nvidia.com> <70422e52-89d2-d926-b3f9-be59780d464e@nvidia.com> <2f96f1aa-74f2-8ea8-3f43-e4da97400fde@linux.intel.com> <647b1d54-dbd7-ce91-291d-d677ce908398@linux.intel.com> <94861852-29ba-be9e-8c63-a70a01550b3a@nvidia.com> <78e175f3-29cb-f059-427f-51210278c42a@nvidia.com> From: Pierre-Louis Bossart Message-ID: <09bbf14a-a5a0-23c6-d557-66a3af1ac227@linux.intel.com> Date: Thu, 30 Sep 2021 11:13:45 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <78e175f3-29cb-f059-427f-51210278c42a@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org >>>> Can you describe the sequence that you used to start them? That may be >>>> useful to understand the criteria you used? >>> I have something like this: >>> >>> FE1  --> Crossbar -> Mixer Input1    | >>> FE2  --> Crossbar -> Mixer Input2    | >>> ...                                  | --> Mixer Output --> >>> ... | >>> FE10 --> Crossbar -> Mixer Input10   | >>> >>> All these FEs are started one after the other. This is an example of >>> 10x1. Similarly we can have 2x1, 3x1 etc., >>> In our system, the crossbar [0] and mixer [1] are separate ASoC >>> components. Basically audio paths consist of a group of ASoC components >>> which are connected back to back. >> Not following. Can you explain how starting FE1 does not change the >> state of the mixer output then? >> >> Or is each 'Crossbar' instance a full-blown BE? In that case you have a >> 1:1 mapping between FE and BE, a *really* simple topology... > > Yes 'Crossbar' exposes multiple ports and it is 1:1 mapping with FE. > Starting FE1 does configure mixer output. Ah ok, now I get the difference with the N:1 topology we used. Thanks for explaining this. >>> In the interim, may be we can have following patch to keep both systems >>> working and keep the discussion going to address the oustanding >>> requirements/issues? >>> >>> diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c >>> index ab25f99..0fbab50 100644 >>> --- a/sound/soc/soc-pcm.c >>> +++ b/sound/soc/soc-pcm.c >>> @@ -1395,7 +1395,13 @@ static int dpcm_add_paths(struct >>> snd_soc_pcm_runtime *fe, int stream, >>>                  if (!fe->dpcm[stream].runtime && !fe->fe_compr) >>>                          continue; >>> >>> -               if ((be->dpcm[stream].state != >>> SND_SOC_DPCM_STATE_NEW) && >>> +               /* >>> +                * Filter for systems with 'component_chaining' enabled. >>> +                * This helps to avoid unnecessary re-configuration >>> of an >>> +                * already active BE on such systems. >>> +                */ >>> +               if (fe->card->component_chaining && >>> +                   (be->dpcm[stream].state != >>> SND_SOC_DPCM_STATE_NEW) && >>>                      (be->dpcm[stream].state != >>> SND_SOC_DPCM_STATE_CLOSE)) >>>                          continue; >> that wouldn't work. We need to support the STOP and START cases as well. >> > > I meant with flag 'fe->card->component_chaining', which is currently > used by Tegra audio only. Ah yes, this may be a temporary solution that gets us both back to a 'working solution'. Let me give it a try. Good discussion, thanks! -Pierre 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A580BC433EF for ; Thu, 30 Sep 2021 16:15:43 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 72792613A9 for ; Thu, 30 Sep 2021 16:15:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 72792613A9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=Em/0hNKWnqmt5DVCP9HYMmbq+UnuJrotV3QwZ/ULQp4=; b=nwMuuK19ZcpzP4y0z8GblCgzeg SoU+qgpWEHz3LvsMA9edNNh3tyTxqelPivswO1yza5B0s6gBa27azzSN1PqILz23yFZ9+EC3BeLFr BQ/VOVkPRYnOiAK4TOFegYM03SGRs//pX4vMw6B+k7AGXOQNKsUCI+6YJmyxrZ7X3t2ihKjXQsOqq pE37AxyhuswgYXN+2Eua5sy8sMGYKPRSHaFH8xJIOIxpJnvaHpFHd7Wq6MycCCY23A4Oiu9mnG0Z6 e8DGM0BWZ/ypq3rt4OUI24iQMjMeHxNLXYwQaW+BOZLEDog3IiAVCouSMmrx8+fz5MgFUKI8xo2Ie UjERL4BA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mVyhR-00FAfG-GB; Thu, 30 Sep 2021 16:14:21 +0000 Received: from mga03.intel.com ([134.134.136.65]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mVygx-00FAUf-7r for linux-arm-kernel@lists.infradead.org; Thu, 30 Sep 2021 16:13:52 +0000 X-IronPort-AV: E=McAfee;i="6200,9189,10123"; a="225301310" X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="scan'208";a="225301310" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 09:13:50 -0700 X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="scan'208";a="521260621" Received: from lcalx-mobl1.amr.corp.intel.com (HELO [10.212.88.180]) ([10.212.88.180]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 09:13:48 -0700 Subject: Re: [PATCH 01/13] ASoC: soc-pcm: Don't reconnect an already active BE To: Sameer Pujar , =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= , broonie@kernel.org, lgirdwood@gmail.com, robh+dt@kernel.org, thierry.reding@gmail.com, jonathanh@nvidia.com, catalin.marinas@arm.com, will@kernel.org, perex@perex.cz, tiwai@suse.com, kuninori.morimoto.gx@renesas.com Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, sharadg@nvidia.com, linux-arm-kernel@lists.infradead.org References: <1630056839-6562-1-git-send-email-spujar@nvidia.com> <1630056839-6562-2-git-send-email-spujar@nvidia.com> <70422e52-89d2-d926-b3f9-be59780d464e@nvidia.com> <2f96f1aa-74f2-8ea8-3f43-e4da97400fde@linux.intel.com> <647b1d54-dbd7-ce91-291d-d677ce908398@linux.intel.com> <94861852-29ba-be9e-8c63-a70a01550b3a@nvidia.com> <78e175f3-29cb-f059-427f-51210278c42a@nvidia.com> From: Pierre-Louis Bossart Message-ID: <09bbf14a-a5a0-23c6-d557-66a3af1ac227@linux.intel.com> Date: Thu, 30 Sep 2021 11:13:45 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <78e175f3-29cb-f059-427f-51210278c42a@nvidia.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210930_091351_381548_CB790231 X-CRM114-Status: GOOD ( 16.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Cj4+Pj4gQ2FuIHlvdSBkZXNjcmliZSB0aGUgc2VxdWVuY2UgdGhhdCB5b3UgdXNlZCB0byBzdGFy dCB0aGVtPyBUaGF0IG1heSBiZQo+Pj4+IHVzZWZ1bCB0byB1bmRlcnN0YW5kIHRoZSBjcml0ZXJp YSB5b3UgdXNlZD8KPj4+IEkgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGlzOgo+Pj4KPj4+IEZFMcKg IC0tPiBDcm9zc2JhciAtPiBNaXhlciBJbnB1dDHCoMKgwqAgfAo+Pj4gRkUywqAgLS0+IENyb3Nz YmFyIC0+IE1peGVyIElucHV0MsKgwqDCoCB8Cj4+PiAuLi7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAtLT4gTWl4ZXIg T3V0cHV0IC0tPgo+Pj4gLi4uIHwKPj4+IEZFMTAgLS0+IENyb3NzYmFyIC0+IE1peGVyIElucHV0 MTDCoMKgIHwKPj4+Cj4+PiBBbGwgdGhlc2UgRkVzIGFyZSBzdGFydGVkIG9uZSBhZnRlciB0aGUg b3RoZXIuIFRoaXMgaXMgYW4gZXhhbXBsZSBvZgo+Pj4gMTB4MS4gU2ltaWxhcmx5IHdlIGNhbiBo YXZlIDJ4MSwgM3gxIGV0Yy4sCj4+PiBJbiBvdXIgc3lzdGVtLCB0aGUgY3Jvc3NiYXIgWzBdIGFu ZCBtaXhlciBbMV0gYXJlIHNlcGFyYXRlIEFTb0MKPj4+IGNvbXBvbmVudHMuIEJhc2ljYWxseSBh dWRpbyBwYXRocyBjb25zaXN0IG9mIGEgZ3JvdXAgb2YgQVNvQyBjb21wb25lbnRzCj4+PiB3aGlj aCBhcmUgY29ubmVjdGVkIGJhY2sgdG8gYmFjay4KPj4gTm90IGZvbGxvd2luZy4gQ2FuIHlvdSBl eHBsYWluIGhvdyBzdGFydGluZyBGRTEgZG9lcyBub3QgY2hhbmdlIHRoZQo+PiBzdGF0ZSBvZiB0 aGUgbWl4ZXIgb3V0cHV0IHRoZW4/Cj4+Cj4+IE9yIGlzIGVhY2ggJ0Nyb3NzYmFyJyBpbnN0YW5j ZSBhIGZ1bGwtYmxvd24gQkU/IEluIHRoYXQgY2FzZSB5b3UgaGF2ZSBhCj4+IDE6MSBtYXBwaW5n IGJldHdlZW4gRkUgYW5kIEJFLCBhICpyZWFsbHkqIHNpbXBsZSB0b3BvbG9neS4uLgo+IAo+IFll cyAnQ3Jvc3NiYXInIGV4cG9zZXMgbXVsdGlwbGUgcG9ydHMgYW5kIGl0IGlzIDE6MSBtYXBwaW5n IHdpdGggRkUuCj4gU3RhcnRpbmcgRkUxIGRvZXMgY29uZmlndXJlIG1peGVyIG91dHB1dC4KCkFo IG9rLCBub3cgSSBnZXQgdGhlIGRpZmZlcmVuY2Ugd2l0aCB0aGUgTjoxIHRvcG9sb2d5IHdlIHVz ZWQuClRoYW5rcyBmb3IgZXhwbGFpbmluZyB0aGlzLgoKPj4+IEluIHRoZSBpbnRlcmltLCBtYXkg YmUgd2UgY2FuIGhhdmUgZm9sbG93aW5nIHBhdGNoIHRvIGtlZXAgYm90aCBzeXN0ZW1zCj4+PiB3 b3JraW5nIGFuZCBrZWVwIHRoZSBkaXNjdXNzaW9uIGdvaW5nIHRvIGFkZHJlc3MgdGhlIG91c3Rh bmRpbmcKPj4+IHJlcXVpcmVtZW50cy9pc3N1ZXM/Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL3NvdW5k L3NvYy9zb2MtcGNtLmMgYi9zb3VuZC9zb2Mvc29jLXBjbS5jCj4+PiBpbmRleCBhYjI1Zjk5Li4w ZmJhYjUwIDEwMDY0NAo+Pj4gLS0tIGEvc291bmQvc29jL3NvYy1wY20uYwo+Pj4gKysrIGIvc291 bmQvc29jL3NvYy1wY20uYwo+Pj4gQEAgLTEzOTUsNyArMTM5NSwxMyBAQCBzdGF0aWMgaW50IGRw Y21fYWRkX3BhdGhzKHN0cnVjdAo+Pj4gc25kX3NvY19wY21fcnVudGltZSAqZmUsIGludCBzdHJl YW0sCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWZlLT5kcGNtW3N0 cmVhbV0ucnVudGltZSAmJiAhZmUtPmZlX2NvbXByKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+Pj4KPj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGlmICgoYmUtPmRwY21bc3RyZWFtXS5zdGF0ZSAhPQo+Pj4gU05E X1NPQ19EUENNX1NUQVRFX05FVykgJiYKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC8qCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogRmlsdGVyIGZvciBzeXN0 ZW1zIHdpdGggJ2NvbXBvbmVudF9jaGFpbmluZycgZW5hYmxlZC4KPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKiBUaGlzIGhlbHBzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHJlLWNv bmZpZ3VyYXRpb24KPj4+IG9mIGFuCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICogYWxyZWFkeSBhY3RpdmUgQkUgb24gc3VjaCBzeXN0ZW1zLgo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg KGZlLT5jYXJkLT5jb21wb25lbnRfY2hhaW5pbmcgJiYKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGJlLT5kcGNtW3N0cmVhbV0uc3RhdGUgIT0KPj4+IFNORF9TT0Nf RFBDTV9TVEFURV9ORVcpICYmCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChiZS0+ZHBjbVtzdHJlYW1dLnN0YXRlICE9Cj4+PiBTTkRfU09DX0RQQ01fU1RBVEVf Q0xPU0UpKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNvbnRpbnVlOwo+PiB0aGF0IHdvdWxkbid0IHdvcmsuIFdlIG5lZWQgdG8gc3VwcG9ydCB0 aGUgU1RPUCBhbmQgU1RBUlQgY2FzZXMgYXMgd2VsbC4KPj4KPiAKPiBJIG1lYW50IHdpdGggZmxh ZyAnZmUtPmNhcmQtPmNvbXBvbmVudF9jaGFpbmluZycsIHdoaWNoIGlzIGN1cnJlbnRseQo+IHVz ZWQgYnkgVGVncmEgYXVkaW8gb25seS4KCkFoIHllcywgdGhpcyBtYXkgYmUgYSB0ZW1wb3Jhcnkg c29sdXRpb24gdGhhdCBnZXRzIHVzIGJvdGggYmFjayB0byBhCid3b3JraW5nIHNvbHV0aW9uJy4g TGV0IG1lIGdpdmUgaXQgYSB0cnkuCkdvb2QgZGlzY3Vzc2lvbiwgdGhhbmtzIQotUGllcnJlCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg== 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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A1622C433EF for ; Thu, 30 Sep 2021 16:17:11 +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 0EB936141B for ; Thu, 30 Sep 2021 16:17:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0EB936141B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=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 BC46B16A0; Thu, 30 Sep 2021 18:16:17 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz BC46B16A0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1633018627; bh=AuIn8GYX2DEVrs/XZh36vZiLilBXOgvWfizZClgoNr4=; h=Subject:To:References:From:Date:In-Reply-To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=iDdZPXpSMrbs3kmxOLTNrzcTdXOgnGm3pHwTC5uK2gA6tZJyLkc3LzXx4ad9cXo4Y KZf1XAfBA0W1jdNIhRBsVRA6yhS0VEhxzPsWwN//5GJX6lnJy3y+NmXjXh2MhZBTeL iD6aZAx8rebslHG0vOVTNShrJIltjDu2xhhK8aHw= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id CBA11F8032C; Thu, 30 Sep 2021 18:16:16 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 4EC84F804AD; Thu, 30 Sep 2021 18:16:15 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (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 38532F80218 for ; Thu, 30 Sep 2021 18:16:08 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 38532F80218 X-IronPort-AV: E=McAfee;i="6200,9189,10123"; a="223335791" X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="scan'208";a="223335791" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 09:13:50 -0700 X-IronPort-AV: E=Sophos;i="5.85,336,1624345200"; d="scan'208";a="521260621" Received: from lcalx-mobl1.amr.corp.intel.com (HELO [10.212.88.180]) ([10.212.88.180]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 09:13:48 -0700 Subject: Re: [PATCH 01/13] ASoC: soc-pcm: Don't reconnect an already active BE To: Sameer Pujar , =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= , broonie@kernel.org, lgirdwood@gmail.com, robh+dt@kernel.org, thierry.reding@gmail.com, jonathanh@nvidia.com, catalin.marinas@arm.com, will@kernel.org, perex@perex.cz, tiwai@suse.com, kuninori.morimoto.gx@renesas.com References: <1630056839-6562-1-git-send-email-spujar@nvidia.com> <1630056839-6562-2-git-send-email-spujar@nvidia.com> <70422e52-89d2-d926-b3f9-be59780d464e@nvidia.com> <2f96f1aa-74f2-8ea8-3f43-e4da97400fde@linux.intel.com> <647b1d54-dbd7-ce91-291d-d677ce908398@linux.intel.com> <94861852-29ba-be9e-8c63-a70a01550b3a@nvidia.com> <78e175f3-29cb-f059-427f-51210278c42a@nvidia.com> From: Pierre-Louis Bossart Message-ID: <09bbf14a-a5a0-23c6-d557-66a3af1ac227@linux.intel.com> Date: Thu, 30 Sep 2021 11:13:45 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <78e175f3-29cb-f059-427f-51210278c42a@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, sharadg@nvidia.com, linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org 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" >>>> Can you describe the sequence that you used to start them? That may be >>>> useful to understand the criteria you used? >>> I have something like this: >>> >>> FE1  --> Crossbar -> Mixer Input1    | >>> FE2  --> Crossbar -> Mixer Input2    | >>> ...                                  | --> Mixer Output --> >>> ... | >>> FE10 --> Crossbar -> Mixer Input10   | >>> >>> All these FEs are started one after the other. This is an example of >>> 10x1. Similarly we can have 2x1, 3x1 etc., >>> In our system, the crossbar [0] and mixer [1] are separate ASoC >>> components. Basically audio paths consist of a group of ASoC components >>> which are connected back to back. >> Not following. Can you explain how starting FE1 does not change the >> state of the mixer output then? >> >> Or is each 'Crossbar' instance a full-blown BE? In that case you have a >> 1:1 mapping between FE and BE, a *really* simple topology... > > Yes 'Crossbar' exposes multiple ports and it is 1:1 mapping with FE. > Starting FE1 does configure mixer output. Ah ok, now I get the difference with the N:1 topology we used. Thanks for explaining this. >>> In the interim, may be we can have following patch to keep both systems >>> working and keep the discussion going to address the oustanding >>> requirements/issues? >>> >>> diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c >>> index ab25f99..0fbab50 100644 >>> --- a/sound/soc/soc-pcm.c >>> +++ b/sound/soc/soc-pcm.c >>> @@ -1395,7 +1395,13 @@ static int dpcm_add_paths(struct >>> snd_soc_pcm_runtime *fe, int stream, >>>                  if (!fe->dpcm[stream].runtime && !fe->fe_compr) >>>                          continue; >>> >>> -               if ((be->dpcm[stream].state != >>> SND_SOC_DPCM_STATE_NEW) && >>> +               /* >>> +                * Filter for systems with 'component_chaining' enabled. >>> +                * This helps to avoid unnecessary re-configuration >>> of an >>> +                * already active BE on such systems. >>> +                */ >>> +               if (fe->card->component_chaining && >>> +                   (be->dpcm[stream].state != >>> SND_SOC_DPCM_STATE_NEW) && >>>                      (be->dpcm[stream].state != >>> SND_SOC_DPCM_STATE_CLOSE)) >>>                          continue; >> that wouldn't work. We need to support the STOP and START cases as well. >> > > I meant with flag 'fe->card->component_chaining', which is currently > used by Tegra audio only. Ah yes, this may be a temporary solution that gets us both back to a 'working solution'. Let me give it a try. Good discussion, thanks! -Pierre