From patchwork Fri Jan 12 01:24:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10159251 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 19F1A602D8 for ; Fri, 12 Jan 2018 01:32:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 08547286B6 for ; Fri, 12 Jan 2018 01:32:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F12E528716; Fri, 12 Jan 2018 01:32:24 +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 CB547286B6 for ; Fri, 12 Jan 2018 01:32:23 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 7BB3E267BEF; Fri, 12 Jan 2018 02:32:22 +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 944EC267BEF; Fri, 12 Jan 2018 02:32:21 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id 235B0267BFB for ; Fri, 12 Jan 2018 02:24:06 +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:24:05 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 89CEE4D137; Fri, 12 Jan 2018 10:24:05 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,346,1511794800"; d="scan'208";a="269308365" Received: from mail-sg2apc01lp0241.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.241]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 12 Jan 2018 10:24:04 +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=0oG8UUsvB4darof2XE8MBB70P4R3mw3hFQVOXSud/dU=; b=VmMpsE4Pc/NlebjzJmgLQvqNf1bVYSEVKHHmF+2YsnqzDHAEkzAPKV2IeR3K3ItcxARKVRWPVqsq8d35HJZLURfmQBEA4SNP8M0j+YixC2J8xXXrPVHMQODe8Ydan3R8L6Q0HiOEmfsw/5XeJYUPxj/lP1/eKgo0nbHiFl9GosQ= 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 SG2PR0601MB1888.apcprd06.prod.outlook.com (2603:1096:3:9::21) 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:24:02 +0000 Message-ID: <877esnc1ld.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:24:02 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: TY1PR01CA0144.jpnprd01.prod.outlook.com (2603:1096:402:1::20) To SG2PR0601MB1888.apcprd06.prod.outlook.com (2603:1096:3:9::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6e53d0da-86dc-4399-755c-08d5595b2a79 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020074)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020); SRVR:SG2PR0601MB1888; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1888; 3:g1UjL/YgVGVIrcKtvIVXSCLj5Yv9avUOT6LVIAZQyGhiyOH9A+j238yrsQkYpzQemm3sIucLUDWBcoSfzn+YC0HntKNg7ku6c9P3L2DpPnJnqMUWDQKiKRDgJto7/cKSCCR5ho2h/bQTNt5nY4++wNxmFncyXGUR/+EaV4aZzNN+lIx9RkglwE6gcQio2Fd7SHrOU5x7DX9DUIIYqKHW5kqUNnH/2ahvpwN/A3+b2EuXCW4DNrbcF/OLhl2zcQLz; 25:wQcuLykWmprvMCDDVm1RZaw76rCD55IwmXyZjclhrvWBah5pT46CV2hfKKgAIpemCxopnf+Aier34fJKaRB5uK+0w/bqyhoZbCJsxSh+Zf5v5DAzx5GbDfXQzbSjxfcTRnjfSwn3Eu4wvvjdu4JzjEXLs4Fl4aBxxNNDg2RPT/T9i14uuUlrC2Fe7OcYFkDUX0y3lqtq5QOJitmHwd3UuJdxtUlBkt8sBLEsa7b1cL0e7j6emacmRJPn+dm6ao90iBhYaEbHMzhC4io/41mkHMGUAII+1+3pB4EgDY5NoVNu25xAm24hPf6nP+dRbF/9LBPAUiINodD16O9DpWPScA==; 31:fwu5D1tg20TYKK9WAnvoEM1zITsft55mtpjJ7qWZ88HYXs9W3fHWCPR13uKIpTxO2Rqr3fP+VzFiHNs9fQdcaeyWhB3upyAM9TmiHLVhkwuY+nLLI4HLM/pUnmFy6+m1cFBI1qOHdKOA+pEfxuhxMKM1VcAPQJ6j78uMDRW7cDwvuxmCrYHDwuv4UHLChrHEucBPPbZFqzYgiF0Qn2wXGVf1dmYhuLjKaoY3jcKayYc= X-MS-TrafficTypeDiagnostic: SG2PR0601MB1888: X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1888; 20:YGobWKRDRoZIgN6ASfjZC3myBcIHp9Ziieg/j2sKcoFaZem04mMm1LJKNJIuw2nRe3RGVw4/xCgodN5GBc1vHRddkEwpBTHugv9y5CdsF1N3c+WZyT1SZtG5/tMOYiuuEdaNR3ymIGTNYpXTyR5REF+XA/DJegqaowr8+sI/5TnUcq+Aew9xN8GhcBC/ccTTFrcwpkzgqG4JUEm9GgebVy6K9Tr4tXVzrb282DIXNFVKOv17JKEMly75BIf6I2fMY4v75OTxw/8abPVs6fqg3gpflQPvmzk3a5p30FtjpJJfbBvWolf5cjV8eQRTet6xgDI6iD84KBpf5LBQB5VZC4rdjgbTl6du3228z7jVFhOvGZas8GNJLsRltp5dQs8JmfGVrivjMd5CFsg6IFZlIT8VxUk6xN+uh3opSoRoMDu2EzwUYFG/IEK07KLq0IPL/TkJOedASwCiNloI3bn5copsWKbVvJVVnFLOTRs0NyzgncLgakaNTCP5wvOgyz92; 4:ZKmpoLyQdjfBTvlNqNR8HrfwSbCBlsorukO2/YmW8lLsyE05/Qiz6zs4GRk9GH+GMps3UPngoyObnKqGiL2pn4UNTpW2rQ43Rt2u0EWN1xtcsQRRcgJR6D43rmyBdlQE8VkENLqWyqPzP5hPLciC6400F8gdMZ58HBFvKYr1T6vvc1JLHmFnVm21spHP7kIQiiFFb8EGmEfhe8qRN/iIfV4plMD6pkJUHf/jm5G3aubh6QwhmdY861D750MzgQzIVAEJUVvDHqZr2FbGhZ+7eduOSdqE7C15Kz/gPS564vBE6TCpOgGrFVPTlVs2BP++ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231023)(944501138)(10201501046)(3002001)(6055026)(6041268)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(6072148)(201708071742011); SRVR:SG2PR0601MB1888; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SG2PR0601MB1888; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(366004)(39380400002)(396003)(376002)(346002)(199004)(189003)(4326008)(316002)(83506002)(305945005)(7736002)(47776003)(53416004)(478600001)(81156014)(86362001)(68736007)(81166006)(106356001)(8676002)(50466002)(105586002)(7696005)(76176011)(59450400001)(386003)(8936002)(66066001)(97736004)(52116002)(69596002)(25786009)(6916009)(2950100002)(5660300001)(2906002)(16586007)(23726003)(36756003)(6486002)(54906003)(53936002)(3846002)(6116002)(58126008)(16526018)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR0601MB1888; 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; SG2PR0601MB1888; 23:3MvCQFe70s5oBFRt7ja0PX6087AgAPYJGev7xyJ?= =?us-ascii?Q?rhOJejah27zySuRynVkgBwCJtcgqWwiym9tqd02AOLl0rG10ZaHvopWEA99H?= =?us-ascii?Q?oAf2w3FfVEz7F4TArMyJNdP6YqSXBH2ILCDWfR5TxRZZuXyvtqiUgrW4WXxJ?= =?us-ascii?Q?vPEPqto3T7v9uSwh6hh6JtcAOJ+mO1t+u/J9cf2c3HSjyyu5AUdaYhtrv8X7?= =?us-ascii?Q?fB22yDdxDzqLDJY2SWq3bMT5vQmsfPWj4i5lp8OoViJhTps8p66AQ8UZmMCa?= =?us-ascii?Q?loORFv4OreT+bYRZ1zCd6htBuC8HrzlyHhsNoC/E/bQmpJm/A78ijRzMW3IF?= =?us-ascii?Q?bnBv19x/zdnwpT4vExyZejgIZwYX/fCoQ8JI+sxyEgy+hV1UcmBJYVvYli+8?= =?us-ascii?Q?xUl6YSea/vDu2rtvk87V3KaIH+2sUP6vJ7/rwitU01c5ENFVv3kgbfbEY4MC?= =?us-ascii?Q?3x7KFZZGTpKWhQyo0Tp5Iy11JvbvfL53GC4FrYsdtxTrhuDAE93ryV6N+n1p?= =?us-ascii?Q?AFvpcy9YtY3Jc3YaAxG4A9lsaL9soh/VMZXjLI+2iq2dWgJMHfyASwxuB64g?= =?us-ascii?Q?Cd93AuUDTHQ/mDtvaQZq/M8pbS3P/cZheubbkzov0QGZCs14ndWvXYPWNTsP?= =?us-ascii?Q?yYg95+tamwR2DpvyQlxz523Rj9bQVH3jym2icF4VKtk8E4u38FrzdT2pTdQG?= =?us-ascii?Q?O5p2/gdbqJnjRC4EMxH2QLNiOwt4T8wKZPJLQMRGKQv77Go75KJ+lzVnv2O6?= =?us-ascii?Q?zr13//9PpAd8xZydqBhMdQAE9TSX1B3NKBvuvjxzTIVpl1pQTDh4ThysMqsK?= =?us-ascii?Q?BA9NAIe2I9QB+LeDyw3r8lxIgDr2noDLN92lL5oRJhUEIzjbnfMhGPrm2bb0?= =?us-ascii?Q?/3VwrpZjsh9/IIxjWFm4be0YziP8z+hV3syzYqf3UK8OQhN4mVEXsx71+s00?= =?us-ascii?Q?ilFYw0AKhyniHOJLWv129wsqWnJSbNxSfPMoep7+vBwADz3eM6uePdHve7eL?= =?us-ascii?Q?fCNIqcxauw/AkXj/WyH12QyhOqGZh1167MM24XqsklUks24ASlHH3b/6oJmQ?= =?us-ascii?Q?HIjlPIa+3P0s/xIi5YMTamLQuJ7FX+hBN83r5ms5e+Mo9rTsEp+YyNjc7Dk2?= =?us-ascii?Q?4tKLwJQLT6/ha+bhsFSh5I4n4XCsfp9BlcBcXkxMQ7uQ6irPsuR87QQ=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1888; 6:V67Wxh4l9ky9308BR544c+ECHPwBgv6MPE2CS4B2cuaRczXnsODTwZZ+kN0P3zt1i7siaJodZBBj9UBLlpxH9188RGMgoKBsBBzX8D/M5ZSQb+E2Fd5hTH1Uq2whd0ZTUL+nT4IjrUUtwVq8CXFK4SE3NIK9LF7O5xJ4xJLnrhcvCrruDemZwx1zTYMF3BCvAvgB57Ej4z1Hn7Rfp+IFHGiDLDQoK5pjjpUavPwqNAGaJQN+YQ70yd6zMAop+9NWc0I0+wFXkPXpKmqvomb0rj7RaroyWV2RGAErps+0cSp5kC9Cfic1iZU1YpLqgmbvoHhWi7vzs3j0nLvXI6ASfXwhNdIHEKf3euHgdm5smP4=; 5:VaXr5Dldow9D3GcL7UwHA3KL5Ahl33ADZmifWrdGgGKD+AZKGADUcyxBMzIrDbd5UAwjWYh4RkqMCAKbsUwInRQ+IXiXD0p4fHPbdow2KpsifF55NVL6f2O2ZTb5FRU/FbAEKMu3RU6mzA919zjFK3UhTCT201Do5/DH6zGz76M=; 24:bb1dq72JQfTsmiSVOXRRejAkuW58Nr791yNuMgX2VRvpw395xqWfm//div+WZOIcjd4C2/l8ox3TkFQd/kkyn8vPxMspH7U1rTdWzjZ/5hg=; 7:w+VaZkpaQ4/Idrrb2CKscPaI13bsjr0XkP4KWm3OQnRTtqTacod1syhxC6/NwtYKDC3dCuBI4mV+oNDeCLNQWkCs5fY/nPYqw40+pwOMzFovliIvUqwv+qQv0ObUiXFCWexNnQ/paWKZeVDrfsd0XYj7awIQWAA1ItK3L505jxOsNslSADZKQCBoNSBfTKyWE/tSrJ10ejtuaaN0wBlF3UGXVCkC03wj1c8iDVCgtIqYwW1waUvZi8CW2Cw+0fzg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1888; 20:r5GA5IYM+9rXDbJZjmA7jjFy5nG3FMTOkhtQUUW44Et3J9mQnIzi6gQYR8U6HnxTwWZywTJ30qJQwamBIH0fC2/JFyYBl6b05HdV72CvFBTwYR+1h+ASKuQIIJS9tSCU93tQpv1M31bodu85ck2N+VbLmEmX5adGzXUT0GoGUQ4= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 01:24:02.7917 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6e53d0da-86dc-4399-755c-08d5595b2a79 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR0601MB1888 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 054/187] ASoC: ak4671: 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/ak4671.c | 67 ++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/sound/soc/codecs/ak4671.c b/sound/soc/codecs/ak4671.c index dcfdff5..d29bd03 100644 --- a/sound/soc/codecs/ak4671.c +++ b/sound/soc/codecs/ak4671.c @@ -163,15 +163,15 @@ static int ak4671_out2_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); switch (event) { case SND_SOC_DAPM_POST_PMU: - snd_soc_update_bits(codec, AK4671_LOUT2_POWER_MANAGERMENT, + snd_soc_component_update_bits(component, AK4671_LOUT2_POWER_MANAGERMENT, AK4671_MUTEN, AK4671_MUTEN); break; case SND_SOC_DAPM_PRE_PMD: - snd_soc_update_bits(codec, AK4671_LOUT2_POWER_MANAGERMENT, + snd_soc_component_update_bits(component, AK4671_LOUT2_POWER_MANAGERMENT, AK4671_MUTEN, 0); break; } @@ -427,10 +427,10 @@ static int ak4671_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct snd_soc_dai *dai) { - struct snd_soc_codec *codec = dai->codec; + struct snd_soc_component *component = dai->component; u8 fs; - fs = snd_soc_read(codec, AK4671_PLL_MODE_SELECT0); + fs = snd_soc_component_read32(component, AK4671_PLL_MODE_SELECT0); fs &= ~AK4671_FS; switch (params_rate(params)) { @@ -465,7 +465,7 @@ static int ak4671_hw_params(struct snd_pcm_substream *substream, return -EINVAL; } - snd_soc_write(codec, AK4671_PLL_MODE_SELECT0, fs); + snd_soc_component_write(component, AK4671_PLL_MODE_SELECT0, fs); return 0; } @@ -473,10 +473,10 @@ static int ak4671_hw_params(struct snd_pcm_substream *substream, static int ak4671_set_dai_sysclk(struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir) { - struct snd_soc_codec *codec = dai->codec; + struct snd_soc_component *component = dai->component; u8 pll; - pll = snd_soc_read(codec, AK4671_PLL_MODE_SELECT0); + pll = snd_soc_component_read32(component, AK4671_PLL_MODE_SELECT0); pll &= ~AK4671_PLL; switch (freq) { @@ -511,19 +511,19 @@ static int ak4671_set_dai_sysclk(struct snd_soc_dai *dai, int clk_id, return -EINVAL; } - snd_soc_write(codec, AK4671_PLL_MODE_SELECT0, pll); + snd_soc_component_write(component, AK4671_PLL_MODE_SELECT0, pll); return 0; } static int ak4671_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt) { - struct snd_soc_codec *codec = dai->codec; + struct snd_soc_component *component = dai->component; u8 mode; u8 format; /* set master/slave audio interface */ - mode = snd_soc_read(codec, AK4671_PLL_MODE_SELECT1); + mode = snd_soc_component_read32(component, AK4671_PLL_MODE_SELECT1); switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { case SND_SOC_DAIFMT_CBM_CFM: @@ -537,7 +537,7 @@ static int ak4671_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt) } /* interface format */ - format = snd_soc_read(codec, AK4671_FORMAT_SELECT); + format = snd_soc_component_read32(component, AK4671_FORMAT_SELECT); format &= ~AK4671_DIF; switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { @@ -557,24 +557,24 @@ static int ak4671_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt) } /* set mode and format */ - snd_soc_write(codec, AK4671_PLL_MODE_SELECT1, mode); - snd_soc_write(codec, AK4671_FORMAT_SELECT, format); + snd_soc_component_write(component, AK4671_PLL_MODE_SELECT1, mode); + snd_soc_component_write(component, AK4671_FORMAT_SELECT, format); return 0; } -static int ak4671_set_bias_level(struct snd_soc_codec *codec, +static int ak4671_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { switch (level) { case SND_SOC_BIAS_ON: case SND_SOC_BIAS_PREPARE: case SND_SOC_BIAS_STANDBY: - snd_soc_update_bits(codec, AK4671_AD_DA_POWER_MANAGEMENT, + snd_soc_component_update_bits(component, AK4671_AD_DA_POWER_MANAGEMENT, AK4671_PMVCM, AK4671_PMVCM); break; case SND_SOC_BIAS_OFF: - snd_soc_write(codec, AK4671_AD_DA_POWER_MANAGEMENT, 0x00); + snd_soc_component_write(component, AK4671_AD_DA_POWER_MANAGEMENT, 0x00); break; } return 0; @@ -610,16 +610,18 @@ static int ak4671_set_bias_level(struct snd_soc_codec *codec, .ops = &ak4671_dai_ops, }; -static const struct snd_soc_codec_driver soc_codec_dev_ak4671 = { - .set_bias_level = ak4671_set_bias_level, - .component_driver = { - .controls = ak4671_snd_controls, - .num_controls = ARRAY_SIZE(ak4671_snd_controls), - .dapm_widgets = ak4671_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(ak4671_dapm_widgets), - .dapm_routes = ak4671_intercon, - .num_dapm_routes = ARRAY_SIZE(ak4671_intercon), - }, +static const struct snd_soc_component_driver soc_component_dev_ak4671 = { + .set_bias_level = ak4671_set_bias_level, + .controls = ak4671_snd_controls, + .num_controls = ARRAY_SIZE(ak4671_snd_controls), + .dapm_widgets = ak4671_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(ak4671_dapm_widgets), + .dapm_routes = ak4671_intercon, + .num_dapm_routes = ARRAY_SIZE(ak4671_intercon), + .idle_bias_on = 1, + .pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static const struct regmap_config ak4671_regmap = { @@ -645,17 +647,11 @@ static int ak4671_i2c_probe(struct i2c_client *client, return ret; } - ret = snd_soc_register_codec(&client->dev, - &soc_codec_dev_ak4671, &ak4671_dai, 1); + ret = devm_snd_soc_register_component(&client->dev, + &soc_component_dev_ak4671, &ak4671_dai, 1); return ret; } -static int ak4671_i2c_remove(struct i2c_client *client) -{ - snd_soc_unregister_codec(&client->dev); - return 0; -} - static const struct i2c_device_id ak4671_i2c_id[] = { { "ak4671", 0 }, { } @@ -667,7 +663,6 @@ static int ak4671_i2c_remove(struct i2c_client *client) .name = "ak4671-codec", }, .probe = ak4671_i2c_probe, - .remove = ak4671_i2c_remove, .id_table = ak4671_i2c_id, };