From patchwork Thu Apr 6 07:25:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9666215 X-Patchwork-Delegate: geert@linux-m68k.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0841B60364 for ; Thu, 6 Apr 2017 07:25:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC086280B0 for ; Thu, 6 Apr 2017 07:25:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E049A284F3; Thu, 6 Apr 2017 07:25:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22115280B0 for ; Thu, 6 Apr 2017 07:25:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933260AbdDFHZU (ORCPT ); Thu, 6 Apr 2017 03:25:20 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:17206 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933240AbdDFHZT (ORCPT ); Thu, 6 Apr 2017 03:25:19 -0400 Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 06 Apr 2017 16:25:16 +0900 Received: from relmlac4.idc.renesas.com (relmlac4.idc.renesas.com [10.200.69.24]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 5F36760C9C; Thu, 6 Apr 2017 16:25:16 +0900 (JST) Received: by relmlac4.idc.renesas.com (Postfix, from userid 0) id 54C4F480A6; Thu, 6 Apr 2017 16:25:16 +0900 (JST) Received: from relmlac4.idc.renesas.com (localhost [127.0.0.1]) by relmlac4.idc.renesas.com (Postfix) with ESMTP id 201CA480A5; Thu, 6 Apr 2017 16:25:16 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac4.idc.renesas.com with ESMTP id SAK11338; Thu, 6 Apr 2017 16:25:16 +0900 X-IronPort-AV: E=Sophos;i="5.37,283,1488812400"; d="scan'208";a="239758037" Received: from mail-hk2apc01lp0213.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.213]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 06 Apr 2017 16:25:15 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=0l61Yf5d5wuMsROQZsFr/Qrz3GCUKgXlQHzYlxEh16U=; b=LmiQpqM+A42DQsRH1OisaDEJkWfV9pPw/WkMg48fXLDesItuBarCrSfJNmslPV5aUjkBCxdOP77/qJI95FAMiO56COfUjekXjHesT2+wOqZ1SDNZW9144SXs0gQlucnBha/x1zYDIxh4CVvREEX5oH8Ob3+FI4K3EcyoxKmqk9Y= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by SG2PR06MB0821.apcprd06.prod.outlook.com (10.162.198.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10; Thu, 6 Apr 2017 07:25:13 +0000 Message-ID: <87tw623ssy.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 2/3] ASoC: rsnd: merge rsnd_kctrl_new_m/s/e into rsnd_kctrl_new() User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") To: Mark Brown CC: Linux-ALSA , Simon , , Hiroyuki Yokoyama In-Reply-To: <87wpay3svc.wl%kuninori.morimoto.gx@renesas.com> References: <87wpay3svc.wl%kuninori.morimoto.gx@renesas.com> Date: Thu, 6 Apr 2017 07:25:13 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: KAWPR01CA0057.jpnprd01.prod.outlook.com (10.174.229.145) To SG2PR06MB0821.apcprd06.prod.outlook.com (10.162.198.147) X-MS-Office365-Filtering-Correlation-Id: 91a6da4d-4109-4a2c-0c91-08d47cbe1151 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:SG2PR06MB0821; X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0821; 3:1N/La3bNLzSwx4HcBAa6z1zKtvm9Ya/i3NYMwXaGBDjj+oZijfeqInxbYYXL2VA95MbrWRn1iFGoMSsAmFKff7PGuhKeAi1gUtnAz1+1GjDasUEf3dnEYCsEZlHZ3mEhRg5xzshluIkCYuVWlP66X4E/1CsLDCkWxS+G6NbyHo7yRN5WSQhvkQLEAzyVlh5zhKRevearftLVK07EO4ObI+h8c/rONSIg1dzxCSTGFbqIeSviRZeZ7RgIpqtVYsLc8iG8YBvG79VmUP1uroAQ6DsX5orQ2Qv2//2qjov7lzaOS0bWtab5dKXMNnLWQ8ztIjcDUkwTgLlUYASDzq+QfniFSi7EWj43HL/Gj7TfTgI=; 25:4ewFXlR+uverL7JOZl6VL/nHpgqj1NZ1a3rMTY4NC8k25rb1+byellO75/OMX/XinpcyXLOThVDd7Wih2iDSQE46HZc0RG5okFEl+QxK8wEXgIXqhk6P2j4sNLAJOh6nVKXh14EVTAXo7g6+SMzIo7Uzfi0nVG3UMVgDug6PWzqvfSReGzcs0asmBnILDZdeDnTBRFvGz3v+TiC/k4+lzQiBC4cZhVBazBN44hXzJ4SBqeK4TiWTMqavzsXUIR+7GVdGUmVKFV1trWxg0LLlAXsbUDILpzpx33wODDrsUGFsXJV/W81WcYr94wWwJRqosLPQUpZI3XZL8B08WcY77xlzTFeMzUK8beKY/LoqhA2O1/4b4Uf5k5Z99hetlqlEqj8LdZLpe0/oAZ+hSca1Tbku9GmYHWUmBDb8xQ/alm+KC1YMooOWJ7jte5/KVmIn4YV2J8JkxwgWsQZWbnaOsQ== X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0821; 31:YZvkX7DgQKdpM7wNCWjDwcElzUH2YcdBWJsYoVSqLvXZalJLzvnAWGNBaQjOz+coz/ByNO7kL7ScXEOUw8DUFFSM7PBSvBYk9CdkdLoMZ/yNnqlmTVepjhU/vPmK/d0Sf0rjLZQy6+8OIVzJhP5W5ea7BjveP9eu9hJaNDZXpsdhWeIRSHpQXwiW76PP+fKTI4X+O+Mk+EYo7jjcTOZOhZ7bc0EERxFtAqiE0nF23O4=; 20:YGBM23O4xOaAyc5s8qpvKy3wLySbS38SLNuNxOBA7EV8o90Bm5mIXiUskKa2CYp15hR2sQSitD27FcsnYZPNevB8+DZCs+zym37kq0yQ8cOggzBjWlk8ytaOuDzOGevok+MkAPdbGR6GEM7H+NeBqqM21nUx69Wo8Hgn8iHi9LQyau2SSkKeCyfLDdrg011sxG0ZSM3vyQlCEO3bt2y40iofFsxZTqrEIUbY+snzlbZwQ7zNsyWPxCtabmswq3xwX5HMQRjDllrIGEMzBisnVsNR8ZN1h9whH8Be0T+K7Ow7Kx1J0+v3KwGUK9k0C9ixOkN6PSe7GyozIX0a/5dWxjihInd5oKLn3+UWn4dS/coSPzkuR98HSmKa0/3b+Pi/gS9k9PHRHV2RGp0c1MN7T4H6vJR9kr3FOVEyyy6+Eg8WpDKpmViM3gYJAkIoySM3p/08JGNRajsu9NSENCYpQGACSlh922Y5NDfodjKjH0quStyELJD1ByZoaSzuvys6 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(20161123562025)(6072148); SRVR:SG2PR06MB0821; BCL:0; PCL:0; RULEID:; SRVR:SG2PR06MB0821; X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0821; 4:tPpNhbJIEOLdECjCYb4OuVNR7yNbsHqC/laLSpJhgAf9+3T3fUz+nKhV2MhaG4kZk0IjWbYBddTp2OoirPYZEUolRF/CEW6n+9pjdw3p+XPLTVfr9HUcAwBiZK0HCAPEVp3bSO5ZMHKovT0qckPJQcmI6FzoAjQJoF1edupgE7Obv/bas+y5sCKbK1HqRPF3UyLBf9PyUnUQs8XPzKkaVB+0TUhIVfhyhkhd65n/qNIskFaJcuYxWc4G+r3F3ObAx/KAEqIkwvh9XMMuD1e1QO6Ox1toXbyydsaCwM6Oxcr4g4dbQWXGauGKid/WF87hGGa9YHibftzUf8H/w8CGyQzGzOWrp1Px4FKRvl4cWrPh/v/5Cx0GUqHPUK2K81cYqciLbIQvkDmfgMuUVY0wxqXxiITTkyrMdYZeJ77FhO1TTqJe4r4pcUgiaMA+5LpahnrooHY+NgaY1yo89ANcMJeZK8oT5yQ6A25AUqtNaecOf8Nk4MrO/LoVDRj8FVaH93xvuDZkWliHVGf2FPAQbIujw0mHEBh7SleIzvcWPbdFJATpykMzTwQHX2qUypSUZd8uiOr9IJPiAEuvanSicsuz7i7HAEv48RWjBGQ+FwMEmg0uFHWZijxy6AI++tml1F+RO8mdyXG2iLphzjOyM7I2Gy4lDCR21FbNBUwspFzJTxKznP6vkEe4gmeqXeMr1iLCynDLM85NjvY3LiwQ2p+uAYheH6NKj/r0im1zsGo= X-Forefront-PRVS: 02698DF457 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39850400002)(39840400002)(39860400002)(39400400002)(39410400002)(39450400003)(5660300001)(66066001)(33646002)(53936002)(25786009)(2906002)(54906002)(6916009)(46406003)(2950100002)(189998001)(6486002)(42186005)(7736002)(107886003)(38730400002)(3846002)(23726003)(6116002)(50986999)(50466002)(4326008)(8676002)(47776003)(305945005)(81166006)(54356999)(76176999)(4001350100001)(53416004)(83506001)(36756003)(86362001)(575784001)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR06MB0821; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR06MB0821; 23:wjDXWLQnRRhwATRmXj/qASgo3fMVuddSgApZ2rx3u?= =?us-ascii?Q?gtKrzm481O7OILk8fS5MNHHURzLBY2RpSCY9e3RsUkzVxTsYDQ/Vdy4RfE3I?= =?us-ascii?Q?UJ+uja/xeiThlNM7AxoNPZYDh5/QwK8/TbMQtBCnw9i3opaeqY+IdlrGEwgk?= =?us-ascii?Q?H3+fjj9yCpQC7HNNfRFnSi+Y0yuYiXWMzyWQU00CwyqQMcG0+0koUUI8e9vH?= =?us-ascii?Q?fGqLRg7HZM5WRasTQ7KLYPuk/NqB2JXkU3X5zxg0CvAll7QXaXdrCnL794Tj?= =?us-ascii?Q?9KuCWHm+HBgfBW41iP6UNcem8ZGuIu2LZ0Cqml6MO5exI+ohk7QWJoG5wtnW?= =?us-ascii?Q?cAAUHqrKnsvfCyEpYHmdAorMu3GWZuwgM68p1PesNJz6QIku9G6MWstsOHBk?= =?us-ascii?Q?KfMiEJkBAPj6TKhumjQ1qunrrriELqU9ZFwwtelPsMYLocJxeOiIqXePX9yw?= =?us-ascii?Q?aInyFT3V9iNIzj/n2aCtIgibG5K9Ugs6ExKk0s2YwWj5Xt4EJWyLkzS7+Hs5?= =?us-ascii?Q?jKz2GVeSdyodsMHsv4SQftFEcKkA0uXjVeO+XBDLYwoo6uHWiF/TAYACJx5Y?= =?us-ascii?Q?L5nBcOjUNM9gAE6CgGODgCZFhG8ygt3LWicZq+KH+8cJtHC680fkoGqmfh6l?= =?us-ascii?Q?hqP/4eoBJAP7sbOkIhlWpDUPl23OAudXZ9FO0MeV6Kkksn2moDEVHD/Mr/IV?= =?us-ascii?Q?QYVnZm/INi1rnmRFQO9j7bUtMjeut2r6xU+QCMhjuC8n4pXpVXFnQ2BaKGxM?= =?us-ascii?Q?x5pGRq+6879IX3POUb7e1PhpMZmUcG/BE+/11MQ2+0d7wFl0Kyyeq5Z6GcE/?= =?us-ascii?Q?0rwkcvwgYenmubprNGt/Tbw8cQtyi64sMf3hyTKuF/HUpHPrxGYq4OGFo/4y?= =?us-ascii?Q?M8txfLuMfCTAKtsVJek4GUhvfB21n47zZKGkvfllLiNxflHMO7v3fxpnh4Qe?= =?us-ascii?Q?/XNPf5KuEx9S86tICjWkgQAo+nNYXnKq/z63ig84l/x7IaGBm+70UxUoSoZQ?= =?us-ascii?Q?vH0PznDbI1QYWehS+fU2VXXvzgpRGcMsNQTWTA1iCzV5V2TP1Wa/dpAGCn+T?= =?us-ascii?Q?gqzUa/Z9nIYzvsX/ynj3IsB90glMih2NBAyrgZqHuYF75Q9/sjBAqJJ7XLBH?= =?us-ascii?Q?AxzL7BmJkQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0821; 6:xv1T0f5T9lOp5JUYlR6imPsRlq6T+63GqsKqHLxr7Qfb5Kpn7ntLhDcDXAkbdZ9tsFoPbmtAC/IWcrJsnqQa3alTTOBW8t8r1js5Aimn9foNrvSCVu+vIG0AWa3ZF5Wf509cjypBsPIUDVaqivW4ee1q9gd2ar7Up6TnZtM1NqguOhNq+VVNcXjs7PztvIhdEAzxT9hB28rMwdcKsWWTlp7gzVqXrK0jiN7+9r96bBbzPof9+B4WA3y6+s+ACp5UYuKc7uFL6lJP6n48+mZTD2O18FTyKWYT+pEJaE0pe27y9dF2yYZVBTQa+dpKPJ/wTAbKMgHvMSPl+vRtEaJUEE0vmN/8xsskFqzK+1Lu/jvqLvdaVgQXONtx4BeAA/hatRwX4p0oUjjpGcjWiA/PipOeO2jnRSA9O9H52iKRjfw=; 5:XAejFHtg/5zNcJD6qLQYYsETWx8a8kph1IHcEGzUJTFPApmPaHiPHfe5uMr97M9TrfzETNICs1x8jTyeKIJ8eETl8yHOtcnqiLjh/PM3PEhTD38Ldy7WT9CAntH/gYcvNfFvgdfwTn5lKxq4/CSmyw==; 24:Y8IvFKMTbypo2IeF1G6X6q+iB3/BOfnl0CLSJUQ1qh9v+5FWkO0Ryg36s/Ey1ZjoBvlbnn72tCXtRdPZ45/cOJvQ8sPtvZpd4E8T0QJWD6s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR06MB0821; 7:my7WBf0A0oLZ0J0tuTBISX+pdVCLcj09Z4C45SnCZEMXrXmq7rs31T6CCT7aOjlmQYGxH574BWRsvNKj4crdOiGApIvbQyNXCQjCIJjJxgMWaE9q2+x4uaTGZtxgBdBTj5fvpT+EGVbGE0WHUvIrTouMOEmOmZTGdlgdajZfbgXUNY3PLBs/gjNcy455nUDZJNeAECsonT40QjvoQYGisLdi5e8TI3I7KMhpN3zEPkN7Hi9u40/5nloz0grfUQfOvoYqxcSlex/WSs6KFiHOnR2yisBomlTEe11linKBD7n75HRebCQJqGGpr1134xkq4yTOj2uJ1zbkxmci5FbxMQ==; 20:kK2NFH/NssTZERZS/V3ZgmT/PWDcXrKpbn8Vu2WopSTmCwYwvchadccdRnIeTc/7i0A6YG4BaHRJ8BQU+FfTK+ilB/sa959tXN+HeBKXCt0XkhOX5b3U8nfx0dwvPTMEo2yhNJc4Z/vqIAc9lju4al6/qkpe+TICaXPGA8RyZoQ= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2017 07:25:13.6652 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR06MB0821 Sender: linux-renesas-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-renesas-soc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Current rsnd driver is using rsnd_kctrl_new_m/s/e function, but the differences are very few. This patch merge these rsnd_kctrl_new_m/s/e into rsnd_kctrl_new Signed-off-by: Kuninori Morimoto Tested-by: Hiroyuki Yokoyama --- sound/soc/sh/rcar/core.c | 96 +++++++++++++++++------------------------------- sound/soc/sh/rcar/dvc.c | 8 ++-- sound/soc/sh/rcar/rsnd.h | 50 ++++++++++++------------- 3 files changed, 62 insertions(+), 92 deletions(-) diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 10e5e69..6e3e7f0 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -1049,13 +1049,30 @@ static int rsnd_kctrl_put(struct snd_kcontrol *kctrl, return change; } -static int __rsnd_kctrl_new(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - struct rsnd_kctrl_cfg *cfg, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod)) +struct rsnd_kctrl_cfg *rsnd_kctrl_init_m(struct rsnd_kctrl_cfg_m *cfg) +{ + cfg->cfg.val = cfg->val; + + return &cfg->cfg; +} + +struct rsnd_kctrl_cfg *rsnd_kctrl_init_s(struct rsnd_kctrl_cfg_s *cfg) +{ + cfg->cfg.val = &cfg->val; + + return &cfg->cfg; +} + +int rsnd_kctrl_new(struct rsnd_mod *mod, + struct rsnd_dai_stream *io, + struct snd_soc_pcm_runtime *rtd, + const unsigned char *name, + void (*update)(struct rsnd_dai_stream *io, + struct rsnd_mod *mod), + struct rsnd_kctrl_cfg *cfg, + const char * const *texts, + int size, + u32 max) { struct snd_card *card = rtd->card->snd_card; struct snd_kcontrol *kctrl; @@ -1070,6 +1087,9 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod, }; int ret; + if (size > RSND_MAX_CHANNELS) + return -EINVAL; + kctrl = snd_ctl_new1(&knew, mod); if (!kctrl) return -ENOMEM; @@ -1078,65 +1098,17 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod, if (ret < 0) return ret; - cfg->update = update; - cfg->card = card; - cfg->kctrl = kctrl; - cfg->io = io; + cfg->texts = texts; + cfg->max = max; + cfg->size = size; + cfg->update = update; + cfg->card = card; + cfg->kctrl = kctrl; + cfg->io = io; return 0; } -int rsnd_kctrl_new_m(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod), - struct rsnd_kctrl_cfg_m *_cfg, - int ch_size, - u32 max) -{ - if (ch_size > RSND_MAX_CHANNELS) - return -EINVAL; - - _cfg->cfg.max = max; - _cfg->cfg.size = ch_size; - _cfg->cfg.val = _cfg->val; - return __rsnd_kctrl_new(mod, io, rtd, name, &_cfg->cfg, update); -} - -int rsnd_kctrl_new_s(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod), - struct rsnd_kctrl_cfg_s *_cfg, - u32 max) -{ - _cfg->cfg.max = max; - _cfg->cfg.size = 1; - _cfg->cfg.val = &_cfg->val; - return __rsnd_kctrl_new(mod, io, rtd, name, &_cfg->cfg, update); -} - -int rsnd_kctrl_new_e(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - struct rsnd_kctrl_cfg_s *_cfg, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod), - const char * const *texts, - u32 max) -{ - _cfg->cfg.max = max; - _cfg->cfg.size = 1; - _cfg->cfg.val = &_cfg->val; - _cfg->cfg.texts = texts; - return __rsnd_kctrl_new(mod, io, rtd, name, &_cfg->cfg, update); -} - /* * snd_soc_platform */ diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c index 994fdb7..463de83 100644 --- a/sound/soc/sh/rcar/dvc.c +++ b/sound/soc/sh/rcar/dvc.c @@ -285,18 +285,18 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod, ret = rsnd_kctrl_new_e(mod, io, rtd, is_play ? "DVC Out Ramp Up Rate" : "DVC In Ramp Up Rate", - &dvc->rup, rsnd_dvc_volume_update, - dvc_ramp_rate, ARRAY_SIZE(dvc_ramp_rate)); + &dvc->rup, + dvc_ramp_rate); if (ret < 0) return ret; ret = rsnd_kctrl_new_e(mod, io, rtd, is_play ? "DVC Out Ramp Down Rate" : "DVC In Ramp Down Rate", - &dvc->rdown, rsnd_dvc_volume_update, - dvc_ramp_rate, ARRAY_SIZE(dvc_ramp_rate)); + &dvc->rdown, + dvc_ramp_rate); if (ret < 0) return ret; diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index a0df634..c0de9d4 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -613,32 +613,30 @@ struct rsnd_kctrl_cfg_s { u32 val; }; -int rsnd_kctrl_new_m(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod), - struct rsnd_kctrl_cfg_m *_cfg, - int ch_size, - u32 max); -int rsnd_kctrl_new_s(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod), - struct rsnd_kctrl_cfg_s *_cfg, - u32 max); -int rsnd_kctrl_new_e(struct rsnd_mod *mod, - struct rsnd_dai_stream *io, - struct snd_soc_pcm_runtime *rtd, - const unsigned char *name, - struct rsnd_kctrl_cfg_s *_cfg, - void (*update)(struct rsnd_dai_stream *io, - struct rsnd_mod *mod), - const char * const *texts, - u32 max); +struct rsnd_kctrl_cfg *rsnd_kctrl_init_m(struct rsnd_kctrl_cfg_m *cfg); +struct rsnd_kctrl_cfg *rsnd_kctrl_init_s(struct rsnd_kctrl_cfg_s *cfg); +int rsnd_kctrl_new(struct rsnd_mod *mod, + struct rsnd_dai_stream *io, + struct snd_soc_pcm_runtime *rtd, + const unsigned char *name, + void (*update)(struct rsnd_dai_stream *io, + struct rsnd_mod *mod), + struct rsnd_kctrl_cfg *cfg, + const char * const *texts, + int size, + u32 max); + +#define rsnd_kctrl_new_m(mod, io, rtd, name, update, cfg, size, max) \ + rsnd_kctrl_new(mod, io, rtd, name, update, rsnd_kctrl_init_m(cfg), \ + NULL, size, max) + +#define rsnd_kctrl_new_s(mod, io, rtd, name, update, cfg, max) \ + rsnd_kctrl_new(mod, io, rtd, name, update, rsnd_kctrl_init_s(cfg), \ + NULL, 1, max) + +#define rsnd_kctrl_new_e(mod, io, rtd, name, update, cfg, texts) \ + rsnd_kctrl_new(mod, io, rtd, name, update, rsnd_kctrl_init_s(cfg), \ + texts, 1, ARRAY_SIZE(texts)) /* * R-Car SSI