From patchwork Fri Jan 12 01:47:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10159453 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 94B49601A1 for ; Fri, 12 Jan 2018 02:44:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 787E8287B6 for ; Fri, 12 Jan 2018 02:44:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6D10828975; Fri, 12 Jan 2018 02:44:17 +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 676DA287B6 for ; Fri, 12 Jan 2018 02:44:16 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 02DB526833F; Fri, 12 Jan 2018 03:37:35 +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 BD11426831F; Fri, 12 Jan 2018 03:37:31 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id 87CEA2680EE for ; Fri, 12 Jan 2018 02:47:21 +0100 (CET) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie1.idc.renesas.com with ESMTP; 12 Jan 2018 10:47:20 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id AAFA87193C; Fri, 12 Jan 2018 10:47:19 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,346,1511794800"; d="scan'208";a="268011141" 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-SHA256; 12 Jan 2018 10:47:19 +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=AGw13ey4M7pZDomUm0+yNQhT9Y+RQiXu7YJ3wy/8QIM=; b=Ux3FhI3GOsAX4tVSPSvuia91syL2pBhZAYgHEtC1bBPrQbPp2EaxE+Yn65zbK6xxUniY1gN4tb418WTexzmdcUzWFwwhEf5Dp/aPwKhTlBnSHXAJhgcT0o1S2kzfw/LwFlEMpfc4awZG/r1gIrSXWVyYriZQ7bIVVsAjR/rHp6Q= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.138) by SG2PR0601MB1885.apcprd06.prod.outlook.com (2603:1096:3:9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Fri, 12 Jan 2018 01:47:17 +0000 Message-ID: <87wp0n6e8v.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: <87bmhzevk9.wl%kuninori.morimoto.gx@renesas.com> References: <87bmhzevk9.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 12 Jan 2018 01:47:17 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: OSBPR01CA0012.jpnprd01.prod.outlook.com (2603:1096:603::24) To SG2PR0601MB1885.apcprd06.prod.outlook.com (2603:1096:3:9::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1aaa8475-0491-4538-196a-08d5595e6998 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020074)(4652020)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:SG2PR0601MB1885; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1885; 3:KISfxCMrJvr/1u21rYAfXf1dY03Q3rPIrRPj4A2CL3+4YGjiktKApx5pXuTU67A24kiFjse+iQ/rZkADVhbwgR1P1fgm39NXlmKBNHVTlfdDPVktAMfm3MpCxpqQ0CCfABf197IxyRD52I01l6P8Dbn8C09RGwVIf2osz35iM7+yv2wqpEqmGqg440PP4LcxXq15EjjN3vfM6ICX3CJWMjX8AD7mFwjYlOpstnlSxTJvsj78O946ViPJ4kgdWZe8; 25:CYmhFnFiZ5yRv8rCccPdE1nQsqauXqAcxBS/iiAeEGOFalks4JQx1JW6+nmKtHKrRyFbqBa0PjFJC2+Vf0SqANh3V0SM4HPIxzX7yGku8rfb+LWVV/3sDjaLQylrrm0u/AZwFVhAbULyZL5+PPzEiuonRbUKUltPQMB5D+klu7iyjvxCSsf66Vu5H4VXJJzuc6ExjT5czF8nnjC6H8mdoVfrMRcsgGWJZTIJ8NlxTCXvMVjjWAqGdYY1Xp5Ewd3/8ELsWsl60z96xXAubFR4u+OZg/f5f0G/hMRNS0Der8P6Y2/KK//Bu6d2Kijd9qGM5ywfIijPQ3ehimWIOM1wlw==; 31:zYL+tbIn4R1pf0TpUwdrIXbUOHegUp6ggJGZCLovRtni4sc6EgsPjzS8CEuAeqSg1S/RDjWGns1gAoM+fnXvuQ5RxZJ7q+tpyLFsVYBwmLipBbR6hgzGFpVt5cEDqnI2TIn3rEyj8K+lMfuDogRXnPG3CMrDlGQ0tsWH5HLQchrzMLFKY6R3/rDONQMw/M1JT2M7RWlcx2TOwcf3HiKNh/0tHlTN4sUeRIgLqci1RqY= X-MS-TrafficTypeDiagnostic: SG2PR0601MB1885: X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1885; 20:fgg3I4G0wE+GFk9ilckSMMndnjkCM61OZf+i4WTA4aUuupY+dSmwo2hNC99PspBy1RqYXioRZ1KSyxZsVBtAlMZxTUyLP7X4J9faXyAXUhZNtDhiTtV0dDhtYWPhgIZ/gHy+kXhMuRuEL61uCdNVumdaZJexjF79GsyvwTBe6Y/ihbnJ9UtD+gjRctD0xoLaRQAb0TfMU9cZspM4MKoH7Mes3cj/yVJHhP4BoUEv5sTadfqx5+MlAURX1le1+54dYzRkDea2y8vaMGxlWOaPEEaL/PKCuvnby2PCIS0T0ATIvXKX10lkAGpNh84kvxaz+dYr2DOuFDIkNWP45U9Yf0mK/fT02u/7h04OzSvD7dic17DJOHhkHM82eBAio6nytiD6XZ+bhMwCYbV11NjR7WOIcS3KnXshyxAvA1WEW0GV8VeyfF0dQmQTSXMHmUu+Rq9o98akpm5K2KHMT2nCMK4y6JLPEGXh1hnK5TJYRsoUgORqNzMKps1SCII1m+ZC; 4:1EXmo701lSqcIOEksqLC4KtLMMT8JukZ03lhT0E+wizwBKexAV1nOf3d1dtzQ8U/taPT686q8wEm6w1DyvI6acMbzQVUdnfJHqHhqbWDItrcs0UcBZXjqg0pFUcrTlpvdVEbJWY2aspbw0Ua33Xx5eRTpYZu9BS7M3KrvNNLQ0IXnjCVELMLs/O6JwP6RMmtesSxsIVpZS6fhCmta1u9Yv7nLuZ8fi5cBVJV0tRelS4C5NbhobfCZ9eBb/iQ9BQSjy88LjgAio6V90YgbiGPgjpn0Bgn6N3/VB5qp+P2PhTgS6a3KE3E92L/wbTDnIbe X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3231023)(944501138)(3002001)(6055026)(6041268)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:SG2PR0601MB1885; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SG2PR0601MB1885; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39380400002)(396003)(376002)(346002)(39860400002)(366004)(189003)(199004)(2950100002)(6916009)(97736004)(105586002)(68736007)(69596002)(36756003)(4326008)(8676002)(5660300001)(478600001)(81156014)(86362001)(6116002)(106356001)(3846002)(50466002)(53416004)(25786009)(81166006)(83506002)(54906003)(52116002)(23726003)(7696005)(66066001)(76176011)(7736002)(386003)(47776003)(58126008)(53936002)(16586007)(2906002)(8936002)(316002)(16526018)(305945005)(6486002)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR0601MB1885; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; SG2PR0601MB1885; 23:ld4/ShpfUwLhNbxtJgqoyER9mz/qE+KuDPFCnfu?= =?us-ascii?Q?Q5Bc6QPs9IS7ikhlb1EiIPaWfE2BDb44kFf0Y+6M//WnpXycjG+90Acb+N5U?= =?us-ascii?Q?KCsmoMGBeSAjKmumvDxHR6d5eR+0ShPiP4n1SC+WIlLGY0cpPSEl+kjHkcL9?= =?us-ascii?Q?oZc0J/aoEJYBnU7Xkmxjd22FuUsdsVA6PXBnsFwnACpmhgw/M+lI34N5ZDAX?= =?us-ascii?Q?y2FYj/AchYeAnKDao6+kTXVFEj/QDON+7k6vUfF1jumkVCXGo3MvsogZso2U?= =?us-ascii?Q?C+90A6PiImGy9DFFSXh0trt7W7D5sr57J2T11cmhkJ1YbC85mb3jnidyijoP?= =?us-ascii?Q?avvQcV8Lbio+Un+h86Y4NDoomNWkSaWHJk0F2q5e9mmxssgVQDKXSgXH4J55?= =?us-ascii?Q?GoYpc3FDlJj/6sJVZtNvCly2tsIkwCgLUUAXLf5Q9++cfPgjuTqvQNf4HZTp?= =?us-ascii?Q?YqbGW6VPLE0DWxy52fOaZCZtK87WtW+jIQZXgs09DTA6UJn94PlWJ3F1860o?= =?us-ascii?Q?pvUabi3bPUbswepDrQb3o81Yat744MXy59SPEIWuZNNUua+/chDpPVOa3235?= =?us-ascii?Q?yvNZhjeVTdW99z/k7litkKF8GZx7Ccr7qWtFsVQi4SxP0/58RytXUYbOK1t4?= =?us-ascii?Q?uF2Mxs2VOrw6OghKS0gvpsXH+W0CVaM/5tJPzkQyox8NXIRPcGNqBoDrv/DP?= =?us-ascii?Q?AChAwnO0IW+lP08XN1QzE/Fjx6p4nsAxghnaJB56ctn1xmBUwVRAVnvAaKFG?= =?us-ascii?Q?IriCSZjpP567S2D6qXAg010ufK0Txs5Bj+b3MrkzB3HQDjkZWX4WE7QOomNo?= =?us-ascii?Q?3vv0Wvx93X7tYjgmXotXlCqbX6Xtg3qZe3ejZ425iV8LVueNiz0pOsBmfkHy?= =?us-ascii?Q?lh7w9JVkno1oh2Idi7VvgvXd+raMJkw9rfV2bgE+VNMUbe9owDn56hjbD/o5?= =?us-ascii?Q?/gOReDuzdiHs47K0MGmJS3u2py0So9WoOUZN3MeXg91dFvovgL42hKEnduQ3?= =?us-ascii?Q?Ag79aT0A1r44kbL1IZErjXqANi5r3U5AgN3DrGyfzogX488tW04FihrBIyEK?= =?us-ascii?Q?TRSzk7/CqMWqvWpo2RBycdT0fuQfM3M/PUlCGhb9PP4dqBxWyAs8bCX65qHI?= =?us-ascii?Q?IMrCsnG780jDyTd3ZgBxsa2RTFlc7CfaC?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1885; 6:qEczeeKlWxXANBeRgOMB226H9oG0vkmIe4kEaYRpaCOerkehavOQ2m1Chd9aQMH5AoEnROk7uAkJ7fvR6YijHnT4cVJ7yPpu2uEaOGec2J64UbjmtoM1HzRebLig0N5xipqAxICU5kjPuTqp1GCsnEyIIbdC5RkV1MHF+Vpu9Ngpnt1AUeJXGhhOtAMGcIKUYINc2MMMhzO0zSAnoA79imghMM/4S6go4mdVyXFhQda/TpDR7R/wOCQJJgYNcevuW666ShsqaCXBurVWqgQ8tftioErJShAlRPckD0SDyOm2+6/EfH9ievg6ZcoQkJBNW5sbcWAUbAFlTR96FtrvBHhLK7cmu/qe2Qw7fQ64JvY=; 5:zxtrOq475wAqbUgpGMIT10xWEpV8WGwgpI4FNVU+6B5d2Q2H8p+jwc2IgH7PaeI+9MGg41Zj+5ZhCAowj4N1RFF6fQvnPZFWZ+B92ZKe9mFrfkojIsfWx7YdmsB4YbNPzEHSIOXzZKcKiAy5v4a8k1i2PD4vH4veRM7thIEA0RM=; 24:EC2T3qkXyqkDpNu0ztEK/sEujZBIopEJqrMgywFEzmxfYziYAlvtIfODQhxNKDEm/krJlFVDMXgJnN9Dyu6mt2FIuu03eAsnKtgw7JuUIuU=; 7:SDCFFQ3nUn2OFOmKjMdOrmNzOMB68BZ+v5KTUN2tEYl+wFNNg+LvBSmdtaSUIouPurpZs2GmOSDpn8FcC3T/r18XkkMphZGIoJmBp/rb3gWQhH4S7Qxj0eCj0GBVaLaXsc/OdmGQiytyKv0Ff+F6nbBUePu8NI3ZdWX1yJG0xMcmxPYsJalocSMHbKlgK/wg7L+xKMMestIVKhRxzjWUTvPYbysAFQ46JBJSSqjr3qzm5NuKW5/fepla5Fi7Nvmj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1885; 20:AStQ1hNRwn0mdPc2qpRzCAA2jkKrFusH04BTsR6LdBvQjCD7R9oRJ50fKnUr6qdvlEcuYUgJSsJOvwN1YWEwA4xRwlvwsFpkpZIpBgDD3wqkOvOoTC9TS/naGaVdfwn2APq0FJNG5Pf+tVRbiaCoM2hk6r8v1fpEdRIpTdjqz5g= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 01:47:17.1479 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1aaa8475-0491-4538-196a-08d5595e6998 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR0601MB1885 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 135/187] 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 -> .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..c5667e7 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, + .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);