From patchwork Mon Jan 29 04:26:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10189151 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 4237A6020C for ; Mon, 29 Jan 2018 04:50:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2F0A928767 for ; Mon, 29 Jan 2018 04:50:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 17F342876C; Mon, 29 Jan 2018 04:50:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F299C28767 for ; Mon, 29 Jan 2018 04:50:44 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id E39A6267E04; Mon, 29 Jan 2018 05:32:40 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 8CC27267DFD; Mon, 29 Jan 2018 05:32:37 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id BCD53267BD8 for ; Mon, 29 Jan 2018 05:26:24 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie1.idc.renesas.com with ESMTP; 29 Jan 2018 13:26:23 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 5D8B851956; Mon, 29 Jan 2018 13:26:23 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,429,1511794800"; d="scan'208";a="269596137" Received: from mail-sg2apc01lp0242.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.242]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 29 Jan 2018 13:26:22 +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=2CWY598b8MtkIgExdb++8l9kCw/sFVx4OOkScsapHHQ=; b=Qaiao/ccOSxSsyeOT6yCRFwF5PIaqN5fePhep+r3Tad+mmpY92Im1DtiZ+gRSL9/KkcqbMFneKEv8Z0kJ4Aor/ylCXjINgDw+qn1H9o+Xo3B3z3JJRw5vsld8A2aFOtWAofmgy2mu4F47ogZGtvSKSb+NYeazdo/4g+5LhFXli8= Received: from morimoto-PC.renesas.com (211.11.155.138) by HK2PR0601MB1873.apcprd06.prod.outlook.com (2603:1096:202:a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 04:26:20 +0000 Message-ID: <871si9xpew.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown In-Reply-To: <87inbl5q6q.wl%kuninori.morimoto.gx@renesas.com> References: <87607l8k9i.wl%kuninori.morimoto.gx@renesas.com> <87inbl5q6q.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Mon, 29 Jan 2018 04:26:20 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: KAXPR01CA0037.jpnprd01.prod.outlook.com (2603:1096:402:1a::23) To HK2PR0601MB1873.apcprd06.prod.outlook.com (2603:1096:202:a::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 887bf229-c11b-4a14-0d89-08d566d07313 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:HK2PR0601MB1873; X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1873; 3:Z0SsNVV7waXvwT443QI4WuM1XCFGxpAABZ8HXSg9d7d0CJOtXvZLl6QXay91R4cg1+FURqHA2K/Kf/0wKjlfT2M61tzbKIlQGzoU8G23B0I4DEzCksFT1/+SncZHCZEGw+1XT80BwrCm17cttkG3j2QzjC95938FVraKzCZmrlsP1ThHpleQBtD9rNgnM6hcGqTtR//B56MgfKlOgF6qftaEbuDtfHYX954yItDfPypcJsj8QldBDgLYGSdD434g; 25:snX7T9cU1MJchvP1Isz0/kJX6chZ+rihRqT4xnUE4VE3X0IpjG42ij5G39QYzULxoDuY4K2InYmjnKSPvmd1Ydwk9pZPsY1p4o51IDjBRfCPZAxhTT7q7aj2v7WvnmtYDCpK/p96/ovl5ELiJknaFwj+FgIVMot37Oedk6Djg1OeR9g4E/XuUp4M3jI4lu7nYWUzDd9bVlDz6sEHbkW6u6mNvUz1VLRfJbu+guDX24V1N+9luBvmS3Rl/Q/idPKzsLDvKG9Sk2UvrwfrY9Xtc3EEggGu88PKNdpcq9Q6aCqDnj3stF32lFWlCbp8uQEuj+Xl0GHs6SXfn3IAhu0IEA==; 31:iBTJUJXuZXGzqvuUSsYqLmzCVa3vXM3bww3aJQirrhL2106AblGmnqVBSvOGn3hxWSPZYlxaBaEkTuaqyQpoEtuYse5NdhK63LVDNhGEX7WqLQu2JT/RPzotSLydMF8sMCPIRP/nMdA6MiTlt4ctOub5My+Q2HLIkgkDjMa8C8UoLfnAgbiiB8YNcsjhK8LJCvKCjd26+6c36l43D22c1TFEiX4G2joUlYw8G6ajTsA= X-MS-TrafficTypeDiagnostic: HK2PR0601MB1873: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1873; 20:IO2V/heYchz5JuXNZlAgAsMp0R2EpWDg+utRWCm+HIV1Sb6lrygOkVG2iBy/vob5SzNd9yikLQeE+a9dFKlOf2BWvp9IJCgo+eWMJlf8+yBIpFIlPDfIx+RW6yH+O8RdiXu2OCtAQQLtaC5DGpWm+iMbhaLsk5ISqQJzB72I9hv9EK2+jSg5BLEOhEFcwVoErcc+s8l6+kVTuOb0nvUvWxjnHxJvwmAWyDQc5OgKm0tgh1ViNnWAnNaPONdHrCU/3Ex7KkT7R46wa3UI52ca+GHaivC+atx5+O9hIMd+LptKDsaiRlI/mngf/bicWm6GAS4CZF52V8cP3FUKqqIXHshskY3yDVtKW8FQKBpufy2XcZJBk9KXbVUTncj7IineNTvhl3nn7rEkiFQ91BAwBW3iI8gsXuPKUN/zm9ShuSRXE17MKiUYdyo3h+pFavSC9vSbqPvKBrgyu+k/jjZkzRm54S4kxMZGZYV6+TtKEWNHT5eklPqrmcbVDv6qkctb; 4:14sJJIIWAcESuhYwEYtrft4RTrb9ChPBGre6u5VczljRyLADMALdV8U1TZKB8YTZK1nO1/9sIE2RDvC+WzFKbghrwdUwJvcTI0BCW9awgNNEUu2p5tLbUaAyiSa7LllFu7MVi1z67GmVwJx+CfwClXIqNFTRWh18VZm5m8OMEdmXSt+bEB6tdxDhOmZeAhmGJ+C77QKfrmBRlyhFtBZNGzowfS+qQoWKsHBPgokMeVeFtjypPcIyFOY6apYpFY4WZuo6NRoBypquT9ka9xmQSBrOVDFbIxmrcI75Vs7hvGq3i40ICpMccABVOLsgfCCY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231101)(944501161)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:HK2PR0601MB1873; BCL:0; PCL:0; RULEID:; SRVR:HK2PR0601MB1873; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39380400002)(366004)(39860400002)(376002)(396003)(346002)(199004)(189003)(83506002)(52116002)(66066001)(69596002)(8676002)(105586002)(186003)(36756003)(16526019)(47776003)(386003)(26005)(7696005)(86362001)(6916009)(2950100002)(8936002)(81156014)(81166006)(50466002)(76176011)(5660300001)(68736007)(106356001)(6486002)(2906002)(305945005)(4326008)(97736004)(58126008)(16586007)(316002)(53416004)(478600001)(53936002)(25786009)(3846002)(6116002)(23726003)(7736002)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2PR0601MB1873; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HK2PR0601MB1873; 23:kUE+h2cApAhyKQm0tavTNSIfo8e8B93mBav4Ape?= =?us-ascii?Q?df4wgKL+lM2/nNB4ArczDMbt0EE4UIJS2M2tJ8nl4TK/iG+ylP7Zs1qZUS2c?= =?us-ascii?Q?dzOFmxvT0fwENoOGS4O7EVQg7kFrtSMJRM/Vo+iJInHEJB/oJSpaHRiY0hKm?= =?us-ascii?Q?05WVdtopnpqiQxURG6xKAkialuX1wbuM+lX2QvfJN/pdUMFk1PPFa4W6erjt?= =?us-ascii?Q?RQ0wDsKuIG2tgZSL8PD6PreivT6/OD5b/19N4o/3ZWzvMhIh3zbq+8U0oW5r?= =?us-ascii?Q?pwAVXWWXppm7jY/XivHIYMYI+/jVkoCu1h3MUHsE/sBpbOxX1mZDjjStGFzI?= =?us-ascii?Q?LUo2JggTQqBlBAcXGwCLcOrVR2wzI4dWmGhvgVO/BF/RAUasHXoVnYHRYBOC?= =?us-ascii?Q?cz3uxE31ZUqcYNseV8UywLwSpx+Ij7BnBWbSu/mCZllS3cmpLIhuQNRtg6HU?= =?us-ascii?Q?V6dwmipcdNu8yvSEdfyilDPCBhV0qKTpVa9BF/UiFbd+1FZ+UhxyxC9Loj3n?= =?us-ascii?Q?Qmk4V12Wrs2f7eoPgonlC8U2VIGlpDm2N6vHKpcW91PbJkfuhslzWcMENQX1?= =?us-ascii?Q?iRKrt6cCAFgfbxPiyNa8Wshiez+k0KSdrli+DLkK+hNd9/hOLND+K9yyEwTJ?= =?us-ascii?Q?h9lVfJAK2SzsrY5BzSo1OzDZaV2Lly9xeuFCcyJDpZB69OxlYp/ckLUQnvMP?= =?us-ascii?Q?Mw/tJxviGcrUAWXSbYZ6WaU4RUoNCSgDvG5VJoaE+GdDLu2VsTlWovYjO3ri?= =?us-ascii?Q?d7zFcnwEzY0BZPc3GLgV22gBcjH+3PXU2FGhE4ACRy4gKXmYS0EaIJpsS6dl?= =?us-ascii?Q?XwAfuadUdMwaIWC/3jr8ffsLTlxgHHkVQkcGX9V1vHwgrp/PhGDtkhDEVS8f?= =?us-ascii?Q?7jubbLsgcYVUHI0IXOc0Qz0ro5p1aTEajRM6nlgqxpLkLctlz7gy3k2k0ioS?= =?us-ascii?Q?dsMST39Aeh8dQP6c0iyA+JOmfc2fniSG3A/cUNnMFeiU4q40f4j/xBT40foW?= =?us-ascii?Q?KcmiVl9k4fzIrZ+fTdszpvpkqD8cI9Luh72R3QYoe9+paJxpiB9znf33z+hs?= =?us-ascii?Q?JHg8keGzgN87SkUFGu3xa84RUbqKQ22KrY/Hz3qVbn4bsz5O9kVUBqi58H7Z?= =?us-ascii?Q?Um38KewLJEi05RyvXYvyWjXQnBpoBZzVG9lYChZdpJxIDL7dKOWLM/g=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1873; 6:Yt1b+vy468SNhicSsIBExm7SBlchSK3tINjk1/2Ldtq32+UhEDKwe4LBD8dJKZjPF+9VW0QmRssUmafY0oG90tU0KFvOBz4XRNICvt948GWX/EpzKnFZIM65TRX6ML3mYRSn82heYEUuodHlZoY9ZHGmRc2l0KpOhhUoqUJ3vxsw2pFJqKWWXprLpcwXNlxl+n862LvlZFnwNiu3MZhh0PJViskKXhzg5X9wKSEA//5HrUfnpjHV/itQE89x4YoAj1YHxseByZ4m/R0VwVcBohLvzHzbytipK3Je9MoxKZGUFzEXTeGNjn0WuCw0TpDHHC9RgERlykfQBRt8vHsNQ8BjaOlu52cIK8iU2z4uLUk=; 5:2g2gjjhLoBCwotJgNwBSPgw2liop2/ENn4xcySY35iJUqxmEM1ZzYKWrQJty3mnPJfF35BdOTjBITakGAQ7jab+iR/Iu4p1C9wRiXnVFM3OYPTsB8r15ExtJCP7jJFO9wc/JUZXNSL7aHvVhmt2ATCbqjI+KEoEJr+8nKILSeyM=; 24:yga1HDJfFdeayeWU1D9mPsBLsJ1UvntKh/H9jIvpQ6eeXp9PP5mMVbkhyRqUrAVHyDLCogiafbJMx/kvFX0w67ybOQSy3riYjdWwQsONGDU=; 7:LIN/GF58RegST86cfZ1NOmrijIjZ8EfISlm0ll/SFNJJowpIcb8trnhXYqFQ0SzryHhovXWZo3wKu/QZ1ur3VIbsnXBcW4Bm7vhUFl7qsRwNpGuGbXSm62BM1iCiw20Huqf5yTzdPTnidDgiW28CEdJ91i7h2UmZQW6I6GbX2V5kIi4bifRwRMhkNgpToxy/4RuCylqsaVcD5qS+lM1u5T/4LCPt5MiV5G4uq33njxk9vHSQQtKZNUZrOnpg+sky SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1873; 20:MYyGByOBnLpn7y0bATRsP5iP3xFf6+vd5IHuZC270GGMlsMA2Lo28e3YTCJESwDsRWJ8wgbEyj7siLXNnb27ZoUbJNMnNmyxJOu0yVdD9tmwOFq0bgKOLyOi0nMqY5gJXAcGzLE9+FvIjSR5UKc1wlNQkid6IIfgyKaVVlKbtTM= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 04:26:20.9996 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 887bf229-c11b-4a14-0d89-08d566d07313 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR0601MB1873 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH v2 136/186] ASoC: ad1980: replace codec to component X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Now we can replace Codec to Component. Let's do it. Note: xxx_codec_xxx() -> xxx_component_xxx() .idle_bias_off = 0 -> .idle_bias_on = 1 .ignore_pmdown_time = 0 -> .use_pmdown_time = 1 - -> .endianness = 1 - -> .non_legacy_dai_naming = 1 Signed-off-by: Kuninori Morimoto --- sound/soc/codecs/ad1980.c | 87 ++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 47 deletions(-) diff --git a/sound/soc/codecs/ad1980.c b/sound/soc/codecs/ad1980.c index ce89bfb..16dab3f 100644 --- a/sound/soc/codecs/ad1980.c +++ b/sound/soc/codecs/ad1980.c @@ -205,9 +205,9 @@ static SOC_ENUM_DOUBLE_DECL(ad1980_cap_src, #define AD1980_VENDOR_ID 0x41445300 #define AD1980_VENDOR_MASK 0xffffff00 -static int ad1980_reset(struct snd_soc_codec *codec, int try_warm) +static int ad1980_reset(struct snd_soc_component *component, int try_warm) { - struct snd_ac97 *ac97 = snd_soc_codec_get_drvdata(codec); + struct snd_ac97 *ac97 = snd_soc_component_get_drvdata(component); unsigned int retry_cnt = 0; int ret; @@ -223,16 +223,16 @@ static int ad1980_reset(struct snd_soc_codec *codec, int try_warm) * case the first nibble of data is eaten by the addr. (Tag is * always 16 bit) */ - snd_soc_write(codec, AC97_AD_SERIAL_CFG, 0x9900); + snd_soc_component_write(component, AC97_AD_SERIAL_CFG, 0x9900); } while (retry_cnt++ < 10); - dev_err(codec->dev, "Failed to reset: AC97 link error\n"); + dev_err(component->dev, "Failed to reset: AC97 link error\n"); return -EIO; } -static int ad1980_soc_probe(struct snd_soc_codec *codec) +static int ad1980_soc_probe(struct snd_soc_component *component) { struct snd_ac97 *ac97; struct regmap *regmap; @@ -240,10 +240,10 @@ static int ad1980_soc_probe(struct snd_soc_codec *codec) u16 vendor_id2; u16 ext_status; - ac97 = snd_soc_new_ac97_codec(codec, 0, 0); + ac97 = snd_soc_new_ac97_component(component, 0, 0); if (IS_ERR(ac97)) { ret = PTR_ERR(ac97); - dev_err(codec->dev, "Failed to register AC97 codec: %d\n", ret); + dev_err(component->dev, "Failed to register AC97 component: %d\n", ret); return ret; } @@ -253,72 +253,66 @@ static int ad1980_soc_probe(struct snd_soc_codec *codec) goto err_free_ac97; } - snd_soc_codec_init_regmap(codec, regmap); - snd_soc_codec_set_drvdata(codec, ac97); + snd_soc_component_init_regmap(component, regmap); + snd_soc_component_set_drvdata(component, ac97); - ret = ad1980_reset(codec, 0); + ret = ad1980_reset(component, 0); if (ret < 0) goto reset_err; - vendor_id2 = snd_soc_read(codec, AC97_VENDOR_ID2); + vendor_id2 = snd_soc_component_read32(component, AC97_VENDOR_ID2); if (vendor_id2 == 0x5374) { - dev_warn(codec->dev, + dev_warn(component->dev, "Found AD1981 - only 2/2 IN/OUT Channels supported\n"); } /* unmute captures and playbacks volume */ - snd_soc_write(codec, AC97_MASTER, 0x0000); - snd_soc_write(codec, AC97_PCM, 0x0000); - snd_soc_write(codec, AC97_REC_GAIN, 0x0000); - snd_soc_write(codec, AC97_CENTER_LFE_MASTER, 0x0000); - snd_soc_write(codec, AC97_SURROUND_MASTER, 0x0000); + snd_soc_component_write(component, AC97_MASTER, 0x0000); + snd_soc_component_write(component, AC97_PCM, 0x0000); + snd_soc_component_write(component, AC97_REC_GAIN, 0x0000); + snd_soc_component_write(component, AC97_CENTER_LFE_MASTER, 0x0000); + snd_soc_component_write(component, AC97_SURROUND_MASTER, 0x0000); /*power on LFE/CENTER/Surround DACs*/ - ext_status = snd_soc_read(codec, AC97_EXTENDED_STATUS); - snd_soc_write(codec, AC97_EXTENDED_STATUS, ext_status&~0x3800); + ext_status = snd_soc_component_read32(component, AC97_EXTENDED_STATUS); + snd_soc_component_write(component, AC97_EXTENDED_STATUS, ext_status&~0x3800); return 0; reset_err: - snd_soc_codec_exit_regmap(codec); + snd_soc_component_exit_regmap(component); err_free_ac97: - snd_soc_free_ac97_codec(ac97); + snd_soc_free_ac97_component(ac97); return ret; } -static int ad1980_soc_remove(struct snd_soc_codec *codec) +static void ad1980_soc_remove(struct snd_soc_component *component) { - struct snd_ac97 *ac97 = snd_soc_codec_get_drvdata(codec); + struct snd_ac97 *ac97 = snd_soc_component_get_drvdata(component); - snd_soc_codec_exit_regmap(codec); - snd_soc_free_ac97_codec(ac97); - return 0; + snd_soc_component_exit_regmap(component); + snd_soc_free_ac97_component(ac97); } -static const struct snd_soc_codec_driver soc_codec_dev_ad1980 = { - .probe = ad1980_soc_probe, - .remove = ad1980_soc_remove, - - .component_driver = { - .controls = ad1980_snd_ac97_controls, - .num_controls = ARRAY_SIZE(ad1980_snd_ac97_controls), - .dapm_widgets = ad1980_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(ad1980_dapm_widgets), - .dapm_routes = ad1980_dapm_routes, - .num_dapm_routes = ARRAY_SIZE(ad1980_dapm_routes), - }, +static const struct snd_soc_component_driver soc_component_dev_ad1980 = { + .probe = ad1980_soc_probe, + .remove = ad1980_soc_remove, + .controls = ad1980_snd_ac97_controls, + .num_controls = ARRAY_SIZE(ad1980_snd_ac97_controls), + .dapm_widgets = ad1980_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(ad1980_dapm_widgets), + .dapm_routes = ad1980_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(ad1980_dapm_routes), + .idle_bias_on = 1, + .use_pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static int ad1980_probe(struct platform_device *pdev) { - return snd_soc_register_codec(&pdev->dev, - &soc_codec_dev_ad1980, &ad1980_dai, 1); -} - -static int ad1980_remove(struct platform_device *pdev) -{ - snd_soc_unregister_codec(&pdev->dev); - return 0; + return devm_snd_soc_register_component(&pdev->dev, + &soc_component_dev_ad1980, &ad1980_dai, 1); } static struct platform_driver ad1980_codec_driver = { @@ -327,7 +321,6 @@ static int ad1980_remove(struct platform_device *pdev) }, .probe = ad1980_probe, - .remove = ad1980_remove, }; module_platform_driver(ad1980_codec_driver);