From patchwork Tue Sep 26 00:40:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9970859 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 326E0602CB for ; Tue, 26 Sep 2017 00:47:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 20C4828ADD for ; Tue, 26 Sep 2017 00:47:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1171328AD6; Tue, 26 Sep 2017 00:47:25 +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=-1.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no 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 A326E28837 for ; Tue, 26 Sep 2017 00:47:23 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 2117E26707F; Tue, 26 Sep 2017 02:41:07 +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 EC14826708E; Tue, 26 Sep 2017 02:41:05 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 57895267056 for ; Tue, 26 Sep 2017 02:41:00 +0200 (CEST) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie2.idc.renesas.com with ESMTP; 26 Sep 2017 09:40:50 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id BE37E60425; Tue, 26 Sep 2017 09:40:46 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.42,438,1500908400"; d="scan'208";a="258830328" Received: from mail-sg2apc01lp0239.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.239]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 26 Sep 2017 09:40:45 +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; bh=RZpxkuUiRyy7xJlGoWO2LSbt8yB0Dx/syTfS+qOh/Lc=; b=JSovnelg5RKOB2tXuPYQToopsiNyUXQea/uJPsIFRDdlLauh15kPYmysISXdxjBvPWHG3OFmyu8Ocu7KRh0RxKyaKs+ZROFEjfNoN57jwZX2Z4qSvcpvcClSoz3QmoVlT9CIqeJMNDoMkuRs6dqRGmbDm/qz7K2BLFKeLQeqYoQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.138) by PS1PR0601MB1884.apcprd06.prod.outlook.com (2603:1096:803:8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:40:42 +0000 Message-ID: <87poaeb8ow.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Tue, 26 Sep 2017 00:40:42 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: SG2PR01CA0103.apcprd01.prod.exchangelabs.com (2603:1096:3:15::29) To PS1PR0601MB1884.apcprd06.prod.outlook.com (2603:1096:803:8::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6149a751-e79a-4a29-4fef-08d504773882 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:PS1PR0601MB1884; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1884; 3:kWGos7alJonYo2ECHl1wZRlYF+JONISqwd5Zc+4isbpTcKouUE4ICbHit8hwFNt2EKbqeE38U7mdjWj/+mDHx+XKzuDSteKiom3R75goJv1D+piz45JlMgdKV8E0C9x4IYkldKGSi0Fz+oFglHdHyJabEL6WIkWkqX6NzcL3/VfeasG6Ae0h0sCAsbUf/89P3o1thqaNS9Lvq/Y/EVHS+OqEABWNuD09zv4cRBCMiFKaOFGZrfqj5vST33CyYIF5; 25:3R/OC3dSV2GP/4gt0gqZRS/xvdFEmDmKV52vG11Sp8MoSYZMjBME3Il03QRsIpzc5xK238MsKBQknC20O0hEIsde0l4n1nqsZoBR+Kn/BnnrvPi+sIwOcTVcAyhyoyMy3p0XObtBro09jaS7INZDPjnWXOJgErermzr7THipCMwlmItdchDtKTb7yey16jBGrRUMDo/XEtCORFBs6DENX7E4szoWTQKptQysGwSWdLCCv2ch6pOOUyVmuzlqty/fBzaInBDsMQCg4E+1MO5DuToYrv2vW4GXQcKLssateEmp3ujd/4WkRdCKwGIKUoKIN2Wd52uVklcGFPCj0RAc9A==; 31:1deDS9lqIGhUKRrStHQQ6vCeYM2gZKdoM5n+Qa0iQnWwZRYUDE/XJwmfUR+npXyMR6+el7Fk7+TSUmG1OcTlA2Ojn5WuOo22jb8RgOM+h7yji6hvA6y3BCieQbPAWemCX7jnE2yIJKNcRo+BIwMQ+XzWOnHF99h2xqZfW6pp3VItuNVZXmLHc49/SiwH165nwZmHHrCsv2Mvu7kT9d3gbSovqYRtF3RWFcwVOQchLj4= X-MS-TrafficTypeDiagnostic: PS1PR0601MB1884: X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1884; 20:sP+JRl74126nbB766Gk60Me/XDcWwGLTS56LbMd1DAhZOg0G20ohyX1duq9itQIBM1AgO5gtnwTyYmTU1YZ9qSBvEUlrh/6X34hVovEJRs5oYJM8TCEuKLSfPAESSfzigZbit2gpTFxbe2qGrH+Ms2/eFbQhaDe1CX6gc2ujQD1kYq33io/9tLQdssdFGvNxmzCfjHPJyXtQC8jF8ZSxTWrs33SSpo9yqep4bfh5wbaQyHnk3cKRGmS7FtF+pLPfeg3bzo8NqHKvJ8fYO8LzE92hKVyFsBndxG756V3IgzLSae7j7gL2COKC76IUsGK8Dts7i0YFpCxmGB+r8fcplGXwkSC51o6BOCdEayLO1Nt9JxtmU/C+WLMY0eQ9NtEYpX6VIZNyf9lTb2pikndJ2/+gzwhic8utEHzGYdz7F24OxJGKIRSf2FCkyUyoQ6FNQ8H8wZCHDo98SAeejyWuWhyCVLFwAVV4OG0hLzPSWRNk9/WntomiP/69QyGDwfuc; 4:YMEwSuV04C/Z47mR9EQMrPFnU8luXFQO8L9h9ieetTPWopqBi+MaDFhHEF7pkG+LBsh58uDZQj6jz1NeHFIDQ0QW0jg5j3Vqdelsj0tn7wcvRN/zn/SrEmn5OQ4UBebiNw/V1gc3T+CKFcSNyp9BCqQwIRmwLxY5B3QAV5jPrhtFjukUckfZVSwVfSm9mo/KrwoBRnirmJgmBRcB4EdXOCR9gY+jHELdqWr7rY495bIRfJ3r57W/xlBs8Jw3QbTe X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:PS1PR0601MB1884; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:PS1PR0601MB1884; X-Forefront-PRVS: 0442E569BC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(106356001)(66066001)(69596002)(16526017)(23726003)(83506001)(105586002)(16586007)(47776003)(6116002)(5660300001)(68736007)(50466002)(6486002)(25786009)(4326008)(36756003)(305945005)(3846002)(97736004)(33646002)(81156014)(81166006)(86362001)(54906003)(189998001)(478600001)(7736002)(58126008)(53936002)(8676002)(2906002)(101416001)(6916009)(54356999)(316002)(50986999)(53416004)(8936002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR0601MB1884; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR0601MB1884; 23:Vgh4MSMevFcGRlZaNEkD0UP/lNQpzJARiqkF4qQ?= =?us-ascii?Q?2u8JRwG+kkhajTfSkZFabOfH8K3i5tZHFkY16O25fJPQIayWTKFgrJsoLGkB?= =?us-ascii?Q?5/VK+neEc9QQOTpT5i89LoEWxjks2mPjhuVJ2CMdJOy+80C9MsNTv48b6K1r?= =?us-ascii?Q?mnW2U1NThOobPbHW7zmlwVO+lWmicV8LpBDNjHnKkNAH/kcgtc/R4FIlQWrK?= =?us-ascii?Q?lRgF/VZ4zYNF+5XXlQbOlz9JIb/lDMFE8VJDMoQS+tYKeZdc90ODviZLHsxR?= =?us-ascii?Q?om41Y4AADL5qYoasIB675HoaIaVm3z79gy0SV8UWayq15NdCmX6Px2A/colU?= =?us-ascii?Q?14UZUPQo6MrE+YtHmEOU37ezuTD0UBVKxJrtlWFesG+VEUcRVlpv/CImm843?= =?us-ascii?Q?zhkOy+YXPRbqyKmNwM2AMXYe0tYmogoPQcmyNyN1o/wC20zJEj1w21gMSZjY?= =?us-ascii?Q?lI0GC5/pxMlVo6ml+BxhTcGuOfOQ+Wntjyvy+scd2Ky/nJK4gw0XxME+4pTL?= =?us-ascii?Q?hUfTtz4GIOBpJHo/qfvjNvqsgf6oOc1A4fYzUI9uHOLi0nmXwZMJP4S61Qds?= =?us-ascii?Q?6NZ6MetD3G6GC/WBU8EZ7/eMglCb+M+wTimAilZCX8L9WvL6s5agATjIsP2I?= =?us-ascii?Q?QJqXjRJH8nfw1PhQAyJxy2XsKJ9q8WRU4lf+4WQMkhYfNpZI73lg5L/YzJC5?= =?us-ascii?Q?HkYLcDnmT9tzSXH1Mq4GLFpxSkRpXMk02lNKLOn+h7R7N/qJ6TYCSrXwLT9Z?= =?us-ascii?Q?he88/8JQmR12RPKEZsjZfKg+qHAdUuVnqRS+MxMG9xtPUv5Yx5mlqA1bCabH?= =?us-ascii?Q?8xzMVbeG1ms9F9ZyDPl143AmtD/w/aBX8Gi1vrZ3j2c9okLNPpzozJFN6Exr?= =?us-ascii?Q?q+oI1kuEgjLqs3lIxOBCXu+kgEQUFjyViOtfvE6tlX2IQoYlY/XJRAou+V3+?= =?us-ascii?Q?JtRHI4Z5SOjYAKvu73mdRHW6KRSUxpQSTVIB1fGVBwuZ2a9Uv/cQiCcqYi79?= =?us-ascii?Q?m+s2jXwoLA6bvdtgrMopHVHtyMJeY0v+X451002Oo8y6OMIP0oN8quJPoLEN?= =?us-ascii?Q?g/rY9BC8PDsf+0tjZURvYjotlllLvNWYXEwfP3qsfcJtwvqLCMg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1884; 6:4KjZj46y2VB/b8by4vmhOOwxudLFA9izX5s1GhZpl8e8bfQDLJT9HYFXP9Dlffjm0nYVFDqTj1QP5QadoEn6Y4w4B0oPg1+16SYL6eZj2Jb0fNhvRp7541ZXdOpxDFYQzrEotTLjQN9luarryhTtxfJDQkHY8k4tl6yx0M1UHks5JSkap/Sczcv/C2x4BGvCn6qo02kFVjnoqd0G7ZnnlwE3RZ9DR2QsPiC62Ww7WpGoYiM33WvLPYiRwH6CGJOeyInUvQ8CO9AxMtIbC2UB0FTMjZiVPh55A4pYRi8RnZ/l0jLOHQ8CX3aiFELZTjgUTJvBj0cy5rbS72rArMsAkA==; 5:x2vn9vTSU2tM9B3kpdHmi2WjcXuu8LHMi5cEU0rSWpn5jgZ6dpZazpsv9Z6hRCMNnJ0rNOhzxv5vqVqo2YW/y1qMP3G68NygjEogWq2mVYh0LbHmX4kPnLrpxidmRlkfap9HJGnuz98QxDygAa7JOw==; 24:C/BB0Jb4pD7UwXjIeW8E296tWY1/3vts1+/HoeF+C1IK/4ReWowpFkDCaoK/j4uczY1ZpCkIU8YKq7U+gGCr17lhyXlK+8yfoMgM8i3Kjpk=; 7:HScDX17fxNotUXvAvOp/Z0G3iqnmbSLFzICVGL8F4EjYsgEQuAOM4KHWm1y1uarP49yiPsxrfJ4YeJvPd81vGMLor1mZDEw4bjcUD1ldIBXw79PmNzMr+NuKcYllUAeB9uTaQ65/FBnVGgWEeujcwuQpKu+VHiFOq6znmWIM0ZEI6rwN2gnKg7DCJHq1Psn8ui4g1ex/tq4rByXpBuJ24NEa6IHqxYOzD1pdOV/R42A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1884; 20:1pD8Xj9pMU1a36Nwhu6frQdxE1pcIKCUHLf/XHfR3ipWEKqQvdyjEhNhYOYqGJs3Izc2qXxQtBC9lhZatnKfrUoqjTmSZGQ1PjIZW7vXDo4t0jrPlGN7acJvC0rbgZZ8zpb4HNcLyivBmQvQspbcbkAS02FvU49e+/hPFbFFk2w= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:40:42.9257 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1884 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH v2] ASoC: add null_snd_soc_ops and reduce NULL ops check 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 Double NULL pointer check for ops and ops->func is difficult to read and might be forget to check it if new func was add. This patch adds new null_snd_soc_ops and use it if rtd->dai_link didn't have it to avoid NULL ops, and reduces ops NULL check. Signed-off-by: Kuninori Morimoto --- v1 -> v2 - rebased on mark/topic/core sound/soc/soc-core.c | 5 +++++ sound/soc/soc-pcm.c | 16 ++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index e162206..1b5b519 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -614,6 +614,8 @@ struct snd_pcm_substream *snd_soc_get_dai_substream(struct snd_soc_card *card, } EXPORT_SYMBOL_GPL(snd_soc_get_dai_substream); +static const struct snd_soc_ops null_snd_soc_ops; + static struct snd_soc_pcm_runtime *soc_new_pcm_runtime( struct snd_soc_card *card, struct snd_soc_dai_link *dai_link) { @@ -626,6 +628,9 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime( INIT_LIST_HEAD(&rtd->component_list); rtd->card = card; rtd->dai_link = dai_link; + if (!rtd->dai_link->ops) + rtd->dai_link->ops = &null_snd_soc_ops; + rtd->codec_dais = kzalloc(sizeof(struct snd_soc_dai *) * dai_link->num_codecs, GFP_KERNEL); diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index 975965d..09fed701 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -511,7 +511,7 @@ static int soc_pcm_open(struct snd_pcm_substream *substream) codec_dai->rx_mask = 0; } - if (rtd->dai_link->ops && rtd->dai_link->ops->startup) { + if (rtd->dai_link->ops->startup) { ret = rtd->dai_link->ops->startup(substream); if (ret < 0) { pr_err("ASoC: %s startup failed: %d\n", @@ -585,7 +585,7 @@ static int soc_pcm_open(struct snd_pcm_substream *substream) return 0; config_err: - if (rtd->dai_link->ops && rtd->dai_link->ops->shutdown) + if (rtd->dai_link->ops->shutdown) rtd->dai_link->ops->shutdown(substream); machine_err: @@ -692,7 +692,7 @@ static int soc_pcm_close(struct snd_pcm_substream *substream) codec_dai->driver->ops->shutdown(substream, codec_dai); } - if (rtd->dai_link->ops && rtd->dai_link->ops->shutdown) + if (rtd->dai_link->ops->shutdown) rtd->dai_link->ops->shutdown(substream); if (platform->driver->ops && platform->driver->ops->close) @@ -751,7 +751,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream) mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); - if (rtd->dai_link->ops && rtd->dai_link->ops->prepare) { + if (rtd->dai_link->ops->prepare) { ret = rtd->dai_link->ops->prepare(substream); if (ret < 0) { dev_err(rtd->card->dev, "ASoC: machine prepare error:" @@ -855,7 +855,7 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream, int i, ret = 0; mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass); - if (rtd->dai_link->ops && rtd->dai_link->ops->hw_params) { + if (rtd->dai_link->ops->hw_params) { ret = rtd->dai_link->ops->hw_params(substream, params); if (ret < 0) { dev_err(rtd->card->dev, "ASoC: machine hw_params" @@ -948,7 +948,7 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream, codec_dai->rate = 0; } - if (rtd->dai_link->ops && rtd->dai_link->ops->hw_free) + if (rtd->dai_link->ops->hw_free) rtd->dai_link->ops->hw_free(substream); mutex_unlock(&rtd->pcm_mutex); @@ -994,7 +994,7 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream) } /* free any machine hw params */ - if (rtd->dai_link->ops && rtd->dai_link->ops->hw_free) + if (rtd->dai_link->ops->hw_free) rtd->dai_link->ops->hw_free(substream); /* free any DMA resources */ @@ -1045,7 +1045,7 @@ static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd) return ret; } - if (rtd->dai_link->ops && rtd->dai_link->ops->trigger) { + if (rtd->dai_link->ops->trigger) { ret = rtd->dai_link->ops->trigger(substream, cmd); if (ret < 0) return ret;