From patchwork Mon Aug 20 05:11:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10569917 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 20166109C for ; Mon, 20 Aug 2018 05:11:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1027C291FA for ; Mon, 20 Aug 2018 05:11:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0E8862922F; Mon, 20 Aug 2018 05:11:51 +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=-2.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1934F29222 for ; Mon, 20 Aug 2018 05:11:50 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 14D4D26779C; Mon, 20 Aug 2018 07:11:49 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id DCA28267814; Mon, 20 Aug 2018 07:11:46 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 3BC4326773C for ; Mon, 20 Aug 2018 07:11:38 +0200 (CEST) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie2.idc.renesas.com with ESMTP; 20 Aug 2018 14:11:37 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id 65A4B5E266; Mon, 20 Aug 2018 14:11:37 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.53,263,1531753200"; d="scan'208";a="288515823" Received: from mail-os2jpn01lp0148.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([23.103.139.148]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 20 Aug 2018 14:11:37 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7mrN+tM44nXZhFhfGUv5T6cLvo7piwaGNRCAzi8Mdjo=; b=jHDZvXCkbtD0xyM2VtDc+kv4SgxbAZFUeFkXwUalSJfliAuf+yL+OudVsjRORvZwELPWEM4NqXv15755GoaWtdoILcc3dv0cMi2b/sTlVfqj6hi99YNmTMZ5BFDXVP0ag9ZK/p0JyTj0lHTe7BBX/xD2qFPbbTxCtqgK6c37hjc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.130) by TY1PR01MB1866.jpnprd01.prod.outlook.com (2603:1096:403:2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1059.22; Mon, 20 Aug 2018 05:11:35 +0000 Message-ID: <876005vda1.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.5 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") To: Mark Brown In-Reply-To: <878t51vdd3.wl-kuninori.morimoto.gx@renesas.com> References: <878t51vdd3.wl-kuninori.morimoto.gx@renesas.com> Date: Mon, 20 Aug 2018 05:11:35 +0000 X-Originating-IP: [211.11.155.130] X-ClientProxiedBy: TYAPR01CA0060.jpnprd01.prod.outlook.com (2603:1096:404:2b::24) To TY1PR01MB1866.jpnprd01.prod.outlook.com (2603:1096:403:2::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 260d2fc1-4fb7-4daf-9616-08d6065b66ff X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:TY1PR01MB1866; X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 3:elCi7VErZdphjF1LIG1R4OLQfMMaFV3PdOdEtAvs3fwLasXgi1YD/fmbkMEFmganzaJ/45wDEunnDN/M1NQCuzFIdkqnjvdSogp6ppZKpr8OGLWF89ZMC3ARf7KfS+icmP+FKyd8sa/72PcX+0LsZnifJCxjS9NQJLy54H4i/+Gv6KzecggOVI29NWZr8gB+qCVTaafASjgwBZAU6Tzg2ab0c2Gkpw0Pt2AJP+ghKmjgyvkzb2vLkk2fRbVr/lD9; 25:tYM6qTgkmybGo1ritVbOYnbqXPiC/1PKM5q5m8WrNUq1mhsTK7dmTbOYEU9IrPW8udEcAH+/Gc6L11fgPxn1AnoJY1YPPE0jzVxFXkzvmCG6WH7A5gXV8zh3NbNAOg1BUHcXLd7IR8UYLGc5f9kWPkyXYP+DZyZRmuvsBvp0dp6hrDMfS0DTUNarmvw8OlDNNADP0AI3U3Ocg/swGDWCnMUbU03xlBI+2mvRzRbyjzx9lYZz5IMPYMaa/xeVXZgqkU0+iObGDiWxMSf7wxyc41MXb/XmDzSXJPVoVRkFQqbwngSgh3USa5seKY/TqY5zuDatcSF4LOaWkPBQlynPKQ==; 31:65N87OIeGoonNPSqCUgS3RMHh6oalWf8dJjVlcQGGaSGTGpRGAjJKNqe8RMRKtvIHI+OO7NOoJGvxuMMmSc/lE1migjT5eYMroNIJNEjx38Hz08H2ZVnnBtZJbDwNXZGiZ7qM5Nt6N8EIIGJUT+pWdfIPMlMfS81JuBRUS0kLPSTJRHhw1JG57+xCOr/hWOBjme65jEE0KvHs4MmebINiSym4ebEZ5MgpwndNGMG0JE= X-MS-TrafficTypeDiagnostic: TY1PR01MB1866: X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 20:4xfySeEdpM6vOIzEW1lMLVNo88TPFop00xAB5Xmz/FxMIBk27J67mTIq5fRvXmHFmaZaqhHgKCwtNVxmuqQPLVeGY+NYA3wAZGLvhhKQgXOuqIGHZn++zRpQtvLX32QFNX2zBQh5PwWc5JGAffhvMSTzzmLLpFh6O5vruJH+xFyyr5MVwpKXnnKzE9EOWDlJAwx1Vt+COLQk3jkd8Lii3b46sZlt84JXIsMLNk5FqyAR2/iRhpRzGHQTYqX47oRbP11zpcsiQjUUJlxs3nicOvj3GSXcALrB8BOFdFT4bJ/6y4Q0Y4IF9bIv7TquviP1S7JhVfhxQnKa6ENBFSUoM15yhcfowPlpNEQSDxniV1nQyd7pX+u0YYT70BOw/8m/kv0z4f0JLw3G0/OdKymFCEbnT4BQNkTZWsGIZ57DpoXf0uVzw3kgJSG9T4M2MTCn9xjyPLrsp3QfibKIgxik7Q1LReprnk4KDomH7IqrDmr1rE9chDuHvYTIZ+Ahp2OB; 4:py8TAkhW/XMRViHPcTqIVyYs0ruuP6583jPyQcNk0JyedfEaVoRZRPJq3LPMJmJX+4Q3tDheHrOzFPsiEJ+h8vwVrhqiTb3Ft8HR96lIgc8xFzRgNuhJkf2KtRP2a/30u4imGISybhImcTpJsBOgFjzuPtApua+Lu7SVv7m1eEFaIKM2dDocqD/dC7Yr1K/ITlUpdP5aPPiF4GxQklKC1RXFKMT60ureqe2/1We3v74oTSN9hbSZ6A1BEhaxAP/WANNCq2m/tCXEGEMi5l3z4w== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231311)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201708071742011)(7699016); SRVR:TY1PR01MB1866; BCL:0; PCL:0; RULEID:; SRVR:TY1PR01MB1866; X-Forefront-PRVS: 0770F75EA9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(376002)(366004)(396003)(346002)(136003)(189003)(199004)(7736002)(386003)(478600001)(58126008)(26005)(16586007)(16526019)(53936002)(97736004)(76176011)(6486002)(6916009)(186003)(446003)(956004)(11346002)(2616005)(316002)(47776003)(305945005)(5660300001)(476003)(2906002)(66066001)(8676002)(86362001)(81156014)(81166006)(23726003)(3846002)(6116002)(25786009)(4326008)(486006)(36756003)(52116002)(7696005)(69596002)(8936002)(68736007)(105586002)(53416004)(50466002)(106356001)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:TY1PR01MB1866; H:morimoto-PC.renesas.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; TY1PR01MB1866; 23:v4NcDEk6p0dqoDXxCLPOoVHNolCy1sQwldnKddrMR?= Sv4qDGdpM+5JF7bJux3byr0f5H/RQ4xzzj8OxMYNBzJ30r5USJ3ZZYWKsOsoG3EZZJZ7AP3oq9algFEX2x7h1se87C/qJKcjZUifuhOl/SwwXJkNPYG+uxRa7XkwfFKNy7dWDr+aTqBFklIPGJ00k567CRQWyWMSA6P4vtPvBXksZ3RejryYVKAHqa+l+mymXtZpRaRX2J2CAes1m0wR3reV6eRQ7tDB8AH/BmI9WnVrYmm1dmbcpNrjstEX7R/uC8jAU6De12GiQIws9LhqO4O0ww+fOpsBjzs8sw+5662ne8cLJu3vM5b0XuxYq5FBYHbpkcwTdJDVKDo/6lyWuEi21r+EFoL1OvljRpXtg6jo6NlZKulKZiZKm/QCzH4OuZzHnO+pcjvvHE845YCzLRkxmgTkBIedQEFfQ6/1ypQMTafBc0hWpTCnfGh/MhXqJWCwwnWhoD32gWucMrl/wF4ancClfR8RW/EHA9fXT8iLi6IlcrvsBCEQnSUVBTZUtTn7F2cBdzT/4mc7g7ahd5fir/GMK7OMHMO22oJUDPTxoliD+rHQ+zrNHbFI8h3d44j23d34LUynP0TyeVjOehm/2XepNK1ZxtJA0wKuuwY4U0rnNZFerFl/I0mwP2DiMFAZlHZ7Ig3y4UH5Q7VNqfU2XnBSucooV8Qb/h9eezil5mE1L6VKs37Lsznn9THvupkvt1RU1fN/zM9Dp5usJLLcnK87CmQs5KhRg1X6/iu/m+evz4mpSWIQjdTYfWUEgxV9LBY/7Ajw4eB+MINVbFOV2y6dznUUbSpbQDfDB491da0Uedt5YJJjdhROp7923STIXAa/yIdZae2SjlAzUWde2MYZWJURtR/6A0vVfALLa/OtjFTCUG1LYx7PQHE65lUJc1igomQGe30xIh25oH72Qvrdn5FXbB6E9u4OtBtyW28asa6LKE60rbBiw4KSPnca35GVJGu3yIudDenrzqLX+RrDZWPDUYB1ZOLmnRoTTeSXPJRoCgUjpuVfgE3bNM8qVFM4SyUf2t6X0CbyKwv/XusILPQEvBuAwzyn/y4tpwIJTcjQI1cJ0lRhxKsfR4XW8lSJ1O3XEgIJY8bO9Zk5XooWbIeZtcHJ0HpgLiIy99yFNsfDsFhZJkdlCbhrKY= X-Microsoft-Antispam-Message-Info: 51WbCaUxVFRfPMyTWNRVT9RsZpx5cqIoP4f5bjKUZTAQaPlSRP+zZ+G8BEczZfa3KA3z1Kn1iVUYTq2Q//MPlI0R1IW1zmV+oTxQdXGM0rV4oAuqN2UKrUhz0p/fso+UFkfHhVzAXKr9+hYohfnL+5+tXZkvEJwhXh7Njdtiy9kRwwULMYRLgGXPL/Sh2BsQNIOcVa80Lwv+87tVqz7FJUVuRVSuM6Z8wuftgVBItCtzKF3rPMFZooLBUW+DYWUxuvXtJkMAqmnc3tuBrLYHMPf6bgP26FT6mI4dINGuHaoKzYbgGsiUBDMPznOE7Gd1OfMcBA9ZbBneaQT/itYikMOUCA7PcFKtgNwLYmq5gho= X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 6:6JH8lvlA9Qzne+aLLwn/MeavYX5ouEZ8X+xFyf/C9Dfw6YtC3QS6MsbWDbPjloeZHGr9sLGoJY8rMm2aKKTKg+iizc2Z2XWeCTdWYdOdnCCxQGNmYllSw963q1TtO17aP9fA+kAu/Rc2sPeUkNHJb1NHy+mbgx1na4Jg6OGP23++5ZMbcaWpRYei7Tcv357YpudgzmZEDwwIA3xCzIsr+WEWztBg9jFzX5qArFhdlRgTiisBOrvx2yiWvDFyvN+YkNdVV7ZH0flJfomRW6SjCzxM4Pv22r+8XpZdmBw2hkJD/mH2pcrHdoA5eOn2nr0mpPZPo332q1IMBbSCP+NQmtQmKTcXYxoP96wdA38mu53RGzjRRbSsczek7lUtbD1lX7PChhc2jzpzF8qmpymRUzoYAfFdyRVYGgr+7pNwkDMCFqKI6CWncmK1bC8qM6vhKXTdOTj3YKkWPG3IAaxkYw==; 5:FsEq830LFy4P9gVu0oSG+5nnVUTwwjcZ5sXyBrg8wgZaXZ+nY0r+N1scUrKJ0Et+LNpeXgM4+eJoAxlLDkxfxpA3F/jUU65SdVvGMXjlF1FgtCJBDgJIbCnikp89ef3MKEuN615UFMUZsG2K8I6rPz9bR6nwTy5OUEXXfLCPpqs=; 7:x1Z7e9Uxy3ZWc8PsaXsN1pjauwWx4JDYAssGTNnzqvnhtxBHM8elSDYFRPND8KVoa3E1iK8Madql+Sk6GTJLmM5Ehld4mYfzz7otTutd8+3BxnBSTdZqb8QUJ9KJh7JulRYa+JA0Wm4PeHHPVjDWGLfJBE7ALR7r2C7I/od8ZX3hjibmekRq4SwWzQPwHchMzr+O3xzQ4HYHbWz0XjPLbOElRMzl7wOgs8Vb6kBF63SieAN7CQvjPtEd1FG4Zyt8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 20:8pY/+Lz+6AIxBz/kSixvikbb3GpP575XTcAcge0UcSmNGeGbZaJY4E6H46UIfcYuJJJ4Nl+EM4GR0VKZfqc/BDKGCUgH6+08HymCYaAKAEEXt9LbiC5esu0qh0OFHtdYTtHILIJTfBmnhm7el2vFG34bCir6OnOHCvrVn9+kpD8= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2018 05:11:35.8840 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 260d2fc1-4fb7-4daf-9616-08d6065b66ff X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB1866 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH 02/15][RFC] ASoC: simple-card: support snd_soc_dai_link_component style for codec X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 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-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Current ASoC is supporting snd_soc_dai_link_component for binding, it is more useful than current legacy style. Currently only codec is supporting it as multicodec (= codecs). CPU will support multi style in the future. We want to have it on Platform too in the future. If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component style, we can remove legacy complex style. This patch supports snd_soc_dai_link_component style for simple-card for codec. [current] struct snd_soc_dai_link { ... *cpu_name; *cpu_of_node; *cpu_dai_name; *codec_name; *codec_of_node; *codec_dai_name; *codecs; num_codecs; *platform_name; *platform_of_node; ... } [in the future] struct snd_soc_dai_link { ... *cpus num_cpus; *codecs; num_codecs; *platform; ... } Signed-off-by: Kuninori Morimoto --- sound/soc/generic/simple-card.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 64bf356..dd67516 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -20,6 +20,7 @@ struct simple_card_data { struct simple_dai_props { struct asoc_simple_dai cpu_dai; struct asoc_simple_dai codec_dai; + struct snd_soc_dai_link_component codecs; /* single codec */ unsigned int mclk_fs; } *dai_props; unsigned int mclk_fs; @@ -234,7 +235,7 @@ static int asoc_simple_card_dai_link_of(struct device_node *node, ret = asoc_simple_card_set_dailink_name(dev, dai_link, "%s-%s", dai_link->cpu_dai_name, - dai_link->codec_dai_name); + dai_link->codecs->dai_name); if (ret < 0) goto dai_link_of_err; @@ -363,7 +364,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; struct snd_soc_card *card; - int num, ret; + int num, ret, i; /* Get the number of DAI links */ if (np && of_get_child_by_name(np, PREFIX "dai-link")) @@ -381,6 +382,17 @@ static int asoc_simple_card_probe(struct platform_device *pdev) if (!dai_props || !dai_link) return -ENOMEM; + /* + * Use snd_soc_dai_link_component instead of legacy style + * It is codec only. but cpu/platform will be supported in the future. + * see + * soc-core.c :: snd_soc_init_multicodec() + */ + for (i = 0; i < num; i++) { + dai_link[i].codecs = &dai_props[i].codecs; + dai_link[i].num_codecs = 1; + } + priv->dai_props = dai_props; priv->dai_link = dai_link; @@ -403,6 +415,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev) } else { struct asoc_simple_card_info *cinfo; + struct snd_soc_dai_link_component *codecs; cinfo = dev->platform_data; if (!cinfo) { @@ -419,13 +432,15 @@ static int asoc_simple_card_probe(struct platform_device *pdev) return -EINVAL; } + codecs = &dai_props->codecs; + codecs->name = cinfo->codec; + codecs->dai_name = cinfo->codec_dai.name; + card->name = (cinfo->card) ? cinfo->card : cinfo->name; dai_link->name = cinfo->name; dai_link->stream_name = cinfo->name; dai_link->platform_name = cinfo->platform; - dai_link->codec_name = cinfo->codec; dai_link->cpu_dai_name = cinfo->cpu_dai.name; - dai_link->codec_dai_name = cinfo->codec_dai.name; dai_link->dai_fmt = cinfo->daifmt; dai_link->init = asoc_simple_card_dai_init; memcpy(&priv->dai_props->cpu_dai, &cinfo->cpu_dai,