From patchwork Wed Feb 5 00:16:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960237 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010027.outbound.protection.outlook.com [52.101.229.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 856A9623 for ; Wed, 5 Feb 2025 00:16:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714576; cv=fail; b=Qp3QpZ4Orrr4eFMus+I1iEYYDbROiQEzXy8ku2JdjeFPff5WKtMoipBG88cj8EkrFadrLTFa89iL5xEtmo4DRXr1YRs19HrTeDVIyUYTOj99xO7vsg3wha5pNQg/Y2Z5rrIZL/8tw1iIKoygaXMYN6Znxzf71EmSTzpUq/gexOg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714576; c=relaxed/simple; bh=M7KvZq3HaKsC10kf0x7t26JUqzm2xYQcLuIa0XSM6Rs=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=apY38uTFBEGpvTS27B+eoNCp8TrI0cRndPRFNSxdRKkww3amjPLskZvkrhv6tZcaLktiw+m42babokpI1pdCLBeMo4zj6/9PGGuGXFnGMyBSCpuVnRk2Szy/X3goVnj9d2+iViK9xBbFcvxJ4XHCUfvQN3J4xq5p+H3GrNReo58= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=f7a9ki4F; arc=fail smtp.client-ip=52.101.229.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="f7a9ki4F" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UD6xuJbx2oJuaBxm9mssbrxJ5ImIEYfxNPVT5rg1IaEo9ec7t48yg/0vGDeRTithnFeyb+2E4popVX3XhOy7ZLiyaBzh+oqWxz5U4XtnnRU5/+rJiZdvt2+wMGHRD+QgXxU4XvEPljXIlwVDpD+XIXkLzkOtStpyGYhAjURbYtBqeDJs92YurLhP5ff2jkwDjNRGngg4WPptuoOIfgNqZm23Htt9/UJJZ9dRvd9Ub1tnyAU7s5DGMCPFpdAcL2M1WubAOSFwBhGQDmy3vpLW4bohH/tnNoBsK31ONLhN1ft4xY2M9zZuhg8wQFEEbbcdp3HfjbWVE3MQwOzvA8FKZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aFlu4SiIrgs35QgDmbrkGCASX3EegmPiHwMNnKIDVOU=; b=yvwp4SjrE8IpEybTzqRU1Bm8dZD5JntFcXv+sdVQ3kKhL20XpjGJZCiAUUiBuhzhXIlA/CUGrF1WWZcCyv/1yPGeMH8zNsAvssmG77SZR1lDjlm7wwpPlOAjuT5fFjnZUs8vPemiaZXdgqfSATcSuPZS4ySptczhvhC3+PpaDfdFooKdqO8OoGZlLo3NnHkTvx54kDkAc4kvYNNLMt7hlumxzyU8LLI76qw42WqrInM8VtWSos6SoZMJZi5cCk0flm1vmWH+r+Bt2FAGnOIeLRdd5UOkD6SpPJ6npiYAAAomwg60qn39yQ9lM8kSfBMZc+GYcAQi1Xk7l4Kqn3HGqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aFlu4SiIrgs35QgDmbrkGCASX3EegmPiHwMNnKIDVOU=; b=f7a9ki4Fagn4b4cV/FikFBqyM8t7UjDWA/U3/zdCK/CnDx4yh75EGA08eTcD/ZE/SDUHcW2u7hluwIWSpvqYZwKNno/UZkKaXE1M0qgXayIpBSA1rKL46tj1A4H7WE3jzf7TSbeOuLT4CLaB9vxgwqAHij+buNkuqSAta6TZ5ks= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by OSZPR01MB7036.jpnprd01.prod.outlook.com (2603:1096:604:13e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Wed, 5 Feb 2025 00:16:11 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:11 +0000 Message-ID: <87frkt2qlx.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 1/7] ASoC: add common snd_soc_ret() and use it User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:10 +0000 X-ClientProxiedBy: TYCP286CA0172.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c6::10) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|OSZPR01MB7036:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c515ae9-87db-4e52-40ba-08dd457a4b4e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: XsAOg3pbqOVuvHiL5s4k1Qn8k3HKuhCzIYJUg4bmLqthaeb+nyIlhRf9NPgE7xyeUjR4ALXckgzBqhss3KcZrDWsLKox5u+lGVd/GB57M3QJK/waVxsw0HY1AUNV2JXB8n3ieNe2CK+NSkWKrJI+SVQOWgBWk5DRZIO9aBnnJdxFBhfPhqoLHiQtMEJcJNwQPbzP7O46bC7fTrTSqkGIijBZlWa8MFZBqP5gZK4E9OIf7bxWKUf0U3w8BzNh5r2oj1KzBtLk9m/R97JRr1bVPh4vjVfUsI/tIIKZFVkHxEesnFQLxIMoSh0uKSp3s6SdtYUiwuclJkzzX0h3VnluRxLeVn2HtkSp/Rtszl4jCQTU8g/VKUEbAgKXpwGsd0ecp4o7UTZmn4/+DgWkq4aJWfKNbykEUzhTCJ6xxS2DQN3Vey6qUU1Dq62Wk64MLHtqxzFFpeyel8w0B4C17egqgrqxT/b6z3GcBgJ022OvSdTJzSzv3mX6tH1RZKqdyx0TuY2d7Ea7CYiiDPGwp8EfEuMXp4ZLNh1h2oMUycmHGTG1fuTQ9qWyU+oPy0eGlQR4ROnzkb/qII7wT8hET8XVPP1ZNoQVPMsAyI/7G4A/A7SsUtAZqM+bcTEqz7XtMWSQy4+vW1fahqADTEey7Ui1i4nGcq6F9N8MI01Y/pZ/dShcxyNsvL8ImwNxmAgK+gnekSKD2N48q7qCRfVBoUEIt/G/2nbtDDIuu65MSQLrDFaavttEZhVSLxK7zr9Bfn7/qlEE7xrc5BOY6mQ2LJS8VPcm93zV3gz29BrZQ43yKylUwz323dwDbzMEkSSGSWI6cTpncK9L3CO0ZITVKS95kHZGkRJmznZ5/LvVIjKuHm9rUtl2eqK8ht3/VF8kmTzfeDDDhzl1HDxcRtA7vFVsiY42c+i98mWwD9akkYeYiFGY9/ZW+Er0gW5S7ZVNou/1kMuF+z397dh/qbRmEwdWEEuI6daEjkc5Vl0iiIahe76/H9opedfRVJBCOpv/pqz8DrTNMydllMIW9zi1AbABMWPxD9rUOKKV3qDWbVGLWU2C1f0ZarN+c3Rm694vyANLGe8xxEmPgJ8PZ6iedYUx3b/XYYHh2lFsaxiVkEW3/EHhxhj7EuFvQ2bqGCTU3lpoK7N3NtnxgqrACEKd/69VGQ/3sABXgpKnIZHRgN8XXP9AoW4zWpKEgrYst60URxlrgO37TVNXl+UCr65xhtEnIicTt+wa+UW7L58j70WIam9wAh/PAsuNapt39L6y+HXSTfH3Szt6+E2Rwb5x7j/YP9S8QReSeijhb/sqPvtjJjxN979z5nltEv96L7NYzOOs9Cdw7SF6M+7XiIqzoabl+19FPP6dZKq5J8aE1TCDNqT4d8ibZC0nGRcUkLmfXSWVlK9AOfMD6yM7uj5ZT3g4b6QRA8tnTROEkQ5V7kDDdCgC+T/nwkrOEDzQS4Zjri/S X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GRxcfWtg0klNSyo0xdalXJbuZBpdU17ZYYG7I/mvTGUqcC1TPAsxsuy1oKvMUpcDO5NV5RbBF8/nADCoZbcrAPgv7QQzrISzAIMT5+WHKpO9We7BM5asLG69ySWuwSHVjDs5FcvAZIVslHuDwYF7mfe+ows/ACIQU2MJHVZLUzhUBxN2w7h+BnJf7dYgBfKw+e8WzQQoz3M61r9iwrmxJ/pmwJU3XTHxBRVqj/NqgeckdVw7cy2xXVXlvMTHTfY6TiKMSozFGENJPuIHTxPWOgikyY2Gv7/++e5bhGwgBKI+jJgeUTjEaigEyNFXG21G2oq3JnKF7FJLD/yoVieWT2uOfle+B0XSS1OJ5pY6/G2Xi6Hb0ii4u1NH3dABEmpGt9lnYOgQOBcM+NmRyoG2JosFH3wcJoMDMT4VJO0iuEfvYHFl+zSAn4t4w8iRiDr2T5eWzTdxOgwC/DZO0NWrOIB5WsXnkH7VOYPEA2KOIM+0R0LLIDINTuaOSEpyJ95Eg+1bjUYN2yXasLF9sn4RpP71pvkhUh/TQj0hMAvMYULYgFzTm2SOVkiZFS3uHQMS0ioAnAXd9m2GwUi8bWuEVUh1HOXLT9EBA2c1FteSWHoVbXUQrjCDwVJ5ho86GQlOLl9oXplm0IfIje382fXrP637+u5EJhatMtYvsZZTrtLWkDfAo6ExiW+QLh0nFAPqwGmmoyOy45C2XV12OODvKm3J+5IJdBc5RO3cFkDA5vK9bIfEWwcA32wkfzOH8qXIRJpmHmEt0MlKIdi8LhSIAyWoGA5qpyYWnZmCB5KVCHssU2QlTQ/ct7VjElrSxd1ps3icq4TPwlAe3mr/hljQVzP32CaVs9neWnQkPwTkZsSJHJVyf9nfNvcs7Llk9hqnUrcijD7r7Oz/SKcTNQdecm1pE6DzXPJPx0mB4eYDjrbq5ZCxOnskBcmRbj5uhfDOUL9W1PVbjgiVS+yYuPULAFE+evfFolmgme1PPsqFSENe9xkPoeJ2AjlFOZ2k1paKPe2c7AGo6a8pvw4oCAgopVWmafamtZTcFF2Qw6HaZuYNen0JqX54N+L05EAQtnAY0zPZ2HZwdSiv1jPnrx2VzwDlq2aC1+ixO1YfahcjERmZ+WbmYxXVVFAj0rLhtYvzP+4ymHYG4UhrChsHXUcIsBJ3s81mm4ETPz3POHS7PHWoi36aHNFCI5fZRcRFAdzjCE1M4j6b3rzwJ/7IyoQyFjC61jF71LbyuOa2CUAKUisvwStrVK9ie0Zlzefw9bR84DiaerGd7BQ5TXOgr2YFNqeGtXDRznAa+7PPRhEqE3J5fZfrleYOXxDm+/0t8lI0c3KPmsezlQDBG+mebr3I7ThcWCLH0InHJ4fyiqLER+bjbyYoPSEBUWe4UgyTCoXAzwVRGESW7j8M4YIuk70SIkhuCLNxNdCFcv/l8XeiaVXxJHrrZgK0JtFYfH6aYldsJaT9pJzTyAs80Gj091n6UHPs1W7tFDRaJ4zeq7sAzmeGoHIixzkeBtAtcxz9vn/lJFl9wzyzHJt5hMoMtKcv/CbuJ0HM71u6nXJTQ2UVV0jI3fFC7k+WGMgy3LzqjCgk+2+0Tic6B9wD2XKrnrWDMCG8790b/4N8Ou6nSr0ZVdA= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c515ae9-87db-4e52-40ba-08dd457a4b4e X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:10.9207 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: t2X0ICX94i1cJdds9VRMMAI3qxjnShRvA3W4flJx2XlW/DWVl8atuBoEW6fORgScb7J/C1gA/zwhvNgKQPcOxyVrnQ41yysmoF4kGnLf9uvDAgLWRolW4t3+RqYyAjqF X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7036 Each soc-xxx.c is using own snd_xxx_ret(), but we want to share it. Let's add common snd_soc_ret() for it. Signed-off-by: Kuninori Morimoto --- include/sound/soc.h | 1 + sound/soc/soc-card.c | 14 ++------------ sound/soc/soc-component.c | 38 +++++++++++++------------------------- sound/soc/soc-dai.c | 18 ++---------------- sound/soc/soc-link.c | 18 ++---------------- sound/soc/soc-pcm.c | 18 ++---------------- sound/soc/soc-utils.c | 26 ++++++++++++++++++++++++++ 7 files changed, 48 insertions(+), 85 deletions(-) diff --git a/include/sound/soc.h b/include/sound/soc.h index fcdb5adfcd5ec..16e4e488521c0 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -539,6 +539,7 @@ int snd_soc_calc_bclk(int fs, int sample_size, int channels, int tdm_slots); int snd_soc_params_to_bclk(const struct snd_pcm_hw_params *parms); int snd_soc_tdm_params_to_bclk(const struct snd_pcm_hw_params *params, int tdm_width, int tdm_slots, int slot_multiple); +int snd_soc_ret(const struct device *dev, int ret, const char *fmt, ...); /* set runtime hw params */ static inline int snd_soc_set_runtime_hwparams(struct snd_pcm_substream *substream, diff --git a/sound/soc/soc-card.c b/sound/soc/soc-card.c index e6eb71b3010a8..235427d690617 100644 --- a/sound/soc/soc-card.c +++ b/sound/soc/soc-card.c @@ -15,18 +15,8 @@ static inline int _soc_card_ret(struct snd_soc_card *card, const char *func, int ret) { - switch (ret) { - case -EPROBE_DEFER: - case -ENOTSUPP: - case 0: - break; - default: - dev_err(card->dev, - "ASoC: error at %s on %s: %d\n", - func, card->name, ret); - } - - return ret; + return snd_soc_ret(card->dev, ret, + "at %s() on %s\n", func, card->name); } struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card, diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c index b67ef78f405c3..25f5e543ae8d3 100644 --- a/sound/soc/soc-component.c +++ b/sound/soc/soc-component.c @@ -13,32 +13,20 @@ #include #include -#define soc_component_ret(dai, ret) _soc_component_ret(dai, __func__, ret, -1) -#define soc_component_ret_reg_rw(dai, ret, reg) _soc_component_ret(dai, __func__, ret, reg) -static inline int _soc_component_ret(struct snd_soc_component *component, - const char *func, int ret, int reg) -{ - /* Positive/Zero values are not errors */ - if (ret >= 0) - return ret; - - /* Negative values might be errors */ - switch (ret) { - case -EPROBE_DEFER: - case -ENOTSUPP: - break; - default: - if (reg == -1) - dev_err(component->dev, - "ASoC: error at %s on %s: %d\n", - func, component->name, ret); - else - dev_err(component->dev, - "ASoC: error at %s on %s for register: [0x%08x] %d\n", - func, component->name, reg, ret); - } +#define soc_component_ret(dai, ret) _soc_component_ret(dai, __func__, ret) +static inline int _soc_component_ret(struct snd_soc_component *component, const char *func, int ret) +{ + return snd_soc_ret(component->dev, ret, + "at %s() on %s\n", func, component->name); +} - return ret; +#define soc_component_ret_reg_rw(dai, ret, reg) _soc_component_ret_reg_rw(dai, __func__, ret, reg) +static inline int _soc_component_ret_reg_rw(struct snd_soc_component *component, + const char *func, int ret, int reg) +{ + return snd_soc_ret(component->dev, ret, + "at %s() on %s for register: [0x%08x]\n", + func, component->name, reg); } static inline int soc_component_field_shift(struct snd_soc_component *component, diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index ca0308f6d41c1..7c4c9127e5f3f 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -14,22 +14,8 @@ static inline int _soc_dai_ret(const struct snd_soc_dai *dai, const char *func, int ret) { - /* Positive, Zero values are not errors */ - if (ret >= 0) - return ret; - - /* Negative values might be errors */ - switch (ret) { - case -EPROBE_DEFER: - case -ENOTSUPP: - break; - default: - dev_err(dai->dev, - "ASoC: error at %s on %s: %d\n", - func, dai->name, ret); - } - - return ret; + return snd_soc_ret(dai->dev, ret, + "at %s() on %s\n", func, dai->name); } /* diff --git a/sound/soc/soc-link.c b/sound/soc/soc-link.c index 7f1f1bc717e2c..02fd68f2e7028 100644 --- a/sound/soc/soc-link.c +++ b/sound/soc/soc-link.c @@ -12,22 +12,8 @@ static inline int _soc_link_ret(struct snd_soc_pcm_runtime *rtd, const char *func, int ret) { - /* Positive, Zero values are not errors */ - if (ret >= 0) - return ret; - - /* Negative values might be errors */ - switch (ret) { - case -EPROBE_DEFER: - case -ENOTSUPP: - break; - default: - dev_err(rtd->dev, - "ASoC: error at %s on %s: %d\n", - func, rtd->dai_link->name, ret); - } - - return ret; + return snd_soc_ret(rtd->dev, ret, + "at %s() on %s\n", func, rtd->dai_link->name); } /* diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index 88b3ad5a25520..a2caa146cac2c 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -30,22 +30,8 @@ static inline int _soc_pcm_ret(struct snd_soc_pcm_runtime *rtd, const char *func, int ret) { - /* Positive, Zero values are not errors */ - if (ret >= 0) - return ret; - - /* Negative values might be errors */ - switch (ret) { - case -EPROBE_DEFER: - case -ENOTSUPP: - break; - default: - dev_err(rtd->dev, - "ASoC: error at %s on %s: %d\n", - func, rtd->dai_link->name, ret); - } - - return ret; + return snd_soc_ret(rtd->dev, ret, + "at %s() on %s\n", func, rtd->dai_link->name); } /* is the current PCM operation for this FE ? */ diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c index aa93e77ac937b..e8958158acc11 100644 --- a/sound/soc/soc-utils.c +++ b/sound/soc/soc-utils.c @@ -15,6 +15,32 @@ #include #include +int snd_soc_ret(const struct device *dev, int ret, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + + /* Positive, Zero values are not errors */ + if (ret >= 0) + return ret; + + /* Negative values might be errors */ + switch (ret) { + case -EPROBE_DEFER: + case -ENOTSUPP: + break; + default: + va_start(args, fmt); + vaf.fmt = fmt; + vaf.va = &args; + + dev_err(dev, "ASoC error (%d): %pV", ret, &vaf); + } + + return ret; +} +EXPORT_SYMBOL_GPL(snd_soc_ret); + int snd_soc_calc_frame_size(int sample_size, int channels, int tdm_slots) { return sample_size * channels * tdm_slots; From patchwork Wed Feb 5 00:16:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960238 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010004.outbound.protection.outlook.com [52.101.229.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E34425A638 for ; Wed, 5 Feb 2025 00:16:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714580; cv=fail; b=AYtHFhTpD+FqDP4J0K4ykFx1NCdnN1IrCoN1EmduhedeZAmMcml59AbVz+aKp/A/Uxk2Tasr5VPLnV+IoinTy/UJJg6KWb6xHG11A8KK5pAzcb3vIEXJFU2ba9T9OzC10CwUQmXMrCOZ3kBXyVFJny2/grXs5wYRFsGX5dReopE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714580; c=relaxed/simple; bh=558OpfzSgKsULFD5gGbwWHnJmRD0gMcavjVVTuPSRIw=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=jRD4D8k+wXK0Nt6o53DUyTthhKGQCMqLpVBKqmU/okpsL4TSafgfrCMMSQkbOZNfAW5k4tYyLDZ35D7GIrnadIQC2HcG6N9qb/9SsCFYiOWesL8SdlNuC7FnVgWfN3jyHuWkSlrWH88/bR/b5Zk/Wms4/qo6ZqyBJQbAZQcsUys= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=o2YQS+MW; arc=fail smtp.client-ip=52.101.229.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="o2YQS+MW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RfX8CnaKvSWqP7aHzlC7QvarrtITuXjo3wmcSh8k77nqY6V97BGNfZShqehB4QVbfOblPzRMIR8J9GVgFrQt9xGUNa+PUiKwUJt7LEfrvlMNbQjdAMPOltrKS+Rqksm+SNU275LynvcbixBwj4R4lE3oMJT3G5kRLLRKjG2dcywlbECPMcoS0hUj3WANkaU5Shw8STPR3XuGAqDVMzEW/FqOSNbqEOD+B7JJy77JNFTU2BVnpd8GwTo/u3GCd2s2EdLFKjhiMLekZyoa2wvPV4qY10Kq0KrsHIyIBwcWkP0qnRiIOOL7zBBUSsZsv8LeQecukF2Ces97vp0KdS7y7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=A4GZI4mqkCh0WrhDDJOrpVAgujAp3cgoIL9KV7ItJ4w=; b=TzlnkcQ9NuKvvT/U+c0eGD1ZrGZpQdm5umD/8iM+KqkwQHJWHqUFqoD80gArvY1lAIEofr+ZbRf4FW/kCq7M8pVzwcnxpFBwsgme7hIy6PNrZ+8SsEiS8DV4hpGcK2vYRGPSOdtlbaxuu1vpsNP+KkRu0tUZN1QEKXj3H8JDTDRzMvslEMt5F/lZPEjD/Jk1aIvBbGAnTS63ymixmXMtmqZg2QHEIkiLQAVw8ZZI3Dz28xnumvFMM/RfMwcAuEvSzzcPkaTEMgYX+R8oB0qUBorHMWXaWiYPD46v17M7qdgJ9uaJ86//UfiKGjBy9imlcbI20PAAHsgQ7N9+WVwwVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A4GZI4mqkCh0WrhDDJOrpVAgujAp3cgoIL9KV7ItJ4w=; b=o2YQS+MWOCUJ3g4/Ci/vAY/IjRN2yhesFMB7HeAzKsYHpDo41KzV7nEmMw4syQf2qI+R0sD/SKFartS33H0+sSPsNoO4X7zLQq5scxRsOPvbhpqXwg2mAtZaO9L6dIeO0/0qwQTPvDvi6Uf8pLZrfU0+lcMf6vzevghoLCSDaLA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYWPR01MB10242.jpnprd01.prod.outlook.com (2603:1096:400:1d4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.26; Wed, 5 Feb 2025 00:16:15 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:15 +0000 Message-ID: <87ed0d2qlt.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 2/7] ASoC: soc-utils: care -EOPNOTSUPP on snd_soc_ret() User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:14 +0000 X-ClientProxiedBy: TYCP286CA0056.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b5::17) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYWPR01MB10242:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e4c870b-1050-48ec-a199-08dd457a4dc1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: Hq2BjlYt0Tf6Ji+7ds4fyd9QneMhI0EkxZ9n0E7KuWzjRlMn9OJ4LUHMiVZSJm324gbWH6IAoETPVoKYU2007bwuGvUGR5N51+MfaO/QrF96q46IUVm8UoS54MwyrtnPP4Ldzxk649TcZBP7aYRF+5ImGAhQBu3G1cTYwerUIyKGEh+LrqQf1MdaYh9dwMR+GiDzr0mWVpppL1L6Pkg3uzVNasCyqVTJUF7QuSkeJLWj9oD8Mjzq8xP6HVE9X5PanRdaKxiF69OQacFIt6BJ6xZ9o+AkAV3eI7nwuhilXf7ntveH0yx8o+/cZOnAJwilacWDP93av8Y0z4WmAslM4R5FgVl7wOlpNK3bXRXHeSZPQuyqXsf+ZEcznQQkSmgd/naXkvlQlQ5V2mSzk85q2TlHtyNnEHnfB0195ythQsmh5gR91DDBjrubFma8w1CEkWlGC3q3+xcc8il+63trZq3SLOvRuAobYKBujeW+sqxa8gPPzcJZoKFagGeuo0o4DuoERYZtvY8dyqH2AdoPKsSGmkOacRkiNcL2VyN2ZfIUo4EOAGzYDFkeTqu1dmAo+0i+lsPM+go0RB9UoRUMdMUXONR4eJuRtP+TykdEs3kz0NepUSx73HZTkqN/n8GnBcbhGH/qUyS5ncaYNLItW8suipXNL0kqZ953DYkZLdO/tuH37NrjRLf/LisCBVdzLh0RE5JQxQxfh7QL7WR47hsQMskQwYfDHARpvn2t6SxqT7tofyisc751zF9lh3TULijf045bTATKx44WZ2Loy3R/yfgOCjWSJ9ZFgTpQJh3fkEluX2ZLEbvURltQ3EBsH/NpC7vWgUQ8fEyU0P0Qe/cItSRiQBt06vGIlQFeyQpBMFpvPZf5dWbqIu480DcDudzk18Ist5x8fKpXLm5l+EXxh5MQSpwVDMKXhkf9T1Txgw5XLbkR6iM18SLXoPPvyit3Z5vuc+e/7sw/xwvQDGj10/Ua2vjN/pe8OmomfaJ8TxeQdSXKJWhu5BsccFWr4guD3Aq65zc8mHChcRKqE/CJnIMX48HaUye6r84X3EBGNi/I/VOTljYzwpoZ3WASBWD6QPozxS/ytYNIBGOYKACkVxOW21CzoMJeilTdTX9kphKnWHU7GqGae8m/puFMC+XN1dL6lMVyeuFKX83eiDfaYuksNovs+ZViNMZ4VkRilChvX3ToxuKrmoOt+oEP6unDUB3rg5V+M+JooZMnWgqEvkqitRN+qSwzTgx5ADlZ+ugKkq7ZMRyBI9E84BHJihrOpICdbY13j0yHHRdXXs5icqvaMOK95fJoOmQ6OkYhOiLGIuujLAlEMVTbRGPCzKrB4SzKYFyZ8YaiYwTZgOdi6RqJqKwuNB0PW1dmBqqY/jjo05pXFANb1Jaxhu8mDf4pBnz7D88LVYejlRdOCvoDil5EbDj36zxqqaFo5E8bEB8r8t/5MMT1t8NBEDsf X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FyrcCWkaNe2bLSB5FqRGfTNe2WfLJbknJzuIOkhtA/1/RB9Hn6t1EX1tC6mdVSv1bxR9lJHHbDzWgFKqlmELErL4UL4cuqdWKLCAxaPVVczFSpOgDD0WGNRBEGtsYFXQPIOEVwjNs3hdJsQ7EYrjBSiVsVaZg1P6U5XoP0ddQ1VZIEiAS/aeo+x9iVHKzH03yoy0U4VmwFf4RYh1I55OYePkHB/ISKMvyO2bXz9D6F3J7TvbAXy5TBGTuEd4qGYUtHxipZ2qe/E9v2ylKzhNlupX4fTP/valEsoEfplk4omVu4Vvg35MKJiwRUzJyjSyUJAoSvreMc2+Y0rSnk5esB1X407h8Cf+p+q8uLbkC1ewCQ8GNypgsYmICxV5E4bJYeGGmLVCDgJloEkKCafomaF2Wfno7Wd9Tzy5Zq5W6NSrDCWkECOSWpe7UfrQ0LWkWwLt+XSWt+LPAXr9mYAiS9arfa0qbEtaa9zP8MGhnJoGfDtWEZKyftSVWZUlIvHD4LKZ6kzpkpWvGnUImMlUHorFZnBdiWb3J1orgM3554fFt414Gh3iClNCDFuJAKDZDU1mrouaoLSi0FEKXEM7BqpmFCJ3fSl2IGiNRjfO0cbeir38Bg5zE6mmlLCEVt7IblAa5a3u7TAbR87q8VUyJxM0bS0UJjTyo1sG6ySV1x8zttw9w278ob1TJZbm6nTFHGLJZp1dRlG2nicPquKonYAkWCcoZAqrjeetcjUZHk5tkMkmAT79F1JoAS5I+LBy435PRTtgP6zUBH7jceHMYMCcMn5fIIW2srBHgrrwV3D84/XAOrlVPMz97QYXr7H+efUxc1Ke9CTvPgQFpd0E3OtubYOFH8oBGfeJwcr9Ky2ZuS1jeIyIbHZEyHuJrLgFBhzZ+XW/jYcLMtpoEMENzDMhib5qbHAUwe1YLI0UHvHX7oyaCK0j4pTVnqz+4Nyv+JdPudGxUhEEfTK0PJ7LARgcf3Lfj67CGE3xQFWCgx1bgWuAiP3PX8bnOg+q3GNkPLrXj7kKti1ws/4CtW9PwO2Gk7ZZCy5w16QgE8uh/djgNlqQMqC4lVCLnKd8K1IG2N7aWalxY8pimY+tO4lFt/YsfYkeM7LvcvjZlWogbVVIAA5meYtO3mDYSF39mkU7nxMprqFaeniCcrHYxxf6PKYX5/Lnb2QCpinm+1LO2M9HVLIijb34tzKCGGTkcdwUU3VJ+3aojOECG+CYRRTXooz4aDSoP1KoCbXi2q38Vl2FgNlPRkMRdecC6RoszUUA3CCWNUueV/3TURTV9DfxLIm9yiSpslz+UNsMNL15rvspjsdM9U9axVuqjs9BdA2N3UDAOw4acumjK4ZwPqfP4cdp10uyPuuMvFL4O0nf++wpgUqXkLhI9faTBnW6HSeE+HYLHOK1N6+uM+GKwrWjaSWaJUKZbvuTCRO9nQabWB4m9F8q6wRE56w8guxxLDupzbHmaiEFVV6zoB3lGeG8P0yBWFYa6Ufvs1MDvImekm0hH6oZvWPgfcYwRrsAfdg0DHMksoNqBXo/7Vtm/CqAOdfn6wx/rEBMYXuSvlNddCa6RxSAtv/G4uqujkbCtnsO9nBP1yuP4NjuJ8h63XMq6VTOJ/895oh5j0FpkUGDsDw= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e4c870b-1050-48ec-a199-08dd457a4dc1 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:15.0789 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HO1W92mYYqG5sorkzO+miMokwGb/AMqFpJHUe8FQwVDD5JuhFAYa+sfcYsmpzo9wx6SvUSORDUC2Z7kZ5zxzIekQej5DId3kI+1RtI/xoXdQpGxUAdMhK/tOo0joSV5p X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB10242 We get below warning by checkpatch on soc-utils. Adds EOPNOTSUPP, but not remove existing ENOTSUPP. WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP Signed-off-by: Kuninori Morimoto --- sound/soc/soc-utils.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c index e8958158acc11..318b141c00b38 100644 --- a/sound/soc/soc-utils.c +++ b/sound/soc/soc-utils.c @@ -28,6 +28,7 @@ int snd_soc_ret(const struct device *dev, int ret, const char *fmt, ...) switch (ret) { case -EPROBE_DEFER: case -ENOTSUPP: + case -EOPNOTSUPP: break; default: va_start(args, fmt); From patchwork Wed Feb 5 00:16:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960239 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011039.outbound.protection.outlook.com [40.107.74.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE0D74C6E for ; Wed, 5 Feb 2025 00:16:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714585; cv=fail; b=kjz7x0FKEmg0wficOlZQrP6lBfMBi8rqg3e2/nUPREuB/0lhi0Z5bpSql1BZ6nwtCZ+8cuOJno+ePzsjtf8gq/jUojUxUj0kcGPduMZetPUKIdqGj4wdnXWwQHNqV1R6DxlhFC28xbtcZ4Uasssqt69eoHbJiwnL3mL5+woVdfY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714585; c=relaxed/simple; bh=A7YiVsue5VvvxZlhlCucooQJ1jqNZtS7Z5+RPKEt0Ng=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=GROPFvyqihEgyKwart9En4V5jHtYvJe0qbggX9gBRLYlsuI2oMqAG8URLKomturiw7Zdo5GFuNE9/WW3KD+kGRVTzCNJ4kH9ERaip05wRUrhttEhwVNUEF4Dz180uhNyaBqbuATqBczF1YIGkAQ1Ucm+DLre205Uf4+mOEwporU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=Td9aoFZc; arc=fail smtp.client-ip=40.107.74.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="Td9aoFZc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cODk3yJW74ADfCbTR607PlQidrIZBqkHTsHp2h0Ic8YEtGFC9FG6fDB1Js4d+iaqeHJbADpDZvJ8KWvlszBg8RxxDURFCYkcyGw4/aXzpZE2AVdtSmsexuPqAV1Hg8JQ3leycOk830pfIu3oGpKru09EgOSrXoOrJdPybgSn2SwzYBPU5+oWbNhKsKQmqOxt9gyaNY5qNPa+Ezu/wCv5XAb1Q2ViNee6VBBQKLqdw+TeQF6DR87eSc2wgADB0O+LUOzhLwrPra+tkZwc5K78Kl6YPr6Xtz5VnY0DXb+hGzijo5H4Jg4J207+HFiQEjO3ZsvbiE+4SMBuLO8gFepamg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zSZXzy755ku0916s7MgbRyhMd/OhV2SyZkbnFN3OOlk=; b=eE3mnzRWHDHst6v1W6PJqnV5ZOMMN7g17JuZvvSZzjl8Ko5Ie0/YOXc3lVDJsQjPDKbCqzvbzCcOB5wfUKsoh6jfet2XiAijfl2zhR1yQ+NmKRzqjBGzJGiAdM3GAhsTxMH1BzxZzUiOmbsRZRn2pzbLtO2ZJHVcjhfAaL288JEzJA3Y54/4T53mJyzfoHz9rtL0m91NbsRSAOEstmiFTQbLnCRjvDtLb9bH7A5OMFBiqOdjdbi/NDJ/hHCfotNru+LdxSW+Z4pIUrDwTbl8tXWRDrPJlJlTwoIkQOWc8WEJI+lu0JPaZcvTy7NrZ2w16CE9uAD6UzZjXomB+MLmUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zSZXzy755ku0916s7MgbRyhMd/OhV2SyZkbnFN3OOlk=; b=Td9aoFZcjdey3L/gmvRhCk1TXgHLGGrqp58wdDPMaMMGlEZ9BmF1EvnrcISsYAEID0hEMNQXcbOToc/q6gs8E8CDwmLs2Ez0yknCDYF5BRXWuJBSuS4qqdzPtL8S9O/s5ATAQFYjx/n7cVuEigFAOkKI7eY5tiGB6jjjkpcwtqw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYRPR01MB12774.jpnprd01.prod.outlook.com (2603:1096:405:1b3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 00:16:19 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:19 +0000 Message-ID: <87cyfx2qlo.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 3/7] ASoC: soc-pcm: use snd_soc_ret() User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:19 +0000 X-ClientProxiedBy: TYCP286CA0344.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:38e::16) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYRPR01MB12774:EE_ X-MS-Office365-Filtering-Correlation-Id: e6482107-3b67-47f6-72ad-08dd457a5096 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: vF50EeIRy0y7OV5I90mUspIzHelOt/z2jGcyJzqPHu/NLjxiiatAWMBmdYQZ+U9DyPc1myuz7Wa4z1ndcEVP/+lsmn4Q4S8ppdHaN4sixM0VQ9XaWz5U9Gse20WKSNY5YPztyEkyxvNEvQWMAwfwi4xNNjdUjr5xbngSHvP8aVWvYH8ZLzJWsSreWqLYdYSPDwhFxZzSObYyfAQIRRpLAmQW1JcVqL7c02pgM3YOVDdVtLO4gnW4GaQuTqXn+cgT6XVdxI2gv2oRgzlg8pgVHE1iuPBSFvBiQ3tINywO0nbiZF8NvNyW6kgrZwqUM81ixiHt88oC3xBqPJYsbo8Ll5/7OXYIEnuqXswTEzK9Mk9m+soan1ZEYYrjavBhScUWNce5fiHzp9XWxAV8uztCKcmccmRwcnaelma6dD6azNjyZ6xBaiV02uuUBgdgrZGdZg4SQMcrx+eYQQr0Dl7KxuqfAqEFVCNGFShoWIbM0r27u3k1+5eTgD/pNJuQHKSQxTO5AnHy6oyikPDAaLHCmuYCPzidRjz8FbAZkmti/jXNpNFjcAyOSFAEIWFYidzJznCck2Ce5XYrCxTxfuJcB+I1triy+4TYxm2HgYBkr2TS+PF9LwMvV4dLBqBuNMYuK/J1RSMlZnM0fsOQLHYoffqqm4IyUTdMJRHK8TE3s731ZRpnEUde092vO2ATcme+jh8PVYmSnsxuXHwz1nsVRKY2eqkrPQ8QuwtlaJ3cz3DqIYY4ec19ufncQcJ1GoanFrYgTKrxY5tIrlSpazh5zFCXBAPgLStd6I19Q10FaW5CA81h6hBRx4HKDz65nXseVH/6HodSLBkeAHewwGdIF54PgW55JiHyb0APFn+PZ06hPT7NL4L9hMjWUlA6RPm+BdZGS9ZcF5c4e5cHnfzbZmwxfKrxORFJEObpKlUK50PNFju2KmhkeX2AZyo6pnsiF5SksbwDfpoB5lLhlQpWSPSupjgSPfe45TmFO0HXMwchBul5HWHeLQPthe+9Sx0Sb8vbXuHKxlYgdkO6WLKTs4MqrJgbeszN3+oxA0jHIfNZBos1TE3W8HOHaYFki/2B30NQNDs9hVBjRT1XuU+KRHGBJoQtFyRf1a/AjhEDBuPTrbuxLxaa1yj0eVZgMldDhvGXtE5k824z9UbA74YUVnh+ERdiWFf83bIisye5EFq7oLEoCvLGWYDC7qdgM6/Otahnwxfd14kkjQLr8FzR2QKq9Rjb1gFOjzJfYuqPZhGYgXMQ7JfQKo4JKQXbp/p8/3zwaKMlA0+xSzYslymkS9emo/mR9l5nSmRNaM+ydFG0WlAZP81eeIeYDsF+JPeKs+2staV61CTRcp8zlcd3lOJ1VayDZ+bOWxdXdIYEcs29ODCAojgqnN9+I4wFkTAojDq/XwpIMZ/BjzCd1ccgyKRraFr0jk4wMvP1eIPGJ8Ga+hvKlmx/BkPNXXALsdpJ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: By2x97ggIwOMy5NGw6iwQrShQry7WLh2iekhOQJH2zR0WVR9fltLG7ErCwC7wK7M/FKwbawhc0QPifU6PjyNMjUOOTXggEcK0l1gA1JNszzlVBmRmUEtY5YmreTp3PXF3Oids1rHbnUZIUeEC9wNP++jVKQzo+0FBLHNr9fESPjQzzW+PROjtu5de6djnA3JkvuDtsjGbAhx7R6QEYzbpvl5+EKDZyWENsnwrwWubo0d8SlNSkEgjTjDZfWC6OPrGX8OQGG1FEjhFC/p7UBJVeNyly3Qg53XmluenN41eGbCw2Uqg+cj2svfyCu/yEXJJB48OgvR7yhzzOsllki+DJp7TBDB4WXM7MyAPcELkbpRG69HNzfes2+PY7a7LyJGfFHs3PGLuhl8GKism15HkxHhkhk0+tdibkmM04u8WI7hgDZfNMkE8yysWhrmyTpKo7gUip3yIeE03P2Zp2qsG+6GOOsVIdkmrkCpNx27HP7OzazI2l65IIA3ShYULVKXdMgEJbvEzLh7yIiY2MVr3YOFjhKj+OOeaVuLFCHxbvP6nUuzsnGPYfVwPwfxWWG4MqJShznc7AaAt9vhXbfMWC7Nulqn6z3m/cIBNAcxCWOjecFdKDVEht7P6FTiL92sXmes2j6juWCzn6n3DpJF/FxoG4Cd46NonplfbTFKVclnN2duzdex6bS9slv8uGNjHl3VIBQZcHWoucRHngyollibj8uQ6duAhJgY6+6yVFjJJ8n3zAHU0DmPfMbCFzk08f9ZOsY7KX+G3IvydAJsterMmpZEc21Uq3jZFiZYCYb3Ay9rxe9FPYBtmIb6ogumnfoURUlwvhKX9po9oW8bt5jAU01ftLhoVudGu4msxgg8bRybMWxtL8T32lS+NPRu1mp5BxXsyuvnXM1oW6FyH9KiTE1U2iCXhdHVI4bhyk4VtTHK2bz1bJDN8LgU/TX9w5ftgr73AYk5Ckbe66sjAFNBKxq/OHf6mmcAd+4bbhIjT/dYMv3/+0URWXYBmv0sdl3ATf2DNprCHFAfafVOvMm2QLpROVBF+bHjCsgNy8NphxJHszurZGJXGV4ZWwCdYiNK0pgtZenBdEaLNXpkOv4FJ+oSM4rZ+F5ynLIAMXgWVJw0oFd9lpRweIeyEERAFupcgrbFthPAg2KZ4BsXo+w1c3YcwiLZTVaO9vFJ4cGvU0om3lt0bYArof1RUs4vgp+Sgpd+fO4BzZtz3jzeRF6CDSrwn90JpmsNv5VjmSw/X3XNvm5P2QSRxBvEoEdVn/gDFGsti2vwJC6tMrucOWIrIxvyW8NjJpA5za5gfgy7cnCdsP8yY83C6XMdVo60+eWSLLesiLhZ5CqBGWHMPRByz2Oh2lV1Z2Eu81+94JnDjRKUtb5ZAjWO+ZUrCW8Zw5fZku1pN6M8R7aGq4R1zYxb743eAgVvD18eLgnu9SnmF45mIi6N1qvweSfxVTlFDdiAfPyRP4FREhgmvqzorpsKhmmxxTfUR/ClQ9pX4z1O2GH62HRrNg8//F3ZP3XDZ6jhF8Vsf9kW9xwCNZR8hRjTWiF1Zg5x5C5fys0gV9zohCTDyuYS0a1BkOlHistAlmHqpx9FXLRfEhJutbSR2U2Kso0ViHFjcCUYuTOozkI= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6482107-3b67-47f6-72ad-08dd457a5096 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:19.7749 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mzYfz1uLrZ4Xk78tY2vWdk9uIPxtBM3FrbbA5H8EbIY9UFigH3uSplFEpHWespX+fpYXN3oUFMRT/rD3Ogz425kd/g3eZ0olr1XAJ4sS2B/8MdVFi9GN3ogGXPIFufIb X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB12774 Many functions uses below style for error return dev_err(dev, "message"); return -Exxxx; We can merge these into snd_soc_ret() which can use same error format. Let's cleaup code. Signed-off-by: Kuninori Morimoto --- sound/soc/soc-pcm.c | 96 ++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 57 deletions(-) diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index a2caa146cac2c..ebe99d369ca9e 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -238,11 +238,9 @@ static ssize_t dpcm_state_read_file(struct file *file, char __user *user_buf, int stream; char *buf; - if (fe->dai_link->num_cpus > 1) { - dev_err(fe->dev, + if (fe->dai_link->num_cpus > 1) + return snd_soc_ret(fe->dev, -EINVAL, "%s doesn't support Multi CPU yet\n", __func__); - return -EINVAL; - } buf = kmalloc(out_count, GFP_KERNEL); if (!buf) @@ -460,12 +458,9 @@ static int soc_pcm_apply_symmetry(struct snd_pcm_substream *substream, ret = snd_pcm_hw_constraint_single(substream->runtime, \ SNDRV_PCM_HW_PARAM_##NAME,\ soc_dai->symmetric_##name); \ - if (ret < 0) { \ - dev_err(soc_dai->dev, \ - "ASoC: Unable to apply %s constraint: %d\n",\ - #name, ret); \ - return ret; \ - } \ + if (ret < 0) \ + return snd_soc_ret(soc_dai->dev, ret, \ + "Unable to apply %s constraint\n", #name); \ } __soc_pcm_apply_symmetry(rate, RATE); @@ -496,12 +491,11 @@ static int soc_pcm_params_symmetry(struct snd_pcm_substream *substream, for_each_rtd_cpu_dais(rtd, i, cpu_dai) \ if (!snd_soc_dai_is_dummy(cpu_dai) && \ cpu_dai->symmetric_##xxx && \ - cpu_dai->symmetric_##xxx != d.symmetric_##xxx) { \ - dev_err(rtd->dev, "ASoC: unmatched %s symmetry: %s:%d - %s:%d\n", \ - #xxx, cpu_dai->name, cpu_dai->symmetric_##xxx, \ - d.name, d.symmetric_##xxx); \ - return -EINVAL; \ - } + cpu_dai->symmetric_##xxx != d.symmetric_##xxx) \ + return snd_soc_ret(rtd->dev, -EINVAL, \ + "unmatched %s symmetry: %s:%d - %s:%d\n", \ + #xxx, cpu_dai->name, cpu_dai->symmetric_##xxx, \ + d.name, d.symmetric_##xxx); /* reject unmatched parameters when applying symmetry */ __soc_pcm_params_symmetry(rate); @@ -846,9 +840,8 @@ static int soc_hw_sanity_check(struct snd_pcm_substream *substream) return 0; config_err: - dev_err(dev, "ASoC: %s <-> %s No matching %s\n", - name_codec, name_cpu, err_msg); - return -EINVAL; + return snd_soc_ret(dev, -EINVAL, + "%s <-> %s No matching %s\n", name_codec, name_cpu, err_msg); } /* @@ -1319,11 +1312,11 @@ static int dpcm_be_connect(struct snd_soc_pcm_runtime *fe, fe_substream = snd_soc_dpcm_get_substream(fe, stream); be_substream = snd_soc_dpcm_get_substream(be, stream); - if (!fe_substream->pcm->nonatomic && be_substream->pcm->nonatomic) { - dev_err(be->dev, "%s: FE is atomic but BE is nonatomic, invalid configuration\n", - __func__); - return -EINVAL; - } + if (!fe_substream->pcm->nonatomic && be_substream->pcm->nonatomic) + return snd_soc_ret(be->dev, -EINVAL, + "%s: %s is atomic but %s is nonatomic, invalid configuration\n", + __func__, fe->dai_link->name, be->dai_link->name); + if (fe_substream->pcm->nonatomic && !be_substream->pcm->nonatomic) { dev_dbg(be->dev, "FE is nonatomic but BE is not, forcing BE as nonatomic\n"); be_substream->pcm->nonatomic = 1; @@ -1493,11 +1486,9 @@ int dpcm_path_get(struct snd_soc_pcm_runtime *fe, struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(fe, 0); int paths; - if (fe->dai_link->num_cpus > 1) { - dev_err(fe->dev, + if (fe->dai_link->num_cpus > 1) + return snd_soc_ret(fe->dev, -EINVAL, "%s doesn't support Multi CPU yet\n", __func__); - return -EINVAL; - } /* get number of valid DAI paths and their widgets */ paths = snd_soc_dapm_dai_get_connected_widgets(cpu_dai, stream, list, @@ -2388,23 +2379,23 @@ static int dpcm_dai_trigger_fe_be(struct snd_pcm_substream *substream, ret = soc_pcm_trigger(substream, cmd); if (ret < 0) - return ret; + goto end; ret = dpcm_be_dai_trigger(fe, substream->stream, cmd); - return ret; + goto end; } /* call trigger on the frontend after the backend. */ ret = dpcm_be_dai_trigger(fe, substream->stream, cmd); if (ret < 0) - return ret; + goto end; dev_dbg(fe->dev, "ASoC: post trigger FE %s cmd %d\n", fe->dai_link->name, cmd); ret = soc_pcm_trigger(substream, cmd); - - return ret; +end: + return snd_soc_ret(fe->dev, ret, "trigger FE cmd: %d failed\n", cmd); } static int dpcm_fe_dai_do_trigger(struct snd_pcm_substream *substream, int cmd) @@ -2460,11 +2451,8 @@ static int dpcm_fe_dai_do_trigger(struct snd_pcm_substream *substream, int cmd) goto out; } - if (ret < 0) { - dev_err(fe->dev, "ASoC: trigger FE cmd: %d failed: %d\n", - cmd, ret); + if (ret < 0) goto out; - } switch (cmd) { case SNDRV_PCM_TRIGGER_START: @@ -2693,11 +2681,9 @@ static int soc_dpcm_fe_runtime_update(struct snd_soc_pcm_runtime *fe, int new) if (!fe->dai_link->dynamic) return 0; - if (fe->dai_link->num_cpus > 1) { - dev_err(fe->dev, + if (fe->dai_link->num_cpus > 1) + return snd_soc_ret(fe->dev, -EINVAL, "%s doesn't support Multi CPU yet\n", __func__); - return -EINVAL; - } /* only check active links */ if (!snd_soc_dai_active(snd_soc_rtd_to_cpu(fe, 0))) @@ -2768,7 +2754,8 @@ int snd_soc_dpcm_runtime_update(struct snd_soc_card *card) out: snd_soc_dpcm_mutex_unlock(card); - return ret; + + return snd_soc_ret(card->dev, ret, "%s() failed\n", __func__); } EXPORT_SYMBOL_GPL(snd_soc_dpcm_runtime_update); @@ -2842,10 +2829,9 @@ static int soc_get_playback_capture(struct snd_soc_pcm_runtime *rtd, int has_capture = 0; int i; - if (dai_link->dynamic && dai_link->num_cpus > 1) { - dev_err(rtd->dev, "DPCM doesn't support Multi CPU for Front-Ends yet\n"); - return -EINVAL; - } + if (dai_link->dynamic && dai_link->num_cpus > 1) + return snd_soc_ret(rtd->dev, -EINVAL, + "DPCM doesn't support Multi CPU for Front-Ends yet\n"); /* Adapt stream for codec2codec links */ cpu_capture = snd_soc_get_stream_cpu(dai_link, SNDRV_PCM_STREAM_CAPTURE); @@ -2887,12 +2873,9 @@ static int soc_get_playback_capture(struct snd_soc_pcm_runtime *rtd, if (dai_link->capture_only) has_playback = 0; - if (!has_playback && !has_capture) { - dev_err(rtd->dev, "substream %s has no playback, no capture\n", - dai_link->stream_name); - - return -EINVAL; - } + if (!has_playback && !has_capture) + return snd_soc_ret(rtd->dev, -EINVAL, + "substream %s has no playback, no capture\n", dai_link->stream_name); *playback = has_playback; *capture = has_capture; @@ -2932,11 +2915,10 @@ static int soc_create_pcm(struct snd_pcm **pcm, ret = snd_pcm_new(rtd->card->snd_card, new_name, rtd->id, playback, capture, pcm); } - if (ret < 0) { - dev_err(rtd->card->dev, "ASoC: can't create pcm %s for dailink %s: %d\n", - new_name, rtd->dai_link->name, ret); - return ret; - } + if (ret < 0) + return snd_soc_ret(rtd->dev, ret, + "can't create pcm %s for dailink %s\n", new_name, rtd->dai_link->name); + dev_dbg(rtd->card->dev, "ASoC: registered pcm #%d %s\n", rtd->id, new_name); return 0; From patchwork Wed Feb 5 00:16:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960240 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011039.outbound.protection.outlook.com [40.107.74.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6CEB88C11 for ; Wed, 5 Feb 2025 00:16:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714587; cv=fail; b=E5KXSjt3DIPIwVUy1xDV4jCPhov3sHX2tg90jvRp4xXTg8MyTWRzRdN/W3R2r64RUTfN587uYTbeFnCrycca57RHyPTvXzPVDIXOCceIkJMGe4XX1DciiMUnWKDrSfNuBumGe9XQ8v9+pAETyM9sg2L/FRB/8udul1VTNxNjpMA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714587; c=relaxed/simple; bh=2N7R+/1XE0pMg+3cGG7F9YaQSlyeBrfuKJCNErxAtwY=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=fEfmvMUNKJI11aANQ9MPjvL/C/SoHvuVOuDviGNscPgCsEuV+NcT9NGOQRr7Qo4XI3/Zj/XVvn1/iG9oKZ9sEoc08WUbCZW9B+oIcOYg1c+f38qif6Mj37xylLi6tpvgICiYqhsR7r6iKpLoWJn1qYHifk9mr3+P3DgDF2EteuA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=E1df0Cwa; arc=fail smtp.client-ip=40.107.74.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="E1df0Cwa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eLxJGjDRmHUcJ9Q/R1ADYYCYU24qOY/91ItBkYW9wm2YBw6JkiqIUtE8rTrRYhMYKWXgH07Zc3P2u5REvnTiB7rjezvTUutZyJYjDGHb0KOk4uXZ/7Haf0FX6kYFINM10Twjc/Gd6FQfKTnp3AGnKW7M91ZjIpry2ALzL7JgokazIXdnpfA50abbETf4JJZtItJCkInnhXWUL2Y15zF7vnLLfMItgPQkxUjusPRA1MaUGN9TTZIlVmZEyGzxhtWuqsxGuZWpFFEKH5QGlL0RPYLQhVJ0x1AyI8l6yg55qoe34RBcQGUKnhD9n7ZGQN8UtBM31UbDRVOkGabrh7BpVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=45ej9izMZ7IL0v2qHPl//3PtYamrYKGW29CuNl2lVpk=; b=TbgiUPtDi5RsQXbRQn2/wR9Tak3DgPBbhDVTKQ0hnFBEXy+kmd/Yio8/XjFi/vmDazojr721DuEbx5XevKrnjTRjI0pSjyS9dqdMeIes9bSmO+NsQBWE3gFYaWbMr8lIxV/T0gCZzbEOnfOYgIgcG90wi00xVYN1YSTvFoa4ZVvIZAxdvUVAem7VQl1JhZF+uJiRCZFjN1noYP5mTz5r43cknrHhyP73ZSwOECuPnhphoF4I/S/74AA5/JWWXEA03jf6nkxpc/+upcHSgYQ2bEyf+aRGKo6hDRurnb50pghc7e/073TqPiieaOWTLqgDN3lLDItr3xmYa6Cbc7ZA0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=45ej9izMZ7IL0v2qHPl//3PtYamrYKGW29CuNl2lVpk=; b=E1df0CwaATVWHj9eRj5X7BoNBbLRAHgpKMDAsGa/KMJUYR51z42ZLBTsS/vaGrXU7dOrM0q5RrqhetIj5wf74WSGkBpbsBhcmNSnyTki0kV2BDY4rSBnwIIuELWsIOfcUcHNuudfJESudGIsVCAr7d284xJAiYrPkrn/X/qBruc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYRPR01MB12774.jpnprd01.prod.outlook.com (2603:1096:405:1b3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 00:16:24 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:24 +0000 Message-ID: <87bjvh2qlk.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 4/7] ASoC: simple-card: use snd_soc_ret() User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:23 +0000 X-ClientProxiedBy: TYCP301CA0026.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:381::10) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYRPR01MB12774:EE_ X-MS-Office365-Filtering-Correlation-Id: 17d89a49-1fb1-458c-7d8f-08dd457a5318 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: CeaRLQpcqoq3+88dFOsSkrPkHPBLnRBw+SHxU0a2E6XIqHMViEXi7Ut9G8lhomdX/QNV63UxuMZTOmRnTmsc4C2ReA1Et03SfNwf/BMNRMs8c1j5Sh6ksaWF7MGjt/KGb51IZ0LIog9Ei1Y3BwgkYEb+AFzXNhs2uZyuaPVi11ff7zTI+8Dfvc6lYhp7B4ykagXq1mfZPzH27Lh2Z3dwSdg8GTSmxFi+H2bUjUv3+g1svFxmpMoHfc0J/CAb6IFTDiPeILf82hs+zEFllweekdtcMAwJqS9tMPMo6dS9bA2eBMAwL9wzixa4GW2JUr0caEBCqyXiQWtSFM3eFIIggMIDa9EZnlzbZ8FHjJU4R8JDPt8FhOAOzlL2Y8gluahL/4a40qey9//iPtNlPYleclDLMgS81bwTP7HPA3cxuLVG9qwZ3u0baaYq3LjwGF7bz4IraPteHJ3md3sLujebcPZVMVk7ehxuqTw29HVjgMT9BLDn/6ddbR8oP0Tj/NnbLjYYeBJlIO3kVOaLmvHANNquX9p4exPX7+B6k8chlrVpVspvY/UoXds27OrJLfTedxW/TPVICPms79kKI24dc7TTCqSKqJtQGdmtjiaYHmXNOGecZh57xkfWLemdsTvWvow8fUCEPRtysjdGMSrrXkK1GqacUVwartoRoK06WPf6yRgABtGuj96AEKlAxeEpP7X349HtDV9oXAFSXURBM6KIGwPPehZlVfU6wdVBt8whphMpnRrG8OfPlFYCM64an82Y/VY5ONwIeHnn9o3WYtup2xsf2gTRS7RaMuP/VylHarFT1QYEuBn/XYHrbfpqQcPnXng3Fx1RtXQ2iphajpx7tktTr6UmmtBdDPBpEdcDhbIe0nzUqvE/Drj91d7vx0Rrhuk24Ge/Qe11s7M5qJnDhX5Bx/p9r9VncWmZJBjaeO8VUmI9O6+J0jLhVuAp5zskCRDklBzU8XDaTi6q03d8eiFOnXg2zlMrSgh8vAINAvt/4bv7SHy7cwH4HN10ZZlLuSGODXjG0/ybpZXPPWsPt5kqnF8M9AWZi59aiUv8uKA0QIpFERaMW+9VUCMYSW6YuHbp9eTvht7SbtUqzIIQvJQ/jB2Qv46l+JCqLjrhhUWUYVUncl3jADJ5T5bGs5xEt7zjLMNODNP0R5LybJtslEWMmLl8yzauidf+3WZrYXxB/E4J++iPTfUgtYqtuhVLzf8nitWlk7s7PvlQ3uFrN6QJwcrdvXLaTj+AwKLeOEm1chtwPciCd1rI2karNShRrXoSX4Z39qNE4yStiAVfePZP2aLtD04IMWkSmS2qPW6Wf5LwVIxplUq1wroh1YCHVT43I5TdB1GcMDEZ8997Q66OwT5tlJIR+ZyJ28f+meVx8FiqhUNbi7UKSn4NupW7v3lP+M2Tad8rTe8D3Xxs8szegGH3Z1cnL/HMDSrOxyBXzOZPlrtK+GTGdjt6 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ec9YDcTw2sqmTe7tDtwo66k7tGaBvMERDDPYZMaLOrhm0MMIWxzoCz7ActoN9MhCIOxAKxms1gpKxLxBkGBzsBzidCnVooe9w1PbdkjdAh8Khg8GIYZwoafz1gNPukoSegAHP/5KrDMtaKqFeqES4HptPT5zjGUnN75KzWqUxNweWDTRLN0EfWQer6IONmRfIIwhicy8z6H3VQfgVsXG8DY7LNmZzceYBiYUwVbM1kiV7Nps03pUODu91pmdxLnBIi5hV9YnM0zjYv2R56Wjby5qKVo+UDXUpO2Bs4cq97UBESKOCwjMwMUafiXI/QKqVl/iA3ZJ1Ruu04ksvgj3O1ckqPT+I7FxcbL8VoWdZbnUT53kOsAjzbUo/ga2F7hPvt8toRkLUUXvIAId0VBaVCqsierBedCnH1RjDizrhhWLV2SAGV/fUzP9AE0M/wqkFIqJ3t90e3yLUDfPXErt7DZjYm8VQwUR+itNMpcRB53xryxP/wUgimyx0R+8YW3za7bQd6/v2CXVpm9sXgaNJrLca2V6ptVtRh7wb6cZWII/9C+mfrY0dvTHAixw360Xap+ExMpaOFv2O4BvCgN5PAq1OIpv0R4EPs5VKZ+RXotbHzI0bjISZxkY8ruA7We7K6zeoDUxUqutkCBlNxDjLBV2QLvHjboFdUdUbXiR27YYILhCDZMuBThlQKRQsyd1xFbgWHEz+WylA6dY9oltccNUoSFBEgJadybCd1Xu+m83O/WnN/GlbVopLqkZYDNdFh+f90RRjugn+3KQM1chFC5whzqfYJS2LTyOyROidgx03vve4vkT7r1o0Gmi1ycx1IUH6HVTF7GsSvsgv6/CPUAmga2L9OdM590rgb6h7yHGU/Ucj/lC9HmuuPkywLQX8eTuqX0PZWeeUZzgnIsV0aQOX6a8WFTA9ifeK8K0UAeLCnmGg0FNPY/7TzGUx3cNJNRs/lpgqOC381RlenNgv100HiXaXUqbk6+8q2VqDdUfTH6APQ9uPnHRpQdR4S68STnxNAFDRv6UIbUffU8kZdPS2N0Dbya4wiVLJaydcykgg0y4RXYLjciU2ZJkkdy3/0uLvFKj3eM2BqZw2So40QU+CZy+kNf811SdW4SniiAfQ5KBfs9o5bbBcTgk+3/uuPlMf7+eLiylIvvauyQBrlYIw6f/52ngfsCRd9dO12H5UUOSukBPhMWwUckA6PtYpP5uyWr4FokIlWt0MX9AJ8qwIX+pgdjmiZ/9vVCAZDeH+kiON13xS6hAUNtdahb/IhcnOvglTWYEft+teQZWomsHE+DyLqAdagI2X1Xq9/d7QeYSft/lqrMT0lnNtfb9kNAbyz8VJLt9vpT3lOTOoE0Q93IRWRKY6E7IVUo+VObq7TpGGi/VjWaB0qzH3p2NVszkvBebhcXsMe5LyGhB/DUm2stR4eB1khaAB12LHoBcy2B2hjJPYmbZCVQXlMF6WdhgHexlJyJWEWuGXz7UB0aNooM1eZx4WeqziM2XBM4vi8WncGP3ULhdIwa7Un5PUAaml6LZpEH99rlRRyR81WxzJUJkZIOXakYFr3yy4TA89Xij0B2g55YY/Z7EBrL1i0LSlQNjolJe/swGGwf8LB1rsyaJOsamjechxGuUbNc= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17d89a49-1fb1-458c-7d8f-08dd457a5318 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:23.9787 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LecFCcawbrMp+6CqEQhJRwaoJziLDOwgAMo/5pla3wz3dDQMc2rcLd6Cm2LTpXK6iJNRoEo5WdnIsDZhPaUOT5/qFkgvvS/Qhgk9yglrIvlPqEW0LYvayOsWoop071iD X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB12774 We can use snd_soc_ret() to indicate error message when return. Let's use it. Signed-off-by: Kuninori Morimoto --- sound/soc/generic/simple-card.c | 130 +++++++++++++++++--------------- 1 file changed, 71 insertions(+), 59 deletions(-) diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index afe7e79ffdbdb..004fda4504c42 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -29,7 +29,16 @@ static const struct snd_soc_ops simple_ops = { .hw_params = simple_util_hw_params, }; -static int simple_parse_platform(struct device_node *node, struct snd_soc_dai_link_component *dlc) +#define simple_ret(priv, ret) _simple_ret(priv, __func__, ret) +static inline int _simple_ret(struct simple_util_priv *priv, + const char *func, int ret) +{ + return snd_soc_ret(simple_priv_to_dev(priv), ret, "at %s()\n", func); +} + +static int simple_parse_platform(struct simple_util_priv *priv, + struct device_node *node, + struct snd_soc_dai_link_component *dlc) { struct of_phandle_args args; int ret; @@ -43,7 +52,7 @@ static int simple_parse_platform(struct device_node *node, struct snd_soc_dai_li */ ret = of_parse_phandle_with_args(node, DAI, CELL, 0, &args); if (ret) - return ret; + return simple_ret(priv, ret); /* dai_name is not required and may not exist for plat component */ @@ -52,11 +61,12 @@ static int simple_parse_platform(struct device_node *node, struct snd_soc_dai_li return 0; } -static int simple_parse_dai(struct device *dev, +static int simple_parse_dai(struct simple_util_priv *priv, struct device_node *node, struct snd_soc_dai_link_component *dlc, int *is_single_link) { + struct device *dev = simple_priv_to_dev(priv); struct of_phandle_args args; struct snd_soc_dai *dai; int ret; @@ -70,17 +80,18 @@ static int simple_parse_dai(struct device *dev, */ ret = of_parse_phandle_with_args(node, DAI, CELL, 0, &args); if (ret) - return ret; + goto end; /* * Try to find from DAI args */ dai = snd_soc_get_dai_via_args(&args); if (dai) { + ret = -ENOMEM; dlc->dai_name = snd_soc_dai_name_get(dai); dlc->dai_args = snd_soc_copy_dai_args(dev, &args); if (!dlc->dai_args) - return -ENOMEM; + goto end; goto parse_dai_end; } @@ -106,13 +117,14 @@ static int simple_parse_dai(struct device *dev, */ ret = snd_soc_get_dlc(&args, dlc); if (ret < 0) - return ret; + goto end; parse_dai_end: if (is_single_link) *is_single_link = !args.args_count; - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } static void simple_parse_convert(struct device *dev, @@ -149,19 +161,17 @@ static int simple_parse_node(struct simple_util_priv *priv, dai = simple_props_to_dai_codec(dai_props, 0); } - ret = simple_parse_dai(dev, np, dlc, cpu); + ret = simple_parse_dai(priv, np, dlc, cpu); if (ret) - return ret; + goto end; ret = simple_util_parse_clk(dev, np, dai, dlc); if (ret) - return ret; + goto end; ret = simple_util_parse_tdm(np, dai); - if (ret) - return ret; - - return 0; +end: + return simple_ret(priv, ret); } static int simple_link_init(struct simple_util_priv *priv, @@ -183,7 +193,7 @@ static int simple_link_init(struct simple_util_priv *priv, ret = simple_util_parse_daifmt(dev, node, codec, prefix, &dai_link->dai_fmt); if (ret < 0) - return ret; + goto end; graph_util_parse_link_direction(top, &playback_only, &capture_only); graph_util_parse_link_direction(node, &playback_only, &capture_only); @@ -213,7 +223,9 @@ static int simple_link_init(struct simple_util_priv *priv, dai_link->init = simple_util_dai_init; dai_link->ops = &simple_ops; - return simple_util_set_dailink_name(dev, dai_link, name); + ret = simple_util_set_dailink_name(dev, dai_link, name); +end: + return simple_ret(priv, ret); } static int simple_dai_link_of_dpcm(struct simple_util_priv *priv, @@ -290,7 +302,7 @@ static int simple_dai_link_of_dpcm(struct simple_util_priv *priv, out_put_node: li->link++; - return ret; + return simple_ret(priv, ret); } static int simple_dai_link_of(struct simple_util_priv *priv, @@ -330,7 +342,7 @@ static int simple_dai_link_of(struct simple_util_priv *priv, if (ret < 0) goto dai_link_of_err; - ret = simple_parse_platform(plat, platforms); + ret = simple_parse_platform(priv, plat, platforms); if (ret < 0) goto dai_link_of_err; @@ -345,7 +357,7 @@ static int simple_dai_link_of(struct simple_util_priv *priv, dai_link_of_err: li->link++; - return ret; + return simple_ret(priv, ret); } static int __simple_for_each_link(struct simple_util_priv *priv, @@ -443,10 +455,10 @@ static int __simple_for_each_link(struct simple_util_priv *priv, node = of_get_next_child(top, node); } while (!is_top && node); - error: +error: of_node_put(node); - return ret; + return simple_ret(priv, ret); } static int simple_for_each_link(struct simple_util_priv *priv, @@ -479,7 +491,7 @@ static int simple_for_each_link(struct simple_util_priv *priv, break; } - return ret; + return simple_ret(priv, ret); } static void simple_depopulate_aux(void *data) @@ -500,9 +512,11 @@ static int simple_populate_aux(struct simple_util_priv *priv) ret = of_platform_populate(node, NULL, NULL, dev); if (ret) - return ret; + goto end; - return devm_add_action_or_reset(dev, simple_depopulate_aux, priv); + ret = devm_add_action_or_reset(dev, simple_depopulate_aux, priv); +end: + return simple_ret(priv, ret); } static int simple_parse_of(struct simple_util_priv *priv, struct link_info *li) @@ -512,15 +526,15 @@ static int simple_parse_of(struct simple_util_priv *priv, struct link_info *li) ret = simple_util_parse_widgets(card, PREFIX); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_routing(card, PREFIX); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_pin_switches(card, PREFIX); if (ret < 0) - return ret; + goto end; /* Single/Muti DAI link(s) & New style of DT node */ memset(li, 0, sizeof(*li)); @@ -528,19 +542,19 @@ static int simple_parse_of(struct simple_util_priv *priv, struct link_info *li) simple_dai_link_of, simple_dai_link_of_dpcm); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_card_name(card, PREFIX); if (ret < 0) - return ret; + goto end; ret = simple_populate_aux(priv); if (ret < 0) - return ret; + goto end; ret = snd_soc_of_parse_aux_devs(card, PREFIX "aux-devs"); - - return ret; +end: + return simple_ret(priv, ret); } static int simple_count_noml(struct simple_util_priv *priv, @@ -548,12 +562,10 @@ static int simple_count_noml(struct simple_util_priv *priv, struct device_node *codec, struct link_info *li, bool is_top) { - if (li->link >= SNDRV_MAX_LINKS) { - struct device *dev = simple_priv_to_dev(priv); + int ret = -EINVAL; - dev_err(dev, "too many links\n"); - return -EINVAL; - } + if (li->link >= SNDRV_MAX_LINKS) + goto end; /* * DON'T REMOVE platforms @@ -575,8 +587,9 @@ static int simple_count_noml(struct simple_util_priv *priv, li->num[li->link].codecs = 1; li->link += 1; - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } static int simple_count_dpcm(struct simple_util_priv *priv, @@ -584,12 +597,10 @@ static int simple_count_dpcm(struct simple_util_priv *priv, struct device_node *codec, struct link_info *li, bool is_top) { - if (li->link >= SNDRV_MAX_LINKS) { - struct device *dev = simple_priv_to_dev(priv); + int ret = -EINVAL; - dev_err(dev, "too many links\n"); - return -EINVAL; - } + if (li->link >= SNDRV_MAX_LINKS) + goto end; if (li->cpu) { /* @@ -606,8 +617,9 @@ static int simple_count_dpcm(struct simple_util_priv *priv, li->link++; /* dummy-Codec */ } - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } static int simple_get_dais_count(struct simple_util_priv *priv, @@ -683,17 +695,15 @@ static int simple_soc_probe(struct snd_soc_card *card) ret = simple_util_init_hp(card, &priv->hp_jack, PREFIX); if (ret < 0) - return ret; + goto end; ret = simple_util_init_mic(card, &priv->mic_jack, PREFIX); if (ret < 0) - return ret; + goto end; ret = simple_util_init_aux_jacks(priv, PREFIX); - if (ret < 0) - return ret; - - return 0; +end: + return simple_ret(priv, ret); } static int simple_probe(struct platform_device *pdev) @@ -715,20 +725,22 @@ static int simple_probe(struct platform_device *pdev) card->probe = simple_soc_probe; card->driver_name = "simple-card"; + ret = -ENOMEM; struct link_info *li __free(kfree) = kzalloc(sizeof(*li), GFP_KERNEL); if (!li) - return -ENOMEM; + goto end; ret = simple_get_dais_count(priv, li); if (ret < 0) - return ret; + goto end; + ret = -EINVAL; if (!li->link) - return -EINVAL; + goto end; ret = simple_util_init_priv(priv, li); if (ret < 0) - return ret; + goto end; if (np && of_device_is_available(np)) { @@ -795,8 +807,8 @@ static int simple_probe(struct platform_device *pdev) return 0; err: simple_util_clean_reference(card); - - return ret; +end: + return dev_err_probe(dev, ret, "parse error\n"); } static const struct of_device_id simple_of_match[] = { From patchwork Wed Feb 5 00:16:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960241 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011040.outbound.protection.outlook.com [40.107.74.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 81F9F8C11 for ; Wed, 5 Feb 2025 00:16:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714592; cv=fail; b=WnRmALGcJLGHHNjWhGFWaJh92L2XNxbxfGINSh+Y4oVoZ+y5aHhXluXmyZwhfc7L3qGItkus5TNIXnJtLGKVlTdI4qtWhl0iIbRgGaUL05eH+S8vBWdeXBVVKhP58xnEhf9fGXD0z2shyRggWLeEp0cPiA84Fm9X5TszMr0P+vo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714592; c=relaxed/simple; bh=KYIhKKl0Old86GMWkuqn0/Fbl98khVivX6HvMullBLQ=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=LHmWyUfnrZp12D+TJK31KYz4AGB/dHNb/6O6b3yIQbrKP2F0iMvlHQwgW/Ub0OHxjKUnKC7mH91gqRM6Dk/LBv0iixmRfUCI2oiZAd+OfmMxvAcUfdEMU356HlPIUMlGMbqaUyJg1BHQCAcJA5LTRIefivdT9+H1yUn2enWXQtY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=cKdy9xyk; arc=fail smtp.client-ip=40.107.74.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="cKdy9xyk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CFmq8SpWq/N0yae5EGr310UmQOaXPurT8wnGYfQNaUsjuCVznP5Y3VRvbynBN0JpfrMWUBLCm+mRw+qzhJl0P0osNjsIkR4DLOnU2YyIQYKzJFG/Q/O6zqNFinbGMTF7YvUcaIjsQQdrssFsyMV5WuCer7cuA/LxNDZLz55pmhTUbQLLkZT2npTjc93iXx7ajugiWEC1CeGHc3v8M4WAlLhH+GBn4ko9mCoAeQmiNnOElNBvdhDpv6fGw/9q88KtvmyLd7/ix/lFsJwGn0CB43bRQqM5JF/EPufj3TgeytZEimImAcx0DrhiPb/HDDUHrSZmq4f7sMkIfy6tGVziJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dMVXdCR/aUxJlyoN79BdkJK4FrGVoAKrvRvzDzt/foo=; b=rkW2ncsD6IJv8D9wYfH7DjERxtz7Ta0VSADnbc+5jNBdZUutsUHN/DqnlP8F+71mgdYNCjsiqGG1Qn2GZoFdurRbD9XKYCcn8COPIsJiZ6RVkuruJtleh+wiPbWPYd16yerOmCXFjh2v1q9Zdqn4aXWGzJxrKf1kKVhTUcIGhPSWPt3XSlUJPWKlxFW+0E9/z6963Q0TihKK8Kub9RzX2b3aGBe3wy+/y/GfAP+buAhhw2ZSAwHqBjzLE6TzDc2u47dAwuyPinK4P3D2FES1R2LzW6IXwvDioETWamshyygdgMHFLCTIakBlfYzahXVjnc4Id64IzEJrfPg6ybXOqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dMVXdCR/aUxJlyoN79BdkJK4FrGVoAKrvRvzDzt/foo=; b=cKdy9xykcoSEA8buxn1Cujvl90yVNYDWJIpaLCJUZgvWLrBOwO9vzpXwu9NJzv/79EKIlyFdI0SmRNNm4AUnYys04bExW132U4ZDTCc5RXWUnmHZEs27dSNyjO83jQ5Eaa/ybgVH0ejmRm1hutblqNrnjCvqIhfDIqryaEDnFNk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYRPR01MB12774.jpnprd01.prod.outlook.com (2603:1096:405:1b3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 00:16:27 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:27 +0000 Message-ID: <87a5b12qlg.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 5/7] ASoC: simple-card-utils: use snd_soc_ret() User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:27 +0000 X-ClientProxiedBy: TYAPR01CA0174.jpnprd01.prod.outlook.com (2603:1096:404:ba::18) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYRPR01MB12774:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ea2d9b9-6d1a-48e4-0b24-08dd457a556f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: xCtJnaKyAwthTwtP+0hFYip7QYb0pFpPEkYGz6KD8umH5/OZmJjK9237Li30MNJA7uXp2GGsDpirDKWTBU+wNgDScVmmsXnKNhqi3CIB5ufA4OWzMcOJE8PiIlXRzjbIfeUgo2dkIimKc2JaNSG81VqNpYXHBAxThqybyZdLOqAR/dvoJKaY0tS0xyu7LYmtPtbp+GxOGph3dyqwXZk/aTv4iNP0SkYUWVEsY0HgR85hnSyVgV863NLanMC9QI+eKtNZq8jO8FH7QKp1uU99wPfbaTtXG7oB7261L8sObzGp5iYuIeMASrUyWL065/ZRPwtzBAEa7q7E8xhkUZAcrEeY/AWbTylV2mDtVU3NWMYzpeFoGhXmY3CqKQM6OIXq4h/f6jnYP20dAwuu4l+FS6dlvDDYLfiTxjZpzmrgLIrNGh52KpZtgxeGIq0H2pWAixKjyX/vutvGXWMo+ae+mHm1yvTU1IbC2Qh0n9QDyq+GDH9vqN1NhckxpozWrP//JqEav5QFjauXbvHp0XvQOMsxbwvx5wevS3oq0LwNz/ObBQPL/pHxDi9VKG4yq9Jr3IXOCw8f+J3dh9qSkW3nQ7/qwE5V4ZUHQ3a0XRkN3/cVDPvhdgsdfKvDIUOtQJuzOlaad6dtdex5EP4HcshkMiGc5ZxoY8ec6yBEUqc27Tn0sKFE91C4AVRiwLKOaHFuFrzC8YN2pu0N6u0pWuLdDTIJ0nKOGLfZjrEW4yGvGCGXQAxnKT5ncIHz+gGkbsYSHFN0FEPevaGn755Az4D2LT8yuJYjJXwzdVP/lhWGk79dXvHRsKolUzR4AebfmymVRnMg4dWsrAVCC/p3R/iCenWC0D/RSI8mozH4EMEOdgsYQNCfvyZeGHIHMmEoomRaZWPF/x2Pfwm39qqWDmSJ/NhXZFJnpnn4d6MVUviTUeJPEKssnbJcdj4FuP0WlH2Xm+r/ZyX7Lqjf+hS60iKGopJ1CA15kOwWJilpKBlanMVhvChSApyUCy9CkzmpiOL3SBY+XadsRSvcMtFEmZyJ7IMTNwp8fxs8Y1R3Jd3GUjDJOKCSE2Y0MVK/NaH6ve6cSYxKwKqVPufZv6nyhKB0viW6BpNgocVXCgRHHPumPhRPBV1o929I3P1WJ+HoHGbO+POZH3CCQNrVcCsMYJlt8Xm86hWlr1BdGMQz1yr1dN6tcbmqwVsgQKcRHmpFxcCZHy8pZKWZE2FU+jiNdelxKKfZGRpFMgJjugeFsAKWuITLYH1uAP1kScrvfQW970wcjM9Yjlc1Ec3R5+/gt+sTtC3UKwEJ4nFmkXuAAe5QZTyBssJZqHCQcSKB8XeK0M3KoCqYOjE0bFYEKVO0uTtP0Vx9XmFrGGR3Ec2aWZuSnB9vShKI3iJ04+vfIWq3RkSgq4etHXaeddNq2tulpcLtIrJJDsFT/zp9pq99YAFWSb3mm2kf56Yf+nhzmcEw50za X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: q2ERflCIckRrynDYKTVPbECV4cTR2FydNoJYbIPF3axtV5jWFTDdYmfXWM1mDZ1QPtri01p1mbk+2qZbyMSSqqurv03IxunH3+sYnFewZkdZ1IycV5V0gSvO7H4rpB4E0ozQdtKy1s+jLcIKAXQ4hOLkHNEYP0rErOsuMaYOelVmFlwVbBH44BAhhZEXzIuCLCUFxuTjCL9AYiu5WvakmczEqJg2Dl1XikYKICPhHT9yXJ8QQklYGPSzA/8ObvNHQkDS53FeU+TDNaaL8u7IkGgYl12XSOQfeAdfZD77vMGl4CjM39UiC6P8L3bnXeprMclZIyMiqx5bwpAKdn2exbchSuvfo8JVwzdpc9bNUDEz1dFhpLy5ILnADiggh/NaLVSZC83WZRyJtq47O4/l0BdlfdsNw5WqyrG5y0rlwbTx9Q0dyiA/x1sTvZraBVhO40qFEBLq44BQVshKseIeWn3t3qKtPZk/Kdsoqj/z5zwdQQ9s3AU0uTvxSs4u94Nm6Tb9GVSxVj/phk+bla4p7WlS/N0K1g42HMsa4x/cZfxAjosx/NQnDSyazZfilUYEZ8wezbfLDvjHLyw7shFjqL64w7Fc+zVypggaa8gYpxn4wqwfXYmYYUFX7rbq01PsaJQ80jYfM2DO2JTKyWsStgRYyXWlUOeYQwCLlUWGYXgKLqETgllbdt2Ymg5l26heeF8ALYNh8Tp/IqppNhGJnXqgkVpxa2tsVy34Chmx4argXARrbcnqcxLJOosfRA3jCvQHxTcRWXbCZH17+I2hbgm/9i2GvDK5SxsAG90xnG1djndJSvNfkfEH7x16wXH9rQQQQGD0AOhulXqiNLCOD1KumbrFjGd25dySmyqHaTqz0jZfgwIxwiPTLn67ZEjKG/q32tAjjql8vqX3GICi94F8KvlMZZGIcOaXdRYdROIZa20OPkqxfS+NdU1/ciUuGsAsnFaZ4R/uPEPDvtLRXeQENzU5AeMKBqqgKsvVMW34nHkRqBBICdb/1bUamCX6DWp8dW6NaqqLVFn3ecxrbc+2KvMfzScexFSHhaEOs7FxXyQl+dLFmIzbes4Lot03sAer6joB8cldG1CLTabYhUyTtPeUw3UWkNGF/6frGA4B647/h/5Xj0gSr5kmiVKqpwcUKVqw6ij50VgzbrWootmieqLh0g6oul3lfj7kebhLfxJoCecAJor+ZUF0Lis1Oy86fUKTORoWsdg8lgSGxmJI9Ve4Y30/cD1sfmAZBxjOs03mlnOBDiTgS1G3uOVIhHbTk3hTmVonrFFadkIhWwDJrZcwERv0VD6UvXPYgkVQ9z/vRF827XrvN13SJHDGBryDwG5f/oA2FFAfa5dCMUkX8W+MoAum1Hq0n2JkkfgMGSktiPeVxQZhuaR5YAYmhdoi7Wtn6esLwrPXSCXe1xlBrwBJRfndu3i955RqffRm5k70TUFu6foe4gbwiw6FaIWXp3se2H9+6HrPkkmk5AeuT5RVdL6v+J6HVhIwEjm4tbXUJrkV4rW5tEsXgxZzeyPPd33ccN+Y7UDq+rRMKDpg+MVfUIbHKxEQ19hgB67sO2gUl77BEJO7qJNeW5HsfemKjeXKRNM28XkuhaJkSTc/AWmn/TGikBj/2hHiGJc= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ea2d9b9-6d1a-48e4-0b24-08dd457a556f X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:27.9019 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UNLY8RFBo3RXPz16kix0gbD3GKGMI9PnYu4SqjSWenj+SeYFQdnyOypaK7Hd1/15IOd1y57l0Fp6VZPzvoqQPAfHVQo3IujrXZbzvIF2GQcuWr9lMO72LBfNgw37onQA X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB12774 We can use snd_soc_ret() to indicate error message when return. Let's use it. Signed-off-by: Kuninori Morimoto --- include/sound/simple_card_utils.h | 8 +- sound/soc/generic/audio-graph-card.c | 6 +- sound/soc/generic/audio-graph-card2.c | 14 +-- sound/soc/generic/simple-card-utils.c | 170 +++++++++++++++----------- sound/soc/generic/simple-card.c | 4 +- 5 files changed, 115 insertions(+), 87 deletions(-) diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h index 892f70532363e..69a9c9c4d0e9c 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -142,14 +142,14 @@ int simple_util_parse_daifmt(struct device *dev, struct device_node *codec, char *prefix, unsigned int *retfmt); -int simple_util_parse_tdm_width_map(struct device *dev, struct device_node *np, +int simple_util_parse_tdm_width_map(struct simple_util_priv *priv, struct device_node *np, struct simple_util_dai *dai); __printf(3, 4) -int simple_util_set_dailink_name(struct device *dev, +int simple_util_set_dailink_name(struct simple_util_priv *priv, struct snd_soc_dai_link *dai_link, const char *fmt, ...); -int simple_util_parse_card_name(struct snd_soc_card *card, +int simple_util_parse_card_name(struct simple_util_priv *priv, char *prefix); int simple_util_parse_clk(struct device *dev, @@ -201,7 +201,7 @@ void simple_util_remove(struct platform_device *pdev); int graph_util_card_probe(struct snd_soc_card *card); int graph_util_is_ports0(struct device_node *port); -int graph_util_parse_dai(struct device *dev, struct device_node *ep, +int graph_util_parse_dai(struct simple_util_priv *priv, struct device_node *ep, struct snd_soc_dai_link_component *dlc, int *is_single_link); void graph_util_parse_link_direction(struct device_node *np, diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 7c422535b01a2..bd7ebbec0fc9c 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -111,7 +111,7 @@ static int graph_parse_node(struct simple_util_priv *priv, dai = simple_props_to_dai_codec(dai_props, 0); } - ret = graph_util_parse_dai(dev, ep, dlc, cpu); + ret = graph_util_parse_dai(priv, ep, dlc, cpu); if (ret < 0) return ret; @@ -183,7 +183,7 @@ static int graph_link_init(struct simple_util_priv *priv, if (priv->ops) dai_link->ops = priv->ops; - return simple_util_set_dailink_name(dev, dai_link, name); + return simple_util_set_dailink_name(priv, dai_link, name); } static int graph_dai_link_of_dpcm(struct simple_util_priv *priv, @@ -586,7 +586,7 @@ int audio_graph_parse_of(struct simple_util_priv *priv, struct device *dev) if (ret < 0) goto err; - ret = simple_util_parse_card_name(card, NULL); + ret = simple_util_parse_card_name(priv, NULL); if (ret < 0) goto err; diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c index ee94b256b7707..945a16e6d6919 100644 --- a/sound/soc/generic/audio-graph-card2.c +++ b/sound/soc/generic/audio-graph-card2.c @@ -409,7 +409,7 @@ static int __graph_parse_node(struct simple_util_priv *priv, dai = simple_props_to_dai_codec(dai_props, idx); } - ret = graph_util_parse_dai(dev, ep, dlc, &is_single_links); + ret = graph_util_parse_dai(priv, ep, dlc, &is_single_links); if (ret < 0) return ret; @@ -417,7 +417,7 @@ static int __graph_parse_node(struct simple_util_priv *priv, if (ret < 0) return ret; - ret = simple_util_parse_tdm_width_map(dev, ep, dai); + ret = simple_util_parse_tdm_width_map(priv, ep, dai); if (ret < 0) return ret; @@ -443,22 +443,22 @@ static int __graph_parse_node(struct simple_util_priv *priv, case GRAPH_NORMAL: /* run is_cpu only. see audio_graph2_link_normal() */ if (is_cpu) - simple_util_set_dailink_name(dev, dai_link, "%s%s-%s%s", + simple_util_set_dailink_name(priv, dai_link, "%s%s-%s%s", cpus->dai_name, cpu_multi, codecs->dai_name, codec_multi); break; case GRAPH_DPCM: if (is_cpu) - simple_util_set_dailink_name(dev, dai_link, "fe.%pOFP.%s%s", + simple_util_set_dailink_name(priv, dai_link, "fe.%pOFP.%s%s", cpus->of_node, cpus->dai_name, cpu_multi); else - simple_util_set_dailink_name(dev, dai_link, "be.%pOFP.%s%s", + simple_util_set_dailink_name(priv, dai_link, "be.%pOFP.%s%s", codecs->of_node, codecs->dai_name, codec_multi); break; case GRAPH_C2C: /* run is_cpu only. see audio_graph2_link_c2c() */ if (is_cpu) - simple_util_set_dailink_name(dev, dai_link, "c2c.%s%s-%s%s", + simple_util_set_dailink_name(priv, dai_link, "c2c.%s%s-%s%s", cpus->dai_name, cpu_multi, codecs->dai_name, codec_multi); break; @@ -1332,7 +1332,7 @@ int audio_graph2_parse_of(struct simple_util_priv *priv, struct device *dev, if (ret < 0) goto err; - ret = simple_util_parse_card_name(card, NULL); + ret = simple_util_parse_card_name(priv, NULL); if (ret < 0) goto err; diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index c2445c5ccd84c..51e0e434514d1 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -15,6 +15,13 @@ #include #include +#define simple_ret(priv, ret) _simple_ret(priv, __func__, ret) +static inline int _simple_ret(struct simple_util_priv *priv, + const char *func, int ret) +{ + return snd_soc_ret(simple_priv_to_dev(priv), ret, "at %s()\n", func); +} + int simple_util_get_sample_fmt(struct simple_util_data *data) { int i; @@ -133,33 +140,42 @@ int simple_util_parse_daifmt(struct device *dev, } EXPORT_SYMBOL_GPL(simple_util_parse_daifmt); -int simple_util_parse_tdm_width_map(struct device *dev, struct device_node *np, +int simple_util_parse_tdm_width_map(struct simple_util_priv *priv, struct device_node *np, struct simple_util_dai *dai) { + struct device *dev = simple_priv_to_dev(priv); int n, i, ret; u32 *p; + /* + * NOTE + * + * Clang doesn't allow to use "goto end" before calling __free(), + * because it bypasses the initialization. Use simple_ret() directly. + */ + n = of_property_count_elems_of_size(np, "dai-tdm-slot-width-map", sizeof(u32)); if (n <= 0) return 0; + if (n % 3) { dev_err(dev, "Invalid number of cells for dai-tdm-slot-width-map\n"); - return -EINVAL; + return simple_ret(priv, -EINVAL); /* see NOTE */ } + ret = -ENOMEM; dai->tdm_width_map = devm_kcalloc(dev, n, sizeof(*dai->tdm_width_map), GFP_KERNEL); if (!dai->tdm_width_map) - return -ENOMEM; + return simple_ret(priv, ret); /* see NOTE */ - u32 *array_values __free(kfree) = kcalloc(n, sizeof(*array_values), - GFP_KERNEL); + u32 *array_values __free(kfree) = kcalloc(n, sizeof(*array_values), GFP_KERNEL); if (!array_values) - return -ENOMEM; + goto end; ret = of_property_read_u32_array(np, "dai-tdm-slot-width-map", array_values, n); if (ret < 0) { dev_err(dev, "Could not read dai-tdm-slot-width-map: %d\n", ret); - return ret; + goto end; } p = array_values; @@ -170,15 +186,17 @@ int simple_util_parse_tdm_width_map(struct device *dev, struct device_node *np, } dai->n_tdm_widths = i; - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(simple_util_parse_tdm_width_map); -int simple_util_set_dailink_name(struct device *dev, +int simple_util_set_dailink_name(struct simple_util_priv *priv, struct snd_soc_dai_link *dai_link, const char *fmt, ...) { + struct device *dev = simple_priv_to_dev(priv); va_list ap; char *name = NULL; int ret = -ENOMEM; @@ -194,13 +212,14 @@ int simple_util_set_dailink_name(struct device *dev, dai_link->stream_name = name; } - return ret; + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(simple_util_set_dailink_name); -int simple_util_parse_card_name(struct snd_soc_card *card, +int simple_util_parse_card_name(struct simple_util_priv *priv, char *prefix) { + struct snd_soc_card *card = simple_priv_to_card(priv); int ret; if (!prefix) @@ -214,13 +233,13 @@ int simple_util_parse_card_name(struct snd_soc_card *card, snprintf(prop, sizeof(prop), "%sname", prefix); ret = snd_soc_of_parse_card_name(card, prop); if (ret < 0) - return ret; + goto end; } if (!card->name && card->dai_link) card->name = card->dai_link->name; - - return 0; +end: + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(simple_util_parse_card_name); @@ -348,7 +367,8 @@ int simple_util_startup(struct snd_pcm_substream *substream) break; simple_clk_disable(dai); } - return ret; + + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(simple_util_startup); @@ -379,16 +399,19 @@ void simple_util_shutdown(struct snd_pcm_substream *substream) } EXPORT_SYMBOL_GPL(simple_util_shutdown); -static int simple_set_clk_rate(struct device *dev, - struct simple_util_dai *simple_dai, - unsigned long rate) +static int simple_set_clk_rate(struct simple_util_priv *priv, + struct simple_util_dai *simple_dai, + unsigned long rate) { + struct device *dev = simple_priv_to_dev(priv); + int ret = -EINVAL; + if (!simple_dai) return 0; if (simple_dai->clk_fixed && rate != simple_dai->sysclk) { dev_err(dev, "dai %s invalid clock rate %lu\n", simple_dai->name, rate); - return -EINVAL; + goto end; } if (!simple_dai->clk) @@ -397,12 +420,15 @@ static int simple_set_clk_rate(struct device *dev, if (clk_get_rate(simple_dai->clk) == rate) return 0; - return clk_set_rate(simple_dai->clk, rate); + ret = clk_set_rate(simple_dai->clk, rate); +end: + return simple_ret(priv, ret); } -static int simple_set_tdm(struct snd_soc_dai *dai, - struct simple_util_dai *simple_dai, - struct snd_pcm_hw_params *params) +static int simple_set_tdm(struct simple_util_priv *priv, + struct snd_soc_dai *dai, + struct simple_util_dai *simple_dai, + struct snd_pcm_hw_params *params) { int sample_bits = params_width(params); int slot_width, slot_count; @@ -430,12 +456,8 @@ static int simple_set_tdm(struct snd_soc_dai *dai, simple_dai->rx_slot_mask, slot_count, slot_width); - if (ret && ret != -ENOTSUPP) { - dev_err(dai->dev, "simple-card: set_tdm_slot error: %d\n", ret); - return ret; - } - return 0; + return simple_ret(priv, ret); } int simple_util_hw_params(struct snd_pcm_substream *substream, @@ -457,15 +479,15 @@ int simple_util_hw_params(struct snd_pcm_substream *substream, mclk = params_rate(params) * mclk_fs; for_each_prop_dai_codec(props, i, pdai) { - ret = simple_set_clk_rate(rtd->dev, pdai, mclk); + ret = simple_set_clk_rate(priv, pdai, mclk); if (ret < 0) - return ret; + goto end; } for_each_prop_dai_cpu(props, i, pdai) { - ret = simple_set_clk_rate(rtd->dev, pdai, mclk); + ret = simple_set_clk_rate(priv, pdai, mclk); if (ret < 0) - return ret; + goto end; } /* Ensure sysclk is set on all components in case any @@ -476,39 +498,40 @@ int simple_util_hw_params(struct snd_pcm_substream *substream, ret = snd_soc_component_set_sysclk(component, 0, 0, mclk, SND_SOC_CLOCK_IN); if (ret && ret != -ENOTSUPP) - return ret; + goto end; } for_each_rtd_codec_dais(rtd, i, sdai) { pdai = simple_props_to_dai_codec(props, i); ret = snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); if (ret && ret != -ENOTSUPP) - return ret; + goto end; } for_each_rtd_cpu_dais(rtd, i, sdai) { pdai = simple_props_to_dai_cpu(props, i); ret = snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction); if (ret && ret != -ENOTSUPP) - return ret; + goto end; } } for_each_prop_dai_codec(props, i, pdai) { sdai = snd_soc_rtd_to_codec(rtd, i); - ret = simple_set_tdm(sdai, pdai, params); + ret = simple_set_tdm(priv, sdai, pdai, params); if (ret < 0) - return ret; + goto end; } for_each_prop_dai_cpu(props, i, pdai) { sdai = snd_soc_rtd_to_cpu(rtd, i); - ret = simple_set_tdm(sdai, pdai, params); + ret = simple_set_tdm(priv, sdai, pdai, params); if (ret < 0) - return ret; + goto end; } - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(simple_util_hw_params); @@ -536,7 +559,8 @@ int simple_util_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, } EXPORT_SYMBOL_GPL(simple_util_be_hw_params_fixup); -static int simple_init_dai(struct snd_soc_dai *dai, struct simple_util_dai *simple_dai) +static int simple_init_dai(struct simple_util_priv *priv, + struct snd_soc_dai *dai, struct simple_util_dai *simple_dai) { int ret; @@ -548,7 +572,7 @@ static int simple_init_dai(struct snd_soc_dai *dai, struct simple_util_dai *simp simple_dai->clk_direction); if (ret && ret != -ENOTSUPP) { dev_err(dai->dev, "simple-card: set_sysclk error\n"); - return ret; + goto end; } } @@ -560,11 +584,12 @@ static int simple_init_dai(struct snd_soc_dai *dai, struct simple_util_dai *simp simple_dai->slot_width); if (ret && ret != -ENOTSUPP) { dev_err(dai->dev, "simple-card: set_tdm_slot error\n"); - return ret; + goto end; } } - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } static inline int simple_component_is_codec(struct snd_soc_component *component) @@ -572,7 +597,8 @@ static inline int simple_component_is_codec(struct snd_soc_component *component) return component->driver->endianness; } -static int simple_init_for_codec2codec(struct snd_soc_pcm_runtime *rtd, +static int simple_init_for_codec2codec(struct simple_util_priv *priv, + struct snd_soc_pcm_runtime *rtd, struct simple_dai_props *dai_props) { struct snd_soc_dai_link *dai_link = rtd->dai_link; @@ -604,12 +630,13 @@ static int simple_init_for_codec2codec(struct snd_soc_pcm_runtime *rtd, if (ret < 0) { dev_err(rtd->dev, "simple-card: no valid dai_link params\n"); - return ret; + goto end; } + ret = -ENOMEM; c2c_params = devm_kzalloc(rtd->dev, sizeof(*c2c_params), GFP_KERNEL); if (!c2c_params) - return -ENOMEM; + goto end; c2c_params->formats = hw.formats; c2c_params->rates = hw.rates; @@ -621,7 +648,9 @@ static int simple_init_for_codec2codec(struct snd_soc_pcm_runtime *rtd, dai_link->c2c_params = c2c_params; dai_link->num_c2c_params = 1; - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } int simple_util_dai_init(struct snd_soc_pcm_runtime *rtd) @@ -632,21 +661,19 @@ int simple_util_dai_init(struct snd_soc_pcm_runtime *rtd) int i, ret; for_each_prop_dai_codec(props, i, dai) { - ret = simple_init_dai(snd_soc_rtd_to_codec(rtd, i), dai); + ret = simple_init_dai(priv, snd_soc_rtd_to_codec(rtd, i), dai); if (ret < 0) - return ret; + goto end; } for_each_prop_dai_cpu(props, i, dai) { - ret = simple_init_dai(snd_soc_rtd_to_cpu(rtd, i), dai); + ret = simple_init_dai(priv, snd_soc_rtd_to_cpu(rtd, i), dai); if (ret < 0) - return ret; + goto end; } - ret = simple_init_for_codec2codec(rtd, props); - if (ret < 0) - return ret; - - return 0; + ret = simple_init_for_codec2codec(priv, rtd, props); +end: + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(simple_util_dai_init); @@ -831,7 +858,7 @@ int simple_util_init_aux_jacks(struct simple_util_priv *priv, char *prefix) priv->aux_jacks = devm_kcalloc(card->dev, num, sizeof(struct snd_soc_jack), GFP_KERNEL); if (!priv->aux_jacks) - return -ENOMEM; + return simple_ret(priv, -ENOMEM); for_each_card_auxs(card, component) { char id[128]; @@ -992,13 +1019,11 @@ int graph_util_card_probe(struct snd_soc_card *card) ret = simple_util_init_hp(card, &priv->hp_jack, NULL); if (ret < 0) - return ret; + goto end; ret = simple_util_init_mic(card, &priv->mic_jack, NULL); - if (ret < 0) - return ret; - - return 0; +end: + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(graph_util_card_probe); @@ -1074,9 +1099,10 @@ static int graph_get_dai_id(struct device_node *ep) return id; } -int graph_util_parse_dai(struct device *dev, struct device_node *ep, +int graph_util_parse_dai(struct simple_util_priv *priv, struct device_node *ep, struct snd_soc_dai_link_component *dlc, int *is_single_link) { + struct device *dev = simple_priv_to_dev(priv); struct of_phandle_args args = {}; struct snd_soc_dai *dai; int ret; @@ -1092,11 +1118,12 @@ int graph_util_parse_dai(struct device *dev, struct device_node *ep, args.np = ep; dai = snd_soc_get_dai_via_args(&args); if (dai) { + ret = -ENOMEM; dlc->of_node = node; dlc->dai_name = snd_soc_dai_name_get(dai); dlc->dai_args = snd_soc_copy_dai_args(dev, &args); if (!dlc->dai_args) - return -ENOMEM; + goto end; goto parse_dai_end; } @@ -1127,13 +1154,14 @@ int graph_util_parse_dai(struct device *dev, struct device_node *ep, */ ret = snd_soc_get_dlc(&args, dlc); if (ret < 0) - return ret; + goto end; parse_dai_end: if (is_single_link) *is_single_link = of_graph_get_endpoint_count(node) == 1; - - return 0; + ret = 0; +end: + return simple_ret(priv, ret); } EXPORT_SYMBOL_GPL(graph_util_parse_dai); diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 004fda4504c42..5af6d1b308f23 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -223,7 +223,7 @@ static int simple_link_init(struct simple_util_priv *priv, dai_link->init = simple_util_dai_init; dai_link->ops = &simple_ops; - ret = simple_util_set_dailink_name(dev, dai_link, name); + ret = simple_util_set_dailink_name(priv, dai_link, name); end: return simple_ret(priv, ret); } @@ -544,7 +544,7 @@ static int simple_parse_of(struct simple_util_priv *priv, struct link_info *li) if (ret < 0) goto end; - ret = simple_util_parse_card_name(card, PREFIX); + ret = simple_util_parse_card_name(priv, PREFIX); if (ret < 0) goto end; From patchwork Wed Feb 5 00:16:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960242 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010012.outbound.protection.outlook.com [52.101.229.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DCB8A3234 for ; Wed, 5 Feb 2025 00:16:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714596; cv=fail; b=eKbORNnbArzG2+zEJ5/nkWCVgkfrOVuPPZoP0UaGuTeXb1+kEw3JM1Pa1i94LjbbEPDnBXhVA2wBliYxY981lf7V0JgheNkL25QFr6D989srGcEgwSLkQx0sq6lqYAVXLDjnPwEdGa9DBkVYdL5jk6NjkM/GktWDOO95mzJiAsU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714596; c=relaxed/simple; bh=IVGnLprdo0zGKCi1LJIPIKnCNfZMYIIQLgf649tKQBM=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=Yoh0zSWHvzzda1ACQNX0/UyqMOgILj2LoDfwvaZZZo0noNz2YLq/HK+hwxH46Q+jqd7KvXEYe5mF6+Nc0o9tZvXHUVvbTzfTZO3yyl+63L4pGBJsajpmCy1+RRXg3cgvh5UAWXfJsO5Jddi8KvWnOu0CaVIS+8cZkXbOCVBojyg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=ZzU293xY; arc=fail smtp.client-ip=52.101.229.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="ZzU293xY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Cio/l5XUrVJJ0rV8hGrSqTAh181ScO59t5uAdT7cCfV1Bp7rQqpBCkj/8PqmZKyArLAdjv9WX0TZ+nBUUzolZLlcBEWmne7fYfiuA+XnJ8j3aXoWagWxZeewdZxYNfZsm1KzI976EYeeJO4uCPl5vcQ62e6gVYxmi8uZ5D9x+VfWAlDKSxNhPyO2uhtfp9+FnHU3EE0DssM8vZYNbPvb/AiCoS4+oIb9NGnFjD2VZst9WZWoFpx8bfDbRnn3TXtk4wQbNJAtlxEpd6SKJZs9rA5XKJIfbn7AGyNzqeSvIEUaaRIstQuYc9vspcSyvrEJe6eTXg/JeHICyawg+l5c3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vTz+vqdbADRFQolMei7rN2GF79qipJy6VvBA0f6lK+w=; b=ZZ3uLuxJRcZSLOX11f/EHspEKBNOa7lGFB+S0IAIXZqcxRSe7I8ROmwwnZF2Totb7gdG3anPAONVqxJB6qdU03L47VgMSei+bKYdTB+CG/21zN8cm+WWmMI4bK9q3e9D0+qXQc1OvFkHRunksv4XOS3gy2BIPds2fMTskgjLvi0+n6EH8egjsWvlxU543kc9CCax0Gn03GD6KnW6gDQSlh+7wV9Pt2uKsTGnsUkmUBfPHEWus3nYLDY0gJQFObEBG3+XWHjNtrs0OLreoQ9PRcxBTj/4Z1Id3CfvdhHV+uSwtNvifUczQ6JVhLeWy+WZdLy7dUFjExA6XTRvjRUeRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vTz+vqdbADRFQolMei7rN2GF79qipJy6VvBA0f6lK+w=; b=ZzU293xYikG+kwkB9Iq0+vnB68q8tMXUAiUQp3v8T/Q7WibLeZa1pK9/JGPAM0BjZr8ZsgGzBMBe7LHODn+8Cra08WbJ7TaKJCUTS42NbSc+ZVEyBY2E61BB3VCwXC279q9hEKBoRGk9Be/ZFRvVEYPXdtXnISY90qWekihBdjU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYRPR01MB12774.jpnprd01.prod.outlook.com (2603:1096:405:1b3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 00:16:31 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:31 +0000 Message-ID: <878qql2qlc.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 6/7] ASoC: audio-graph-card: use snd_soc_ret() User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:31 +0000 X-ClientProxiedBy: TYAPR01CA0182.jpnprd01.prod.outlook.com (2603:1096:404:ba::26) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYRPR01MB12774:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f0882e5-a25e-423e-1c95-08dd457a57d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: 4njskG8Y+ixef5yhnfvtFUa2340vNtr+KfTBFSBC2ndAzCclQFSWCgFGtqiMGKeBkN/yXLQxzgDLMV2hpi1KDHLfjAlOBkoX7oH1xYJOV5c9d4tOl/7LxAkX4m+NtZWYM+ivP7MyGCUkSRMn2CzgYy7tpXLa29xm6RjMTkLCY9bP25LZ5nXT2f9bxQeFi7tYGa+2ZBrkzukyqgU+xC8er+xzyONlhGqgidEa6mBdr4ARqKJOmLRRJDb7SP7T0Fw57R3BquHEB4cbKDrHGbKa8KrnpYjjMwbZOOmkrzxxZrAWTYqglclsNIQd12IfS9tsBrSH0BqXnRyLg7vX88qe4CZzY8saDsqcEzM1fcoU+HCJQ1e1qOeVAYBNzfSRVa3DAWYtGAGVUAnv7MqV69UitYPfBzzd9vKf4oqHUBJefrqAbc94pK4JW5yBDjbcGpxOLpgYJ6+gkMY1mJ3dcZHsEDTEPdDltfxHuOujghvsTrhu5dO+3w5M7Ah/yG4euj7V1WyKKfO8he7zt3baOUo8aw42awSoBxsZDn1yGmfjsEvVrkc7D5f0VYPMMnMb77T/jnf7FyJFEgnWUQS1iN0NA/6/lHBute2g/Z9w8SOxpcQRYvOoN43kTyqVT48GzKc/3m88ONSU1LzcAxeier719C3UwHF1/2PsbSiBQI6FNVijaiHGI1Q+X+dHOAMIMWTUjf71hG/jWYHo7eoORt+L8+A3gqqX7kAScyZdeCMW4v0NBbNSigO1KDcOiS5OdOFta86vzvGSneMz8bqoBrv/BuCEmWjXgqYdJW1967cf9+ZUBnacnSSNHAXNQaiHmI4jgPXxtxidtdoStAV8q9jweF73kQBebu1wx7PAJUlwQY4shVYYW5ilZerk6wg0bcAp1J/YWQuXqd2siTO1rntd5br/e4KM7yD0A+r0OvWycgTGlW8hBJqUZ1HTfNPFNDkbZw6SWCArZIVxgZK+kLVzYJI61w+HYQ/nNUV3yuhkm3vmRLWCvYs5Q5SDI9LU3YO0EIJA7idJ+DKkmNIXIWLjGwZpKADGOZ6tJouYJdyHLs2/i0ADJC9XKPpUYjvvx33XERkkSar3qi7QRjiaaMkqsT1m5VZ5ewgfMt0UZP353yz6jJlTimlslf3i6ZL7PzL6wG1Gqzy0EKStDOLV6OzWdDbgtXjNoLbQ10qYsZT0rD9LyMx6NkbYh8we4zToUAvm+J7BTdidQLVG1fp6FgdS6MUPTh98ge2p5WgncVz99WggSP07nlw/qn3o+KsUugw3TcFa4Imaa+wmhdxFkDG65P+NmX9aXlw/12ryCt+KhRo6NrpXLJGS6jRHw7vLQpgio3xTNfI4O0qcJHsaOiWOhSgABb9bfX4Rhblen7nvttu3hWDncqC1mRVYaEkdNAc+oIU7R2OZaDHXbrxFMnp25vVakso3TENRKPYDC6OWZFxkQUxH5UkaJMlBJ0AhAq98 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ymAq9daJ9IE7MySvU9jUM7zwm12f1+K7lFQnD8LCEkHWwM1nojSugrnJbg0tLnZ6JaiCzbuJdxLQ7I7Los4zG2ud5L4RWs607/NZKApNWaIWywzlBbWxC0f0fuHo3fTMfBecPgu8HT0CuQ2VXNCCkRmJeVkmxJxqQu043DJy8kiBqO9xKAIM7nGKw6ZgSezj+OE87eTjtp9Druqj6xV64XUG0boYQ44+s8XveVbP6qAQscfq1h6gVnUi8bX6VQCpD74M8DzHVlml2xhxhXS4CP1Yv4cB5A9j2fvxwghvqgBPCGK/mhVOzxK4LXRSIGKV/imlvmZLWnPfXUIa+/nSfTbY0VTpxlxRogzJ2CvjMAWVpBJc1S4XmgCcJHg23FNQScZKa/UZvXzrDI9cR6RiH/8rehlPZEjVwRInpERCt0efoQ9Swm4SmgPf4rsvIhheDZZR6fsEaL1h5GURIQ35bEXMZIVvl0Iel9Fl4LtbvQhi17BuC2Xu73HZNnNe6YJmGJs8DNTQXEQavfI2Fq6XKdGoV0/ynPtqKInBVZGrxPHOwTtady+2WX7+yOrjz63B/3Dv6RYnt0V/CEvrFqnZSrwZxkwgczhHaJPTxbQiImg6D0fDIz/aWZwBTx+cgBJdMWOuNDBNulVHxNyTxR+ueBUypwOrJ6Y6BE0qQ/+gV8Q1U2UeE0UZCCX0zzfZTUNLERrzAmBXwI8oT+8QGF/Y6/xrrTqw640Y8Odg+g75K5mIA21Esr/IfldTAZe3D1npZ9MfhU9/IEpzQM+eZnMggcKzQ8QD17f45JNH2MdBkToa6zhmz+C0MWk5JxfVUMrmOq/3RURluINlo2uaTzwmmKpRX/q6Bj2riDR/meu6lgc4PLbmhwMwQNwNm1+uapeldPGJjrL3Q7E3OJxbU45vdO87iPeKkLyhQ2T+GIGJMXuz+dynLTQDl04prRJsg3XV1H6K3p1IRTORRvC/jblD2eQNLTiOxKmvGhW6RqMb08KnqSvWZlEYq/al1QC5FxfPN4DqmOKdV1b6vSuQj7jrss10I6PRw1zoEIEY7iRvnaoZH2AhXUbJItXuLRlbIGsbZAKaphl5T3hAqnQ+1Rh/3C9cvvZH7BMWzorysBc+s6l0Sz+L9yvr5GNaBSCDDPxqA5hFTYRv40gE73M2AobsFMXQwfbrd3PgrbHTL1lPxWBttbXdgABpAdXHNsLOlZEuJjc0XXfuloY4/dB9ZeRV45nLo0/McJRjR42Cu+Y9CyUIABtJZfVKs41Y72fOn9wo0SKUa6rl13O7RVdo28DguFCWUdHfsQMZqgwSmjBIva1UHFtEvKCpQ1xBV8W5WM8gkIKUkD2CvDClkB9rClAic0Mw17VCs+rVaek/VAmr6ktiQ4jI91SafeIoJ5073IoXqAv0CaxrIHULTB4+5eBjxyygZTG3sDuXD+e81h/blSTE6wtwPAZoup9Zj65Yy+xyGc1P21Xb1Px8KtTdgbfge4gStmo/6VEmdHQ9G9aQLO9RuIaT+cY63P/yFY9yZn5z8a+/efj4NmtJRnfqiE/+F1JjEuWdKLyMVRs9BBAphdvvzIfrFwF3UAo6r4NZWKtCu6XAB/jA420QFrvLpWiVXVDDZibaFI6B3xgjxbby4Wo= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f0882e5-a25e-423e-1c95-08dd457a57d2 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:31.8943 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GgZNjPZfo1WsvdDBfHLr4bxdUQmUu2Xl3Nc04iM9qCYI6BzXLw6UDzGAxdddHP8InAgRwZylJ2sbKXKMHtN93s7fxwWzs3jKQnWwhttpdn7BGmCZT8+B8w4nYt04LtkI X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB12774 We can use snd_soc_ret() to indicate error message when return. Let's use it. Signed-off-by: Kuninori Morimoto --- sound/soc/generic/audio-graph-card.c | 93 +++++++++++++++------------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index bd7ebbec0fc9c..a8a3bad3df00d 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -20,6 +20,13 @@ #define DPCM_SELECTABLE 1 +#define graph_ret(priv, ret) _graph_ret(priv, __func__, ret) +static inline int _graph_ret(struct simple_util_priv *priv, + const char *func, int ret) +{ + return snd_soc_ret(simple_priv_to_dev(priv), ret, "at %s()\n", func); +} + #define ep_to_port(ep) of_get_parent(ep) static struct device_node *port_to_ports(struct device_node *port) { @@ -113,17 +120,15 @@ static int graph_parse_node(struct simple_util_priv *priv, ret = graph_util_parse_dai(priv, ep, dlc, cpu); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_tdm(ep, dai); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_clk(dev, ep, dai, dlc); - if (ret < 0) - return ret; - - return 0; +end: + return graph_ret(priv, ret); } static int graph_link_init(struct simple_util_priv *priv, @@ -148,7 +153,7 @@ static int graph_link_init(struct simple_util_priv *priv, ret = simple_util_parse_daifmt(dev, ep_cpu, ep_codec, NULL, &dai_link->dai_fmt); if (ret < 0) - return ret; + goto end; graph_util_parse_link_direction(top, &playback_only, &capture_only); graph_util_parse_link_direction(port_cpu, &playback_only, &capture_only); @@ -183,7 +188,9 @@ static int graph_link_init(struct simple_util_priv *priv, if (priv->ops) dai_link->ops = priv->ops; - return simple_util_set_dailink_name(priv, dai_link, name); + ret = simple_util_set_dailink_name(priv, dai_link, name); +end: + return graph_ret(priv, ret); } static int graph_dai_link_of_dpcm(struct simple_util_priv *priv, @@ -215,7 +222,7 @@ static int graph_dai_link_of_dpcm(struct simple_util_priv *priv, ret = graph_parse_node(priv, cpu_ep, li, &is_single_links); if (ret) - return ret; + goto end; snprintf(dai_name, sizeof(dai_name), "fe.%pOFP.%s", cpus->of_node, cpus->dai_name); @@ -248,7 +255,7 @@ static int graph_dai_link_of_dpcm(struct simple_util_priv *priv, ret = graph_parse_node(priv, codec_ep, li, NULL); if (ret < 0) - return ret; + goto end; snprintf(dai_name, sizeof(dai_name), "be.%pOFP.%s", codecs->of_node, codecs->dai_name); @@ -267,8 +274,8 @@ static int graph_dai_link_of_dpcm(struct simple_util_priv *priv, ret = graph_link_init(priv, cpu_ep, codec_ep, li, dai_name); li->link++; - - return ret; +end: + return graph_ret(priv, ret); } static int graph_dai_link_of(struct simple_util_priv *priv, @@ -288,11 +295,11 @@ static int graph_dai_link_of(struct simple_util_priv *priv, ret = graph_parse_node(priv, cpu_ep, li, &is_single_links); if (ret < 0) - return ret; + goto end; ret = graph_parse_node(priv, codec_ep, li, NULL); if (ret < 0) - return ret; + goto end; snprintf(dai_name, sizeof(dai_name), "%s-%s", cpus->dai_name, codecs->dai_name); @@ -302,11 +309,11 @@ static int graph_dai_link_of(struct simple_util_priv *priv, ret = graph_link_init(priv, cpu_ep, codec_ep, li, dai_name); if (ret < 0) - return ret; + goto end; li->link++; - - return 0; +end: + return graph_ret(priv, ret); } static inline bool parse_as_dpcm_link(struct simple_util_priv *priv, @@ -383,13 +390,13 @@ static int __graph_for_each_link(struct simple_util_priv *priv, } if (ret < 0) - return ret; + goto end; codec_port_old = codec_port; } } - - return 0; +end: + return graph_ret(priv, ret); } static int graph_for_each_link(struct simple_util_priv *priv, @@ -422,7 +429,7 @@ static int graph_for_each_link(struct simple_util_priv *priv, break; } - return ret; + return graph_ret(priv, ret); } static int graph_count_noml(struct simple_util_priv *priv, @@ -431,11 +438,10 @@ static int graph_count_noml(struct simple_util_priv *priv, struct link_info *li) { struct device *dev = simple_priv_to_dev(priv); + int ret = -EINVAL; - if (li->link >= SNDRV_MAX_LINKS) { - dev_err(dev, "too many links\n"); - return -EINVAL; - } + if (li->link >= SNDRV_MAX_LINKS) + goto end; /* * DON'T REMOVE platforms @@ -450,8 +456,9 @@ static int graph_count_noml(struct simple_util_priv *priv, li->link += 1; /* 1xCPU-Codec */ dev_dbg(dev, "Count As Normal\n"); - - return 0; + ret = 0; +end: + return graph_ret(priv, ret); } static int graph_count_dpcm(struct simple_util_priv *priv, @@ -460,11 +467,10 @@ static int graph_count_dpcm(struct simple_util_priv *priv, struct link_info *li) { struct device *dev = simple_priv_to_dev(priv); + int ret = -EINVAL; - if (li->link >= SNDRV_MAX_LINKS) { - dev_err(dev, "too many links\n"); - return -EINVAL; - } + if (li->link >= SNDRV_MAX_LINKS) + goto end; if (li->cpu) { /* @@ -483,8 +489,9 @@ static int graph_count_dpcm(struct simple_util_priv *priv, } dev_dbg(dev, "Count As DPCM\n"); - - return 0; + ret = 0; +end: + return graph_ret(priv, ret); } static int graph_get_dais_count(struct simple_util_priv *priv, @@ -544,40 +551,41 @@ static int graph_get_dais_count(struct simple_util_priv *priv, int audio_graph_parse_of(struct simple_util_priv *priv, struct device *dev) { struct snd_soc_card *card = simple_priv_to_card(priv); - int ret; + int ret = -ENOMEM; struct link_info *li __free(kfree) = kzalloc(sizeof(*li), GFP_KERNEL); if (!li) - return -ENOMEM; + goto end; card->owner = THIS_MODULE; card->dev = dev; ret = graph_get_dais_count(priv, li); if (ret < 0) - return ret; + goto end; + ret = -EINVAL; if (!li->link) - return -EINVAL; + goto end; ret = simple_util_init_priv(priv, li); if (ret < 0) - return ret; + goto end; priv->pa_gpio = devm_gpiod_get_optional(dev, "pa", GPIOD_OUT_LOW); if (IS_ERR(priv->pa_gpio)) { ret = PTR_ERR(priv->pa_gpio); dev_err(dev, "failed to get amplifier gpio: %d\n", ret); - return ret; + goto end; } ret = simple_util_parse_widgets(card, NULL); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_routing(card, NULL); if (ret < 0) - return ret; + goto end; memset(li, 0, sizeof(*li)); ret = graph_for_each_link(priv, li, @@ -599,10 +607,9 @@ int audio_graph_parse_of(struct simple_util_priv *priv, struct device *dev) goto err; return 0; - err: simple_util_clean_reference(card); - +end: return dev_err_probe(dev, ret, "parse error\n"); } EXPORT_SYMBOL_GPL(audio_graph_parse_of); From patchwork Wed Feb 5 00:16:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13960243 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010020.outbound.protection.outlook.com [52.101.229.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1738BA38 for ; Wed, 5 Feb 2025 00:16:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.20 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714600; cv=fail; b=K/IT7Or7gvdllbTYCb2rCZi5epgWcnGsExmVrRCepvwCLxNYN8OBcZpr3au02VNkmBgAfwHy2Mt3CO9Xqws8/uXIGkvgWu93YrT96WFReb5rIlfZUdlAFjSEjy2z1C+gu3vAhoJ7jgySENt+cVloqROLDZDfydtu7xGCQMsIVuI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738714600; c=relaxed/simple; bh=qH84IT/IqlbFAgVR2p1wfRlwO8I9S65tYlwNWm5qrDk=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date:MIME-Version; b=PTl5RR2eGdSor+6V6J7oFKxQ08g/89ugdifHHf27LSw+X4EdVSIMV604kSAI6v7om/Zt3aOv/gOXCcKqGjmPPPFoCMlzf5uSWiCplBGQUwvVch8+Wc8Xp6UyPTrk5ob/6dvxp+hePmy/Tl0SRwpZEqmreh2YjVnwhh3HvwY7rfI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=DqFjdaga; arc=fail smtp.client-ip=52.101.229.20 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="DqFjdaga" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QVx+nzJza5s3SGNK87UmTdxY9YAtc7YEFO3l1324Aze63WCYM44aIS+K57XjQQptxhNdINd5XsU0AeyNvy9m/9uyI4P1L0eAXznPXm9fk3Awqw06Yn0hTiyks4kmtFLiiPI3Kp9SkNPeoGXkIpTTmlZgR/2GVrT3Cw7nGvNY0UAnh11ReMelyeMcuIt1FdiWplvbBdwa6t/IhrV/4ByJiKsZX7zJL5OITHzuWeJVeQbavKYcCCRtMzv5MwAFV9O9KlgAW0H5KF1toy7D0RoyVu1Fe7TKpRiA401IJ+xunRW/mucJN0DEf6dhGh9DHGeTFg4iqVdYNqjIWNugC3L+WQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oTZi0kjDixf8Wq4KTG7Dluh4B9mULwFJaK/IvjXagJc=; b=l1uNv9OAxl2IeCBEVS5PA/KlX+8SC9QEu0OckuqNBIcnr3N7lLLKFXUd2oSo/5cGRwFrMVDkIVPBI9BAL99BzBev0DCQd2oP00kHFww4a3s0nIz1j5EQpzZRQdQpJDMwUvF0ws37Hdlgo7VftM53D2hvf//u/vQGa7mb5gTd+0X/kCMwP8bTzLt2Snz6RwxPtdyek1SWglHsQe9A2C26+rv/+vJL6dFDR9A6eeKnm/QYsEsIp/lkoHsHOwADUamugM3QTiJFzASd81yQAe3LWUWSTQhIdrxB5C17B4rpojM291W23AHXwJNh0vwC3SXkXD79Ui++9icGcxi/gVJDTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oTZi0kjDixf8Wq4KTG7Dluh4B9mULwFJaK/IvjXagJc=; b=DqFjdaga1ifSc2BesExNd/44HLHn/yD0gJXwLh/PFa9lvl+qDygUp0+c20HHp1VStkjLriEduvFv0gbZjWfS2jXmlAdjg94kOrjTYUZUQPCudDwUkonOZLzgKZ92OUO7RaU5507N4c5IIFGNKH24VItadVORrhX/ChltY0LpQBk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYRPR01MB12774.jpnprd01.prod.outlook.com (2603:1096:405:1b3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 00:16:36 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%5]) with mapi id 15.20.8422.009; Wed, 5 Feb 2025 00:16:36 +0000 Message-ID: <877c652ql8.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v2 7/7] ASoC: audio-graph-card2: use snd_soc_ret() User-Agent: Wanderlust/2.15.9 Emacs/29.3 Mule/6.0 To: Mark Brown Cc: linux-sound@vger.kernel.org In-Reply-To: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> References: <87h6592qq3.wl-kuninori.morimoto.gx@renesas.com> Date: Wed, 5 Feb 2025 00:16:36 +0000 X-ClientProxiedBy: TYCP286CA0097.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::11) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYRPR01MB12774:EE_ X-MS-Office365-Filtering-Correlation-Id: b752aae1-d5dc-436a-b47a-08dd457a5a59 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: e8lpxyHbKFRyRI31QlkJlpWhSmhaTFepiBsGy9ViiDcja8LIUG3WsuwCxxEiUIXXFc+ricF/HjlKC+cQKwytWXb62FEnj6y99hZcm9JJsALOEl3llfm4bUwPNIGRKRoKe7y9wFpgvauQKF7uOW4nMp6GVKvPrOejtSRlsW8cnoWRdCv92PPOoHVwkGH/ORj3Dwm7jrIfobMBnYOCzMlk75H2W32htuu+TGB4GylI3VLnNhdA/Thvp94wL5+wSXsxEUx62JPJjxv0JQk63mp/Rzr0rPJyILwizsdUJb8IeKxeYixIKHbryDwgAOyIsrs73Sm8Z3IkuDu+kSPYrM1BP3gQSfqqDHcCtR4IVynHgi3YJFwafow/7iv0ThIJPGAJPs7EQBs5JVCr75tn/ACVrpa6OY9hO7ZgVw24hgeNG07lhoDxGASCsmsauTAfvARr8ffzMGz/3/PSUsM3Hwo/YE2MquZ4D4ZXyuHRHJRrR2GSZhn3ANAax3Q3JextUHHJU8RLd33ebpmN5ey2X0zyolo/e7TA9dnlGH+Y2yNxdva14OmVP6CoZPn08C0/e9vuRL6UWVrTWMJ3eX7dSdSAl0KkiJaPCZFEoXA85W9oWv0915M43+ir09NMCDowMA+0RNNxmTv9p9w1/OIIegLhBUdGjuZC+SOnYVyTkiFj1eAMHZbxKSUv2XoU8ED8gCm5y8vI1bKNu3ijLq3mhmoQGjjed1eeBv6K6NizvbL6Vj+n9mHFJ5EYTVP1dmKiJAwN/E+Is7t6reNqnqx1Kuseeq2TnOxoNi5LItE74mzvPa+ZVFAEiO2U2Wk8iwUMAsbV9xglQjC3dhIHEdsOhvrR4zOz/FSAErlJKXddYkk9jKbAxFm+bZzIQR7IbBQofA91Q7dOWORCACY5RM8EOwnb1XZ6zm4lApArne2FQdvTKTf0bfgP22QWBMJax1DN8kTFE0Z6mSnbDxPGWdKhIWNkpqh5ZLJ2Zv7cIL6L3pdoO5ZA7BXOg9H0ENfhCmZy0TdVmRmOGRrS1B2yCO0ELx0gWWVrKPw8+NyzbBAF9dKPhi/60p1eCzND6uOkMQjEuCWzh1Rn09/o10X9rLzW/x7NEmnNB7sJfupzt2Xl02KtjAJ5J2FFhjadWEfmf9OHBUJEcsHFbqObZXC+h7qNaqLde3TOiL9wF+3443WE2eWZ92bUej30gYIbZf47HZxHGyyljnSBx0KKhUwT+0VPd4bSRIAAK7dYvTiv+hYDIdFqO3gpjPvzA4PkmQkM7suo871Ru7G0nXEpR5al5jvGUUOzLRYNSbW/2ywPL+BFYvR6CPdjkDeRHuxtHfnjkmcmMrk5SuLWqecpaZeVlCcDLhdogz4UmAOxApxHJuzLmBJyC8+VIgXhsrzAbbrSKgYgkLqeHAhKRRQ3A0LssGBR4/4qQij42PJ2gfEHCp0Bo36SfUQ5I26XfxVwH1PUHqtTYRFq X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6WGIdojuGSEzFPwoRtx3tO9Pq5hoWIveLh7DYRVn/BEV/Rjz7I/dYgF3mXpZ9D01MisnE24/uNfLBpilc93FDaNfbN4PbRU+DB02G2c+0YEgL+/vRjZ0ooaJYmgnuh+9QjTRTV13V0yxDjHWk0VDyqeacB2Q0QHlqfhU7dSDw6p77WzcjbCfANxWvVzqZyFOt+L214c8zC+uO8XCyndwYJz0vS3Rc8RvOTxwm04ywfw1WS+k1atfZ73axGq4O8idWv1AW3IYoM/Ag/kFlMLZ2WnmmjF5KKXMrdtURJapGPWbiwklJmeTdVQmrVPSGZ4tsbBG1vavOl0HYGHcF/sHDU5Ozulia3tz3/rdcX9Tq6k8jrYbHt/bW0UJpL6Rf3raw4pEmaNKKBx8W9HFX7nQbA8Cr69nEV7eWGIJ3ghOO99glnwpKNNusJ900HGiS6Advfr5fs0tRaBZayUxEBIrHk/izy12SkBghM2zLqCuUA2gu3/uspwy73TV0ki3bykLHPS6nb8ujEGlkXc03pyp29rkKvDOEYbRoaI9yVBYv/xemeI4PTLlUW/CzSrmgNxv975g+2BcrWxGQwn5Ra0n2RhZQzIX6P06Udgi+qrkLREsrQG0epRhPWdESobrraBfsdZS2wvASWeZS7lVgcIU16iFXsdw8es8wOBOf+UXocSUzqHV0F3+d5Pd7GSZemgO6J53H4Y6vxbzFBtziKlW8kVeqtWtnlPBRwvEcb88h6mfLS89HxL4zMPi/dfm2fcnKll3cLBDoGsOpEt2ey13ZrKvWfNbCNDi0g+arr7Dmbif6B8xiScIBAu7KnBMYP/sr6FLj1raQqEry2mkRaAcnR4zAuHsWu7vsZCNB1i3H0G74AD7qkwZsjlRhiasc2FtagfYg0cf6gcEiAvMwIpKiKWOyFkvzJh3W/f33QFxka33b7k5SDKk3ANgln/Nbmh+3mImH4xx68SpoHYQIk4R1bZpfc/FcpEWQ9tczvI1Wsfkvp8pGvl6r5Ya8AoVVA/Kfux54UEmTHXwl3z3qIa8kKUirZvvCOZJ0GMwxmPqml7vL312TQzbVeaVPzKVoQkicQkExoYgj71jYhRd9zk7z4vpPEStG/BYrqU35+0vm1lyILPei2Z0P3wZrAyn354+dKH2GPDepN2mTHkopyTYXFa9sRNGEw3EGs1QbYzcw8Z9AYh59Ge2LQnlNrg60I98IERcyLoeTrZRaNWwnAxrju7Z6Q3gIIC67kfgeprixYr8J7gYYjnYjGw0mKa155dzOa5jq0rvvAH//EXIv3njP+7c5KxFETFFtWyEXMWN33BRtJBtV1MOL9vcJ4miGdMJl4MBVajCsd6AQRhAAzreoWFp/n7aoCX8ywLPzvTive6gpEbWMY/xW/1HzOZ8XwmlFj3KfUjKMenKB7JnpnQPAmrBpymNa5i+R8e/+RY1e005e2+UvfzCrhaQ/JMfkoVzW1ZbjeTsAmMG877U0NtbrKNX0rnNPU2tb7D/+LCDIJ3tOMghy5AmKeRVMtHwJjMNuWbF3YmVCVtDDX73LHamSmbCjbGyghgqoMKe/HJjWyTwjdlPHomlQy6XUvvarsguM2ITAnNfNFiQH/ELeADJLm1TXKvdPgNZ6yWAwr4qwdA= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: b752aae1-d5dc-436a-b47a-08dd457a5a59 X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 00:16:36.1481 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Og2r2PsjV/XVqIkmJiDzEIm+Yk10K7Jo0fkRLtzl7gvSEvpYhg+YQangQPfWq4yiYpDwlSC1MsbiNO0Ta3OJBsDGkBOwEmso23PEnCqjjdLvg7WbJkHfx3M96SPARtc8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYRPR01MB12774 We can use snd_soc_ret() to indicate error message when return. Let's use it. Signed-off-by: Kuninori Morimoto --- sound/soc/generic/audio-graph-card2.c | 81 ++++++++++++++++----------- 1 file changed, 49 insertions(+), 32 deletions(-) diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c index 945a16e6d6919..5dcc78c551a25 100644 --- a/sound/soc/generic/audio-graph-card2.c +++ b/sound/soc/generic/audio-graph-card2.c @@ -234,6 +234,13 @@ enum graph_type { #define GRAPH_NODENAME_DPCM "dpcm" #define GRAPH_NODENAME_C2C "codec2codec" +#define graph_ret(priv, ret) _graph_ret(priv, __func__, ret) +static inline int _graph_ret(struct simple_util_priv *priv, + const char *func, int ret) +{ + return snd_soc_ret(simple_priv_to_dev(priv), ret, "at %s()\n", func); +} + #define ep_to_port(ep) of_get_parent(ep) static struct device_node *port_to_ports(struct device_node *port) { @@ -411,19 +418,19 @@ static int __graph_parse_node(struct simple_util_priv *priv, ret = graph_util_parse_dai(priv, ep, dlc, &is_single_links); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_tdm(ep, dai); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_tdm_width_map(priv, ep, dai); if (ret < 0) - return ret; + goto end; ret = simple_util_parse_clk(dev, ep, dai, dlc); if (ret < 0) - return ret; + goto end; /* * set DAI Name @@ -488,11 +495,12 @@ static int __graph_parse_node(struct simple_util_priv *priv, simple_util_canonicalize_cpu(cpus, is_single_links); simple_util_canonicalize_platform(platforms, cpus); } - - return 0; +end: + return graph_ret(priv, ret); } -static int graph_parse_node_multi_nm(struct snd_soc_dai_link *dai_link, +static int graph_parse_node_multi_nm(struct simple_util_priv *priv, + struct snd_soc_dai_link *dai_link, int *nm_idx, int cpu_idx, struct device_node *mcpu_port) { @@ -534,10 +542,10 @@ static int graph_parse_node_multi_nm(struct snd_soc_dai_link *dai_link, struct device_node *mcodec_port_top __free(device_node) = ep_to_port(mcodec_ep_top); struct device_node *mcodec_ports __free(device_node) = port_to_ports(mcodec_port_top); int nm_max = max(dai_link->num_cpus, dai_link->num_codecs); - int ret = 0; + int ret = -EINVAL; if (cpu_idx > dai_link->num_cpus) - return -EINVAL; + goto end; for_each_of_graph_port_endpoint(mcpu_port, mcpu_ep_n) { int codec_idx = 0; @@ -578,8 +586,8 @@ static int graph_parse_node_multi_nm(struct snd_soc_dai_link *dai_link, if (ret < 0) break; } - - return ret; +end: + return graph_ret(priv, ret); } static int graph_parse_node_multi(struct simple_util_priv *priv, @@ -633,7 +641,7 @@ static int graph_parse_node_multi(struct simple_util_priv *priv, /* CPU:Codec = N:M */ if (is_cpu && dai_link->ch_maps) { - ret = graph_parse_node_multi_nm(dai_link, &nm_idx, idx, port); + ret = graph_parse_node_multi_nm(priv, dai_link, &nm_idx, idx, port); if (ret < 0) goto multi_err; } @@ -643,7 +651,7 @@ static int graph_parse_node_multi(struct simple_util_priv *priv, ret = -EINVAL; multi_err: - return ret; + return graph_ret(priv, ret); } static int graph_parse_node_single(struct simple_util_priv *priv, @@ -651,7 +659,7 @@ static int graph_parse_node_single(struct simple_util_priv *priv, struct device_node *ep, struct link_info *li, int is_cpu) { - return __graph_parse_node(priv, gtype, ep, li, is_cpu, 0); + return graph_ret(priv, __graph_parse_node(priv, gtype, ep, li, is_cpu, 0)); } static int graph_parse_node(struct simple_util_priv *priv, @@ -660,11 +668,14 @@ static int graph_parse_node(struct simple_util_priv *priv, struct link_info *li, int is_cpu) { struct device_node *port __free(device_node) = ep_to_port(ep); + int ret; if (graph_lnk_is_multi(port)) - return graph_parse_node_multi(priv, gtype, port, li, is_cpu); + ret = graph_parse_node_multi(priv, gtype, port, li, is_cpu); else - return graph_parse_node_single(priv, gtype, ep, li, is_cpu); + ret = graph_parse_node_single(priv, gtype, ep, li, is_cpu); + + return graph_ret(priv, ret); } static void graph_parse_daifmt(struct device_node *node, unsigned int *daifmt) @@ -842,18 +853,19 @@ int audio_graph2_link_normal(struct simple_util_priv *priv, */ ret = graph_parse_node(priv, GRAPH_NORMAL, codec_ep, li, 0); if (ret < 0) - return ret; + goto end; /* * call CPU, and set DAI Name */ ret = graph_parse_node(priv, GRAPH_NORMAL, cpu_ep, li, 1); if (ret < 0) - return ret; + goto end; graph_link_init(priv, lnk, cpu_ep, codec_ep, li, 1); - return ret; +end: + return graph_ret(priv, ret); } EXPORT_SYMBOL_GPL(audio_graph2_link_normal); @@ -946,7 +958,7 @@ int audio_graph2_link_dpcm(struct simple_util_priv *priv, graph_link_init(priv, lnk, cpu_ep, codec_ep, li, is_cpu); - return ret; + return graph_ret(priv, ret); } EXPORT_SYMBOL_GPL(audio_graph2_link_dpcm); @@ -992,8 +1004,13 @@ int audio_graph2_link_c2c(struct simple_util_priv *priv, struct snd_soc_pcm_stream *c2c_conf; c2c_conf = devm_kzalloc(dev, sizeof(*c2c_conf), GFP_KERNEL); - if (!c2c_conf) - return ret; + if (!c2c_conf) { + /* + * Clang doesn't allow to use "goto end" before calling __free(), + * because it bypasses the initialization. Use graph_ret() directly. + */ + return graph_ret(priv, -ENOMEM); + } c2c_conf->formats = SNDRV_PCM_FMTBIT_S32_LE; /* update ME */ c2c_conf->rates = SNDRV_PCM_RATE_8000_384000; @@ -1019,18 +1036,18 @@ int audio_graph2_link_c2c(struct simple_util_priv *priv, */ ret = graph_parse_node(priv, GRAPH_C2C, codec1_ep, li, 0); if (ret < 0) - return ret; + goto end; /* * call CPU, and set DAI Name */ ret = graph_parse_node(priv, GRAPH_C2C, codec0_ep, li, 1); if (ret < 0) - return ret; + goto end; graph_link_init(priv, lnk, codec0_ep, codec1_ep, li, 1); - - return ret; +end: + return graph_ret(priv, ret); } EXPORT_SYMBOL_GPL(audio_graph2_link_c2c); @@ -1078,7 +1095,7 @@ static int graph_link(struct simple_util_priv *priv, li->link++; err: - return ret; + return graph_ret(priv, ret); } static int graph_counter(struct device_node *lnk) @@ -1249,7 +1266,7 @@ static int graph_count(struct simple_util_priv *priv, li->link++; err: - return ret; + return graph_ret(priv, ret); } static int graph_for_each_link(struct simple_util_priv *priv, @@ -1266,7 +1283,7 @@ static int graph_for_each_link(struct simple_util_priv *priv, struct device_node *node = dev->of_node; struct device_node *lnk; enum graph_type gtype; - int rc, ret; + int rc, ret = 0; /* loop for all listed CPU port */ of_for_each_phandle(&it, rc, node, "links", NULL, 0) { @@ -1276,10 +1293,10 @@ static int graph_for_each_link(struct simple_util_priv *priv, ret = func(priv, hooks, gtype, lnk, li); if (ret < 0) - return ret; + break; } - return 0; + return graph_ret(priv, ret); } int audio_graph2_parse_of(struct simple_util_priv *priv, struct device *dev, @@ -1355,7 +1372,7 @@ int audio_graph2_parse_of(struct simple_util_priv *priv, struct device *dev, if (ret < 0) dev_err_probe(dev, ret, "parse error\n"); - return ret; + return graph_ret(priv, ret); } EXPORT_SYMBOL_GPL(audio_graph2_parse_of);