From patchwork Fri Aug 31 03:08:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10583145 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 3E4651709 for ; Fri, 31 Aug 2018 05:35:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1EFE82B637 for ; Fri, 31 Aug 2018 05:35:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 10E032B66B; Fri, 31 Aug 2018 05:35:12 +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 F0E732B637 for ; Fri, 31 Aug 2018 05:35:10 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 5878D267946; Fri, 31 Aug 2018 05:08:59 +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 B7F77267945; Fri, 31 Aug 2018 05:08:57 +0200 (CEST) Received: from relmlie3.idc.renesas.com (relmlor4.renesas.com [210.160.252.174]) by alsa0.perex.cz (Postfix) with ESMTP id C4A46267955 for ; Fri, 31 Aug 2018 05:08:53 +0200 (CEST) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie3.idc.renesas.com with ESMTP; 31 Aug 2018 12:08:52 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id 0A2F57230F; Fri, 31 Aug 2018 12:08:52 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.53,309,1531753200"; d="scan'208";a="291133007" Received: from mail-os2jpn01lp0148.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([23.103.139.148]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 31 Aug 2018 12:08:51 +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=HTX4qzJ+w3HtryjAvwZo78K1znlwn4IetVl3b4CQXA0=; b=Hgdmcd9bkGfPF0PHItxbmCPKmHUTeFRksCgbwVyakSAoTQzSjb7LudruIebqgn0hpJPpHcl6LCy1/9Cwl7T9z0MgkZHQsMJ6xGnrmOFEM0SgJSKegH4OCRjJa2Wpn16zswdLfQhc6aJSYnrYS1DfxWW9WYMeES7ZJLY4Yk5nE+0= 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 OSBPR01MB1863.jpnprd01.prod.outlook.com (2603:1096:603:2::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.14; Fri, 31 Aug 2018 03:08:51 +0000 Message-ID: <87y3cnkzmb.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.5 Mule/6.0 To: Mark Brown In-Reply-To: <874lfbme8u.wl-kuninori.morimoto.gx@renesas.com> References: <874lfbme8u.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 31 Aug 2018 03:08:51 +0000 X-Originating-IP: [211.11.155.130] X-ClientProxiedBy: TYAPR01CA0097.jpnprd01.prod.outlook.com (2603:1096:404:2a::13) To OSBPR01MB1863.jpnprd01.prod.outlook.com (2603:1096:603:2::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 06fdd40b-672e-4d51-6dba-08d60eef13c6 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:OSBPR01MB1863; X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB1863; 3:mP549Z/TUzanPx9R61tOuM9EJD+r0tHX7uxfdLlbAp+LJTya+GYyloEBSlSoHO9tEaY5tzAoLRUvXHrXlmhSYZqBCgp3O5hRfn7asJHWT36Rs1lH/btMqxW991jc21gTpYvYz53o3C4M2C/rQLxUQIuKKWXQdWtIsHesdTOkWYEGHkdU72BLuaECTQkYdeuoDY+eso0r6+WGXYPD9avDc7bsRe2YVfLS6ork7rRl6srr40PVKfpbJ2ouqA5lbjxJ; 25:X0SsEH3hs3axn/PUfa5gGKX+9GEg6u/Xvvc0W54vYbeoH5g3+JLym8L8WP3ZF90ZT8VPYoTr02JAHCc3m+ueWzuEGaEAsfu6UKBV9GHW8MsS8z9SSm3aZ4r9P+IOQ+y8471zSW+Y/y9TNtoTL2oBkfDntLKXP4YKDNCgHxUKAIhwr3ttrWCGOE5B3ozmABkEVxY/v4ObS88e/LWGbjnJSQTLylygy7uUVBGHFWeFMNcMgLnKFJ9+z5ZtZqnCEEGDt+izn3c/D0nvj0IPgK5TGIMzPYzXhlNnxURqIF6WK+ppnQZNUrNVSBb8xzKzGQb8jRzavpF5Vt+a9MKk4hRbZg==; 31:29iaaJv3Kfa92HAFQf0eK45dDR9+3Rh5RTLogNLkc+zSfgYgmaBfWWa1PcaPXTlBAuAoF4/JI3EPKo2AZLvBx6VaQmmzjntFyydAlqP1GjJhamc0av/ZToITQmXjqk2AiGErYwA/4j+Oslu4FBZRuwvvpiMI2XLhncrgZcO9P4xyjV45/l6TcTi1os/OFkRFw3N3ITOSX+HtAsg+NcszFCgR/bavtcjY4IA15g7VjI8= X-MS-TrafficTypeDiagnostic: OSBPR01MB1863: X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB1863; 20:IrDavnLgQQvtezfpL52YeKupV6Gj4j1alaVOYSO6sQdTY0+huGPVN76MKM0AeUF1rGlfJRVCuxKrzC4lLMBCId4ELS8qsDLN0/K6nhgpwDu7MfaRCJkz1SEXMANnGvhfVyB3TJKmJJiH1sbRMaZpHDxjfXuPkmNGXmXM8L/LHE+duLSHCrl7jFFFnMj1NAcR3vFKm16vU89jBA3q9Frrpx1Expp6Qs8MyMh7Hkl8I6ON7dBOpuyAdPiBRZymnzs2aIHLnqz6UBOL9D4fJ5j2IK+HgesOUnDa5H+ah4iF+y5UsrfO1YXia4Wmr/MERgIdAKyv8V/9097DWr54QBuEu9Wpbpnm4UNwHl3DphT5BPAsjgEunNtIwnSWZqfFVYZVcLnm9eAbUHeR1MVU7Pz9M+Al6dFFA9ldVi0DvxH8jMwPLAi+RC9navtjNgFpywM2UkceTUaOEKLm7J17+vCOrNx6N6wMvsOyKnoJ9nUd2K+4zwqGd+kjA2wLAKTKOsjP; 4:gzMzKPGVAa441uETE6kj2wwmYmhK/O2uf7EPvEiC7Sq0+lx33dtMxsEvUbIf3ttfGRjgph1itpFSJVtgKeCeGC7G+JWSTOw5kt3JcuQpNY0Az5w5SsxAuRKNu52Q8FcJYqQnjyBKwBbWD58OiQOId2rTeuyW+J/M9pyYl0OZl6SBhWUJuk5o4ohcM2qIgWO0XrqX/hyS7CCE6qQFf9QXQOJFY8+zBq8PlIzyIm7/iTqPAEI0WOrBGa7iKveBnDOIm/vST2+TxZrB3uv0wwfGXQ== 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)(93006095)(93001095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(201708071742011)(7699016); SRVR:OSBPR01MB1863; BCL:0; PCL:0; RULEID:; SRVR:OSBPR01MB1863; X-Forefront-PRVS: 07817FCC2D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(346002)(136003)(376002)(366004)(39860400002)(199004)(189003)(52116002)(23726003)(8936002)(6486002)(3846002)(6116002)(305945005)(8676002)(7736002)(106356001)(105586002)(50466002)(53416004)(4326008)(25786009)(47776003)(36756003)(81156014)(81166006)(66066001)(7696005)(76176011)(2906002)(316002)(16526019)(186003)(26005)(446003)(11346002)(956004)(2616005)(6916009)(486006)(69596002)(476003)(53936002)(68736007)(97736004)(478600001)(86362001)(58126008)(16586007)(386003)(5660300001)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:OSBPR01MB1863; H:morimoto-PC.renesas.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; OSBPR01MB1863; 23:Oj31OjZffIVZbiRUYx1W6LnTKjEdQ2DwRZJhkpmbh?= ZgJMsUtqKwfybtU0Kl0O2qt2KGlddEeKaRteza22JlqwPpx72nDnSPgxaiRaI0RCqiFn1TXzagtsJcmycWbBGJArLNyFg4kEwfKO4hAkkzzOM3/pOOgRS32Y26G4Ib+Rwe5/9YQjp2lkXRGHqv9ZzwNdvgGCM1YL0blvjBKJy0N0APytL0QdW4HX9kGco7p7J+KYdW61yRlPH+oRU6rKueRZWZOl03AAB1n70IiSWlwl8gsl79aT2kG3RenpAGj1obDeO0dO9UVT3zngX1tHBJg/9AtOv04bptQK8dZYk8Xz/qfQcDOi3GKUH2smMKbpUPDYIiZzdFmDTBAaSJYAKBHZxFMDaiWjQ4VIuCwo2luEBzGiSHDcF6b7RGftgPkg1DiUko7w/qxoeHYvOMe87yE77smTRzBr0bO4DroJcedSPH+pczpxgIqe4dN+YtbQfQBrwAXiOQd+i4U6ARGhYnIaOVqRg6lh26LN4P8wEh1I/n41Y/e1SrLqb3V6I2swa/DRtFofv/KwqKeHWf57QYcb1v8q3U0C0ydtVviUryIkVYEjkcmLlKyObiY1jIkKtNx33EQBtMbyuCUP7wpI65WH5YvQFWgUbA9172rYei5dSQ9grupuU+uqfjom1gsF8kNWRatI02ym76zexduFd8utDi64F6Q7VkZA/dVuvU828BbO4Z0IN3zHvULQvYk4Y5lNj31kw607GGy2MRcP7rOduJ127nzs0kLedR58fWuVF85QDMhySpD+kWFDQEe3U5Y27RxssBVooFlcUTGGJwfLkhUVE+Y8zMHkhj8YDQVobtl03en8dCwK6UorIRRUy4/xW9yABOPbe4x3Xbnk8Ee8JafOfJ0UdZeCSF9kk1BHhgEntWT67H8AJ4N8IMK8HHgyyJS8xu4hQUJ0HHCi2rnmNiaZbkfgleY5qkZuN1mpaPN5P+dylw7NrwJ/Bih9NBECS+1UrN3TdBRPeF8mIdIdY941mM0BwdTsBAN4hjkULAK/oZZdkbtJAL7yui3c8PV4tJtN2Hru+R4Y1lPp53XbolcaxaZ1CfggdaKY2JAzdOkQ0AL1kYs2/jaziIOS56Fds1zhJHFVXAw5oJBXqOoVunzWH/k/nFfk8DdqDocKdyeSYiYdWyxPOI1KiH1eTg= X-Microsoft-Antispam-Message-Info: 4nmGekGoqu+7HvcZkyKJTARjehdi07hM7y2boEDNL6ToUrki3BLJsZrqzBlg+xxmpE0AMzxlWJkHsCH6WQuXNRMYLByTgBMuZa237EiuGgHIXSnDY+8wzIS+KSAcHJSvHbVA1/jmxqGYUGd7QnZkhSqfdN4JUUt5nusyS1x3CWw8F3Jcz7Mqv/h6fP7uTc0A3H1di4e4ciqNd+HQJ8aKRU78GhU4/2Wo0aCbZPckWgBApDBwOyqx2Xooj1gtYvtQHEsxXITkEFw/7kgA9LAjQlNj2/lwdmLglzJ5uYVSoIQ6Nym9pVQgsdbrQl7/oeYfdDjPQLMGGHMKx2OJKWDHyU4zbFK+lH/Tfh1Bus0ESEo= X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB1863; 6:I/IJe83RTZXhKVAGru41Lfaqfhg0eM5BUSFeomrvO7sGk6K604n4JiXc5Cb2OqnHsYwt1wG8FsVTvsY8mLPWPLqpJ6MH1fBAJ5mUxHNSp5tzGpypqYfmjX7o2oPe0GZLixfPN3Nl9foZ5rNiMFez6SnXB8SKT9ueb825wrhpK7OS/zrbeHyoN/fSdP0ZQb2W4y9Uxu5kLEue/R1rME+Uk5emEKsF1ypsdkZGIOftsA9TR+qje/tGvIuJeq1tL/8atzhwzZYxE47X5kOp/0CPFYvF6mNZooSr5grDkOggzbN7IW31HfJ9Gi9eLQ9jxghhBL2w/Wu3k+7hK7BosCMJLE8wvHh5E27frlkHE1GJAwNz/LrkASxfO8RWVARQu81fo6bKRFIOKAxJ3FaIVGRiMtGA8+DSee/Zqq/uCXLDcGzoV+/Uesq9N7Wa2y2VeNfhF6tg/9K/NYENfwfnXgip5g==; 5:Qp2Po/YrngrC1ulNFnSyqEc6lS8ynuBppy3V3FbQOCkfS7H3zzb+iDIz2tmjrh8sQNbb1sFbZMIIov3bCeshetp7C7GF8j7PyAMZTV5jy5fFshLVn8K9la67dIAUCRDqu/eqq7lT7a4lINdpJ7ooWDLGO77q2c/WNWOGGM+oYIU=; 7:HQal3bflIEG94pIeDKQ23yNHS+zDtN+4gx/dv3sIwaHhU4RW1ngx9izJPApJa92+L4GIeR6wlynXid53TosNlGJgdw5bKowMD2fiOrm0kbSbFph0aSpKeFVxzTbdAkNLvkPOgVjyv13e2cocQUdyKpaXhAe4hpljC5HLOl0rWhc/UVMq70iAKyXDnBLh25v6t2Iced9DubRWhD4Kcyi8HtX48ZS/CtB2IdRU3e0ckqcE/m6PRZDUdytV2ZWLY/qq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; OSBPR01MB1863; 20:p+nmtetktKUn63R5/QbekyCiDvqgii9nekZnhiGXE6TP582Yqrp9RqnbFPM8vHBBKHFJSV9vUnfCkyHCMpuB+uhzUGgGYpymb/RUvsUYw4j93rchPpcJ1EDzrYrBdQYa6kOb+iJEYTdRK8eIu9GYSNAPwBkz2v42eNMgRe82XbY= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2018 03:08:51.0466 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 06fdd40b-672e-4d51-6dba-08d60eef13c6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSBPR01MB1863 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH v2 04/15] ASoC: simple-scu-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-scu-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-scu-card.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c index 09be02e..91efc86 100644 --- a/sound/soc/generic/simple-scu-card.c +++ b/sound/soc/generic/simple-scu-card.c @@ -24,6 +24,7 @@ struct simple_card_data { struct snd_soc_codec_conf codec_conf; struct simple_dai_props { struct asoc_simple_dai dai; + struct snd_soc_dai_link_component codecs; } *dai_props; struct snd_soc_dai_link *dai_link; struct asoc_simple_card_data adata; @@ -103,11 +104,13 @@ static int asoc_simple_card_dai_link_of(struct device_node *np, if (is_fe) { int is_single_links = 0; + struct snd_soc_dai_link_component *codecs; /* BE is dummy */ - dai_link->codec_of_node = NULL; - dai_link->codec_dai_name = "snd-soc-dummy-dai"; - dai_link->codec_name = "snd-soc-dummy"; + codecs = dai_link->codecs; + codecs->of_node = NULL; + codecs->dai_name = "snd-soc-dummy-dai"; + codecs->name = "snd-soc-dummy"; /* FE settings */ dai_link->dynamic = 1; @@ -149,13 +152,13 @@ static int asoc_simple_card_dai_link_of(struct device_node *np, ret = asoc_simple_card_set_dailink_name(dev, dai_link, "be.%s", - dai_link->codec_dai_name); + dai_link->codecs->dai_name); if (ret < 0) return ret; snd_soc_of_parse_audio_prefix(card, &priv->codec_conf, - dai_link->codec_of_node, + dai_link->codecs->of_node, PREFIX "prefix"); } @@ -236,7 +239,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev) struct snd_soc_card *card; struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; - int num, ret; + int num, ret, i; /* Allocate the private data */ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); @@ -250,6 +253,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;