From patchwork Mon Sep 3 02:12:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10585341 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 87FFF180E for ; Mon, 3 Sep 2018 02:30:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 743BE297D1 for ; Mon, 3 Sep 2018 02:30:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6762E297EC; Mon, 3 Sep 2018 02:30: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 00155297D6 for ; Mon, 3 Sep 2018 02:30:10 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id BD8E8267815; Mon, 3 Sep 2018 04:12: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 14393267818; Mon, 3 Sep 2018 04:12:48 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id BA74A26779D for ; Mon, 3 Sep 2018 04:12:44 +0200 (CEST) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie2.idc.renesas.com with ESMTP; 03 Sep 2018 11:12:42 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 0E5837368E; Mon, 3 Sep 2018 11:12:42 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.53,322,1531753200"; d="scan'208";a="291355840" Received: from mail-os2jpn01lp0152.outbound.protection.outlook.com (HELO JPN01-OS2-obe.outbound.protection.outlook.com) ([23.103.139.152]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 03 Sep 2018 11:12:41 +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=EAbZU4GUEjoh6YU3IcDXcvweN4wIWqbVCqHasjEExok=; b=I2xrrfsCvj+43zrlfEBq7P9wgoMmDdJAB7LevBL5nDr4BRTaWrFjaY6khb3Ia3s+lunu837ABycU57AVHeI9RaoyUuwyN7K6ExUMYD4axqZ5z2S56Hs9B1epXI4/IYSTmGylS9tIWs5Jxfu1W3dCaQ06qGJ4b3RpFZnlzmW7wio= 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.1101.18; Mon, 3 Sep 2018 02:12:40 +0000 Message-ID: <87k1o3fi84.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: <87lg8jfi94.wl-kuninori.morimoto.gx@renesas.com> References: <87lg8jfi94.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Mon, 3 Sep 2018 02:12:40 +0000 X-Originating-IP: [211.11.155.130] X-ClientProxiedBy: TYAPR01CA0119.jpnprd01.prod.outlook.com (2603:1096:404:2a::35) To TY1PR01MB1866.jpnprd01.prod.outlook.com (2603:1096:403:2::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6c62aa32-1c79-42c6-6fad-08d61142b9e7 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:S5sT1WLQ4//Y7vuDZFcavSLAWjCVE6rujBIBVWPWI3vrxWR1Hxho+emkZITbNMD0qXWu0IA3Wjzb8uZcKXhgBvB14o/IV3dip2jVhzKnSww3cMyCvo5L/3+25axQPiorT4iglJ2XChrGLJLjwk9pMOmF6vzUQnAG3iq8BVRpDqkhCGPGLUPg+Ild2m1qeWrAxYT5yKbNRpIZPfebuhL2b2lHCw8Mwguyg9bXfgs0J+sfqTBt2W0yfBETbxVoCsS3; 25:1Ys113kc/eXYPTIU+2werFVZslzI8qHlLn3ySFPJ+dRaNTvOeDqwMipAH4yGoK6COWhZJEMVwM8mmAq/KNQf697O45RCPVwHLI/v4KcP4m3oDWNXyD2SXrelJuBsOg4GYX4oN9Oivvx2wvfUufXM2RymHqjRs6GlwfpVaTiysegXUfwymjJFzRhgS2ZrFue0R01YDi+JfiIoT7s2ZC8ARixAiynXD556DYYcCqU2/yZ2DYiJG+3+0kGgthOm26wpg2HVof8mezgF1rxC45kqsYP1hRFoxf7FgdLxsr/CzDKR1LDnOtGg/M4LkHLKaw+wcm4chE5hNpnfw7KaJTreCA==; 31:iwg1X2YBvvBW/R/smgXK7AZ8F1WgtWTDMN3KprXGTYQ7H6lYNG4d8qEKxCK3vdy+l10KUMtsA0x2RrZ5RI/ITZEDK6hkalTzZG2F6QKOLddLYoKwXFllUIn6CyRLE3FTyHa4feT4nHqiR+k/t/aNq/KFp+xzUSrqBEh33eExjeSLTwwdMlqDrFvMRz6IZFxiVVI+w4QhWK3ZAfeu/SqlpEKfsGe/dpT/4tKw8bO/BOw= X-MS-TrafficTypeDiagnostic: TY1PR01MB1866: X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 20:LvEY3pqSD1ec+lGvbCfOEyifPuHTbFXbfP6Tk+m0HOPKtY7c8P8daqokTuLrHP98gnSpD24Te7meuZsm3upSmghr2JtA4RgRU0ZA2rRPJfmiPIWtGLS93mRgcFCRKx+zNpb1/GXiJyi86mHtV4l4gfL22D5ORT4H6BofYxZOqRPfofxCu7jZu/lgHb9etzjQQlPjhbBUCHH9dgerowDRAS3gxqrj3iA0dU924+wJhFmWOL42+PRAfEUY4BhUJzg/H0YszToyZ002ltg75rP66/Az0KEVPUv3b/xaulKII6LLdP1tvo4LfImrtmZ7Zdinp7PPE7ak6sAcUs65cDtzq/70r++PUHZqLuZs/QXpwbt9CdmiKYh+kAJ/S/UPklxA6oijntOft8dY8QSTVmhpKlJ2Zi2OUTEPyd0CPeKBorvascXTICOqI9VAUEk+1Cdjm4VixrtHGAB/69fb3Vkm0exULUjLuszI/SND6lwymtnKIvPHIEP5n54u3yJl7kP+; 4:uKcGn2rvKgpfV2f8KgM/dQFbEri0aPHsNdUoF7qpMZ4EAZzwag0opu2SfQ5rssDBn7SZw3X4lEoJZ1bwcXO2Ebu+eI18zLR35sBECV884pqTP83MvQaDv3CAJbzMoCjaB7W/leKspDS/CUmdeYmmOXQEIZNwoy+zQrDp0svBgGZPwv3Xqhdyr/lBgpZzJ3FxK82JbW4q0h1qLCZRM8I6C8hGHqatbA/qPZccTDH3Pow3nu8AZPJMik5Y2kO96W9YBBb1MKwTI71l0oEwY3SIe7j6asHCp1BA/CTgNtHIdP+3BPVJBtXTSXicgvLEHlsx X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:TY1PR01MB1866; BCL:0; PCL:0; RULEID:; SRVR:TY1PR01MB1866; X-Forefront-PRVS: 0784C803FD X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(346002)(376002)(136003)(366004)(396003)(189003)(199004)(8936002)(36756003)(486006)(81166006)(97736004)(4326008)(106356001)(6916009)(68736007)(25786009)(105586002)(58126008)(6486002)(5660300001)(16586007)(316002)(8676002)(47776003)(69596002)(478600001)(52116002)(7696005)(76176011)(53416004)(7736002)(66066001)(81156014)(305945005)(26005)(3846002)(6116002)(476003)(16526019)(2906002)(446003)(53936002)(86362001)(23726003)(186003)(50466002)(11346002)(956004)(2616005)(386003)(16060500001)(309714004); 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:seuur2kCVLCgM0BIWMC7hAvqV7eBtzz7KPqjiOVXj?= 09SJK5LeB1CI6OtrNmEBwCIT52lJontF+ikyx4Kd7csTqvC3y2dXHdtzKR+uXeNgbc90SLMmrtpDSgB6EKxsLxFtr6LHpbYg6YIZcIELzMV5RXMfCJi3fY4P0TnVRkE6VSawxgiPVklARITD/RwO2iV9Ji5cX24/ssDQspvAXb7CvrdJAYVTR9bNDyiN0ncUx3X5jAEe72qq8xH23MHzd5/caB2fV1OiMTk4EkJ8BCaWG0lBQiNRyM632QztQVsBP7a69aZYx/GBHHD0Yxtc3RgqCaY1VFvRXog9gjSSkQFiPP6/f+9xH07OIkQTx+Paa/5RYREgyrHhcs5OI0fN4lb52JfNQDYRdhYiS8C6aLIBMvRTqcPzqdo6IrtQaD6kOawa2AWtkAJYehpqoP5o71WaN16h+TNb6uO8eh6cWn33rLghNgYB2qbuXD6YTWKn0Buenn1VAOFhn9IWN4cNZFQkxZ5PJqmal752750HA+A/bvlS1VJhXmYGVQt7bQMbAt/JSJOtW2gqnaEeLV96dkisppfrtf48GjRah73KWh7+n3yYjr3UfaO0eI3FCu8rFp/UArKIp0SSEH3JJhfWCqGmKu/UFVdXeEd3R46bLZ/e8bLCkNT2gab7WenVAqkhOVTFqwYIaejfGMJl6vihGxBnUxGKtI8mGWcFO0PkuPRkbaHvkXRFvYU4IL46Fpl6wQ4AHrJvFtXOITE7+uFr8lU8QXkY36p00EsJzcPvFUQDrBrKIwepAyQQVFy5pkcDz9Gwy1uFhtfnlOG7dGXYKzNJmxXJ7/BEgoB51YEzvleafiIHeCd0H/ZqJsfgQ+bo7klq8mJ41NBg84CvGMKdVGZ23g7elte5dW99gIocAncyHGbBHctBHd2zLjPnS0FimGv68nl/tv9x9dLRhWL4u3jPhFHpGFNxOSQ+v1yrwKz1Ro2raYF78P4dHVZkty7gCU0aGC8qPzFhWJ3XOtcLLPB5qQg5bjHbhFIef5vD4hsmCOaAQM/tgAjNHInxHLCc8r4vTyGvy2fPoTfbwEQ0g5YK58y3vGQJKQDQEloi4FOcgDC/n+mLej4N0fyCNM/6mqXM6zDWRF+d1XRhN4yDjmmBaj+MCx+5oKIhsgn7GxoIXkQnRiZ8FJKTtv/Ox7snEd+cpBWzi305hphyyWb3wLJ X-Microsoft-Antispam-Message-Info: 6Jlzc4bwud4ZjdIGMKVS0kXcpQfRYaWR6WIae87bzC8+QwoMTOBSHRf+MBtY2/ZcbhW1+RwnvBjEV8hbXYnAHQwYexzCCmgUMdOp9mnAzIHFw/CFeuw/vr2udUJXxXbD6uGLrDRhboX13/Ot3fH/TSOGaBUv7bUo1zEFsq/C6Bbl0dHCibmmy5zTQnvG5OqlW6BmImEDV8D0djHYsVpkQgKnHpdXdNT3YGcC4+UgXpXcmZxYjHQJTTUrJgM48rQ9bVHMdkHetA1ZT4grrCH6R5+RL6D90fYOJ5TDaMTstu2V67Y49S3jV6m2L606QwqNtYw5poQ/499Q4ikiHh5JSfLljNG1+cOunz48DTQcJWs= X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 6:EXM4o+57vwiIMf+ZV/5bNuUCdNAIkzGC4F4qZCUvwIxfO6OObUV+vPkTvVVUV1qlzavHP20hskboz86Hu8wszvmBE64+VfM27FIH3wfCCVDpD8MPeEyQWKww6oaEfAOVH8ChM5xTEQkURhbuG8qhnl3I3huhxaJ6obFRrzbnS2E0JTIg5/Dlfuu/ubIYFKMTxhAvy+hQBBBZbmO8H/L2mSdNj4ea8qPnBCCOkjz1wu/hLOETG2eu3+5+XKk7uM/Oif7sMu+ZYItogmJC3UsdacUpwurIH+txC6mXqvvS/i8ZQAUyEp6zPnp1iONYjrGpiC3h3VIZwQbirbPb9QCrnBUD4/L8s/FKi/XBhf6klSoj6Yilhdsd2ZinMOUKq6+sOA4IvtUIpjJ/ZBMXtAenl0rpJzBWbvxfCoYMi90Jvcfs6p/f9jmRg1LS6Mad0q7iloXLueCNrrLgtsoHhcV3Lg==; 5:G1nYMWVsTz1SBnbfy5kSzd0zausd67ywOeCPH6rvY3+xxzlw2hpR+Ng9KBI6mDUrgSbXkUVYRxjQUasPILDjc5efaa2OjR27W+KVfpq11g67SwlNUvI1WcgmWlUJdtIL4ff7xFxKCicWyo5CldlvUqek1/ciQ5id7CvPXWAt4A4=; 7:e4IRWkEynmMOHtepGj+wvkqWC4uHXOHb3TWtWViXAiCD4MrJvtSIqP2xhhxuUkjocqJxSyTinh24x6Hpu5mTdnw04c4QXOGMzRmKVP6RIwbSij6z3N44U+FTc0xEN/iLMJPOLIhpLXzUwMDV6AXgaIjCH3punXqN1m31DAoxWvC7z/dNWGHizBHgam2pJEHnN2lwDuYAsKcyb5GkmM5eUxTO1f6+YetJornackZAuH+lmjKNxTte9zK8Uhs1f4rT SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB1866; 20:mrYopsfmJ2DOCT+auPbSWau9ccJ5IS3rHGIesdTWf/aFlH7cbi4c3CsQgo8oLGtbRjIoQEbo5NAilzEZVKN+ooxXaeFeqpyopgqT0qbshNYTV5Nt1mGtHaKwOvvjekndL4Vv5Bv4C2LyEJk8lYgKzWOrmvwlaYil9SyxeZTF4R8= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2018 02:12:40.3188 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c62aa32-1c79-42c6-6fad-08d61142b9e7 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 1/2][RFC] ASoC: add for_each_link_codecs() macro 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 ALSA SoC snd_soc_dai_link has snd_soc_dai_link_component array for codecs. To be more readable code, this patch adds new for_each_link_codecs() macro, and replace existing code to it. Signed-off-by: Kuninori Morimoto --- include/sound/soc.h | 4 ++++ sound/soc/meson/axg-card.c | 5 +++-- sound/soc/soc-core.c | 17 ++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/sound/soc.h b/include/sound/soc.h index 96c19aa..ce42c57 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -978,6 +978,10 @@ struct snd_soc_dai_link { struct list_head list; /* DAI link list of the soc card */ struct snd_soc_dobj dobj; /* For topology */ }; +#define for_each_link_codecs(link, i, codec) \ + for ((i) = 0; \ + ((i) < link->num_codecs) && ((codec) = &link->codecs[i]); \ + (i)++) struct snd_soc_codec_conf { /* diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c index b76a5f4..3e68f1a 100644 --- a/sound/soc/meson/axg-card.c +++ b/sound/soc/meson/axg-card.c @@ -97,14 +97,15 @@ static void axg_card_clean_references(struct axg_card *priv) { struct snd_soc_card *card = &priv->card; struct snd_soc_dai_link *link; + struct snd_soc_dai_link_component *codec; int i, j; if (card->dai_link) { for (i = 0; i < card->num_links; i++) { link = &card->dai_link[i]; of_node_put(link->cpu_of_node); - for (j = 0; j < link->num_codecs; j++) - of_node_put(link->codecs[j].of_node); + for_each_link_codecs(link, j, codec) + of_node_put(codec->of_node); } } diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 2a73630..5bc69a3 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1071,6 +1071,7 @@ static int soc_init_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *link) { int i, ret; + struct snd_soc_dai_link_component *codec; ret = snd_soc_init_platform(card, link); if (ret) { @@ -1084,19 +1085,19 @@ static int soc_init_dai_link(struct snd_soc_card *card, return ret; } - for (i = 0; i < link->num_codecs; i++) { + for_each_link_codecs(link, i, codec) { /* * Codec must be specified by 1 of name or OF node, * not both or neither. */ - if (!!link->codecs[i].name == - !!link->codecs[i].of_node) { + if (!!codec->name == + !!codec->of_node) { dev_err(card->dev, "ASoC: Neither/both codec name/of_node are set for %s\n", link->name); return -EINVAL; } /* Codec DAI name must be specified */ - if (!link->codecs[i].dai_name) { + if (!codec->dai_name) { dev_err(card->dev, "ASoC: codec_dai_name not set for %s\n", link->name); return -EINVAL; @@ -3798,10 +3799,10 @@ EXPORT_SYMBOL_GPL(snd_soc_of_get_dai_name); */ void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link) { - struct snd_soc_dai_link_component *component = dai_link->codecs; + struct snd_soc_dai_link_component *component; int index; - for (index = 0; index < dai_link->num_codecs; index++, component++) { + for_each_link_codecs(dai_link, index, component) { if (!component->of_node) break; of_node_put(component->of_node); @@ -3853,9 +3854,7 @@ int snd_soc_of_get_dai_link_codecs(struct device *dev, dai_link->num_codecs = num_codecs; /* Parse the list */ - for (index = 0, component = dai_link->codecs; - index < dai_link->num_codecs; - index++, component++) { + for_each_link_codecs(dai_link, index, component) { ret = of_parse_phandle_with_args(of_node, name, "#sound-dai-cells", index, &args);