From patchwork Tue Feb 12 18:03:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sylwester Nawrocki/Kernel \\(PLT\\) /SRPOL/Staff Engineer/Samsung Electronics" X-Patchwork-Id: 10808497 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7F98D922 for ; Tue, 12 Feb 2019 18:06:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6DE322C361 for ; Tue, 12 Feb 2019 18:06:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 612CA2C3B4; Tue, 12 Feb 2019 18:06:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EAD582C361 for ; Tue, 12 Feb 2019 18:06:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726975AbfBLSE5 (ORCPT ); Tue, 12 Feb 2019 13:04:57 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:44108 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730894AbfBLSEx (ORCPT ); Tue, 12 Feb 2019 13:04:53 -0500 Received: from epcas1p2.samsung.com (unknown [182.195.41.46]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20190212180450epoutp047d61cdca3b165f86d59c697219bb1dac~Cr-V410rP1944219442epoutp04N; Tue, 12 Feb 2019 18:04:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20190212180450epoutp047d61cdca3b165f86d59c697219bb1dac~Cr-V410rP1944219442epoutp04N DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1549994690; bh=hDFH6nAvYV0mV9T/urICuXj+l++l2fNaDp5UXV8K44s=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=ovhNKDzxmUvfKwcRFq3Dqye0wU3fQKkDBuPwwpQhl68IP2MOPurCPVLMwPxxtfzxr 68Ngass5aX08ACHY23DT3nbf5ZCwbp0hEO/TfKKuFl6x8kk1AjuPHbxFMCUU1Ppqs8 YzOxOBXqj/g8ERljkUK/WAtyQJtlzsxa7bqqmmmM= Received: from epsmges1p5.samsung.com (unknown [182.195.42.57]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20190212180449epcas1p24f41ae3d67b8e495f616c010fee0e18b~Cr-Ur2knH0550005500epcas1p2v; Tue, 12 Feb 2019 18:04:49 +0000 (GMT) Received: from epcas1p2.samsung.com ( [182.195.41.46]) by epsmges1p5.samsung.com (Symantec Messaging Gateway) with SMTP id 28.7E.04206.1CA036C5; Wed, 13 Feb 2019 03:04:49 +0900 (KST) Received: from epsmgms2p1new.samsung.com (unknown [182.195.42.142]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20190212180449epcas1p232598bff05255c7f9c582a16b27797c7~Cr-UZ2QE_1433014330epcas1p2F; Tue, 12 Feb 2019 18:04:49 +0000 (GMT) X-AuditID: b6c32a39-d7dff7000000106e-bc-5c630ac1dc83 Received: from epmmp2 ( [203.254.227.17]) by epsmgms2p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 21.11.04015.0CA036C5; Wed, 13 Feb 2019 03:04:48 +0900 (KST) Received: from AMDC3061.digital.local ([106.116.147.40]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0PMT0024XRJ2FB10@mmp2.samsung.com>; Wed, 13 Feb 2019 03:04:48 +0900 (KST) From: Sylwester Nawrocki To: broonie@kernel.org Cc: lgirdwood@gmail.com, krzk@kernel.org, sbkim73@samsung.com, m.szyprowski@samsung.com, b.zolnierkie@samsung.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Sylwester Nawrocki Subject: [PATCH v2 03/21] ASoC: samsung: i2s: Add widgets and routes for DPCM support Date: Tue, 12 Feb 2019 19:03:24 +0100 Message-id: <20190212180342.32040-4-s.nawrocki@samsung.com> X-Mailer: git-send-email 2.20.1 In-reply-to: <20190212180342.32040-1-s.nawrocki@samsung.com> MIME-version: 1.0 Content-transfer-encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNIsWRmVeSWpSXmKPExsWy7bCmnu5BruQYg83t/BZXLh5istg4Yz2r xdSHT9gszp/fwG7x7UoHk8XlXXPYLGac38dksfbIXXaLw2/aWS0urvjC5MDlseFzE5vHzll3 2T02repk8+jbsorR4/MmuQDWKC6blNSczLLUIn27BK6MnfduMhYsFKr43vSQpYFxLn8XIyeH hICJxKmPT1i7GLk4hAR2MEpMm3iPDcL5ziix9GwbC0zVlPXd7BCJDYwSS163QlX9YpTY0P6H FaSKTcBQovdoHyOILSIgJnF7TiczSBGzQAuTxJy5S5lBEsIC4RILZj1lArFZBFQlVq09wAZi 8wpYS1y8/5gNYp28xPnedewgNqeAjcSzhd9YIGoEJX5MvgdmMwPVHLzynAVkgYTAETaJsydX AjVzADkuEt8PakKY0hKXjtpCjKyW2LW9mxmivINRouXCdmaIhLXE4eMXWSFm8km8+9rDCtHL K9HRJgRR4iHR+HopE8TD/YwSb/88YprAKDULyUmzkJy0gJFpFaNYakFxbnpqsWGBqV5xYm5x aV66XnJ+7iZGcJRrWe5gPHbO5xCjAAejEg/viqNJMUKsiWXFlbmHGCU4mJVEeNOYk2OEeFMS K6tSi/Lji0pzUosPMUpzsCiJ8653cI4REkhPLEnNTk0tSC2CyTJxcEo1MBp5zOZr2deddrii aRtv2aQZL46sTWK8v0U+R3GOzueZG3umb7ma+/Xw5WMcKZuDT4Q5um/0r2bbylu2cmN2/7np fR/OXXntFsjf1a3UZcss7PWza+/sgAN/dl2JWOK38KDVhv/n1vNl3HS7un5O/5+JvxanvNcT ZEjfv7qlaK7U0Q9GbpNW+SgrsRRnJBpqMRcVJwIAAoQpnO4CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFLMWRmVeSWpSXmKPExsVy+t9jQd0DXMkxBpuXm1tcuXiIyWLjjPWs FlMfPmGzOH9+A7vFtysdTBaXd81hs5hxfh+Txdojd9ktDr9pZ7W4uOILkwOXx4bPTWweO2fd ZffYtKqTzaNvyypGj8+b5AJYo7hsUlJzMstSi/TtErgydt67yViwUKjie9NDlgbGufxdjJwc EgImElPWd7N3MXJxCAmsY5T4PWcDM4Tzi1Fixrtz7CBVbAKGEr1H+xhBbBEBMYnbczrBipgF mpgkdt2+CFTEwSEsEC7x94gdSA2LgKrEqrUH2EBsXgFriYv3H7NBbJOXON+7Dmwmp4CNxLOF 31hAWoWAaq5ssoUoF5T4MfkeC4jNDFR+8MpzlgmMfLOQpGYhSS1gZFrFKJlaUJybnltsVGCY l1quV5yYW1yal66XnJ+7iREYwtsOa/XtYLy/JP4QowAHoxIP74qjSTFCrIllxZW5hxglOJiV RHjTmJNjhHhTEiurUovy44tKc1KLDzFKc7AoifPezjsWKSSQnliSmp2aWpBaBJNl4uCUamA0 OrdCk7v7pOmuHj9XP8+tVy2KCpT9lj4W/L1vjVkBi7oS++mNlyakPL1gdPRry46pbqtuiPUL fT1Y/NtWWO7ilgfrd7F93jrz0ePCLNddUoesqkSLpe/Z7riaGW32MyFjHY+26A/JrPJnmqey XK5u6H8f5i+s12r94/OEr6szJVYIdAdv3NmhxFKckWioxVxUnAgAEp2RF10CAAA= X-CMS-MailID: 20190212180449epcas1p232598bff05255c7f9c582a16b27797c7 CMS-TYPE: 101P X-CMS-RootMailID: 20190212180449epcas1p232598bff05255c7f9c582a16b27797c7 References: <20190212180342.32040-1-s.nawrocki@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds DAPM widgets required to model the internal mixer of the I2S controller merging audio streams from the primary and from the secondary PCM interface. Signed-off-by: Sylwester Nawrocki Acked-by: Krzysztof Kozlowski --- sound/soc/samsung/i2s.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index fffc76ab60da..29bcfca20572 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -1116,8 +1116,31 @@ static const struct snd_soc_dai_ops samsung_i2s_dai_ops = { .delay = i2s_delay, }; +static const struct snd_soc_dapm_widget samsung_i2s_widgets[] = { + /* Backend DAI */ + SND_SOC_DAPM_AIF_OUT("Mixer DAI TX", NULL, 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_IN("Mixer DAI RX", NULL, 0, SND_SOC_NOPM, 0, 0), + + /* Playback Mixer */ + SND_SOC_DAPM_MIXER("Playback Mixer", SND_SOC_NOPM, 0, 0, NULL, 0), +}; + +static const struct snd_soc_dapm_route samsung_i2s_dapm_routes[] = { + { "Playback Mixer", NULL, "Primary" }, + { "Playback Mixer", NULL, "Secondary" }, + + { "Mixer DAI TX", NULL, "Playback Mixer" }, + { "Playback Mixer", NULL, "Mixer DAI RX" }, +}; + static const struct snd_soc_component_driver samsung_i2s_component = { - .name = "samsung-i2s", + .name = "samsung-i2s", + + .dapm_widgets = samsung_i2s_widgets, + .num_dapm_widgets = ARRAY_SIZE(samsung_i2s_widgets), + + .dapm_routes = samsung_i2s_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(samsung_i2s_dapm_routes), }; #define SAMSUNG_I2S_FMTS (SNDRV_PCM_FMTBIT_S8 | \ @@ -1129,6 +1152,7 @@ static int i2s_alloc_dais(struct samsung_i2s_priv *priv, int num_dais) { static const char *dai_names[] = { "samsung-i2s", "samsung-i2s-sec" }; + static const char *stream_names[] = { "Primary", "Secondary" }; struct snd_soc_dai_driver *dai_drv; struct i2s_dai *dai; int i; @@ -1158,6 +1182,7 @@ static int i2s_alloc_dais(struct samsung_i2s_priv *priv, dai_drv->playback.channels_max = 2; dai_drv->playback.rates = i2s_dai_data->pcm_rates; dai_drv->playback.formats = SAMSUNG_I2S_FMTS; + dai_drv->playback.stream_name = stream_names[i]; dai_drv->id = i + 1; dai_drv->name = dai_names[i];