From patchwork Mon Jan 29 04:44:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10189241 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 452EF60388 for ; Mon, 29 Jan 2018 05:06:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3368C2876C for ; Mon, 29 Jan 2018 05:06:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2479128786; Mon, 29 Jan 2018 05:06:58 +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 B275D2876C for ; Mon, 29 Jan 2018 05:06:56 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 6CA1D268066; Mon, 29 Jan 2018 06:05:26 +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 C421A268420; Mon, 29 Jan 2018 06:05:24 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id D4AAD267E02 for ; Mon, 29 Jan 2018 05:44:40 +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:44:39 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 6DE08774FA; Mon, 29 Jan 2018 13:44:39 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,429,1511794800"; d="scan'208";a="269598324" Received: from mail-sg2apc01lp0239.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.239]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 29 Jan 2018 13:44:38 +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=aBhMWMNwDW1HzSIg43EbDRIjJcJPH0V3SHlwTRrynOo=; b=KIUv9ssXflyViaNjqUaCsXHOphTiFABILSjaTG7KQ/wuXDjKUJftUDc2vOo0eh4lMsyhBtk9sDxkJckOUfocIpUnui8w35ucnxe0CalaFqwi9sRXhvTEVe41nemlyBVl2B2gbnlr/hchwUZN0wyRA3aW+e4W2GhI0a24CGI+2Pk= Received: from morimoto-PC.renesas.com (211.11.155.138) by PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) 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:44:35 +0000 Message-ID: <87bmhduvfo.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:44:35 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: OS2PR0101CA0012.jpnprd01.prod.outlook.com (2603:1096:600:3::22) To PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: bc2dd807-c879-4970-ed08-08d566d2ffa4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:PS1PR0601MB1881; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 3:SOjLRMOxIk6NdRWoiySb1y5tn7kSgCJQPodTdsWVuWt82pIZZL9PN1N+7Nl5jZgIjZ20MvIZ2vCFwZ1jGaXyrnfvdu+RvVWoD+ARlDE/88NyOJVHZUlxGGCHCPQu3/1erwHrq2xtCEIbSTRdcBWFR6/XHIQkf9aCjhZgRo640dbLGhslIBNALS6AgT2DzxtVp+z/LadogdiNp9lZ5xscy7+BLs7hepjA3f2o2s6e2XldUXoM+JOiXEBOAiE4D2gc; 25:W/VpmMlGLQkp6WLLetKOtXokYL7jE8dhaZhcd+ecd3PVbFBPi/SF+AHSCUbvYaigiDvKW74ntJNhIUUg+dJP2PAImZnyyt1gXtYD6JQFFkqqX9KucPZO2I4HADnKGZpWdk30upBzUN/gQqNg4u0jHjhzsMJepAFrP0tMltisxsVGascDycqwZac0ZIXQRvjN+A8dJ3G1hl1+qMP/TRR+W0f8cfFF9SjYJmKpFxm2V9oFcAwB02Wj1WHjEicpVTVtgM1f+Sb2A+c33IEeq4PeDQTjJPg1xOklo6O2oTDw6iH7JTkPBBG4avahy2wlrN8YqVm2asy1/MgegKZu8WxCWg==; 31:6bbRegQoGR1g2+6rfXCC/6LR0ZO3h3iTpS1Re3XkXujIEHoGvPlp7QtNYmQu/kVbIXQ7rltt6gvuB4uslN+vA6Fhxmy+TDrPUP4gYcexkS752egrKI3dckn5J1mGxiH3MdqcqJ4ZuBD7Ev/EFE4qKyhMOiTiSERLCCduwZp5u0hkGOrae838XvQLEY3mF082J0WpDlyZSzGZ6SGlABpEFQsXRd2Rbtfsv2KehMTmurw= X-MS-TrafficTypeDiagnostic: PS1PR0601MB1881: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:aWq+6yPL3J2hmnM1lOsrIGI28Pjgj8Ir1Tc5wT/fQ6Yd3JOeSIlDUArP1sYLC0d+NtxNub0gLUHnsJv4Ixtk7WzksVuuV6ecCgyUEPYlb4reyAmqRioK6dpb5+5mOZW4juwbCn1ZXXwQHdCCQDS3i+8Z+3VYpSXlJDoVQdKngEEbIItT2rFVUCFRbg6Su3dNk/m/0Elz8slkKWOEvSYpL53DxmvAZo8k3zS58syyeO8whq7JR/t6C5foDyOOmy/NyktCxAZupyydeAbdKpaHGKYZlSqSbgAzEcwZ0mKTEAtALYsagoGcnuu50SoLFT9bep9gRrKDz4kBLym/lrJFndRihfQLFWIZHxjNjpMEaRDXpa07E7gnjIzdIic3mA+Oqwb97hoS/uCeazB8BaZ2tN3ovVOOBzx/QkvZcwXxXuig4q5ORbdJj5iggSvuzeHR9eaGqf2wLorue12jbngfbNEQbttvn6KLcsFDQ1Ar7+NAYnzr07hmq6dkSUDUeqCx; 4:snMesq6CFG7h0V0yutWZjt2pjg0haMDpfPz79xOUndyzQrwGZBwQ0CfduHO4aghyZ0wkL7eykQT4ehDffepsdjNzxSmesnTtToVgESmUCgadGQldbXwK5ibI8LBnS4H0hTqUES0k4k8wLjVRyX14VR/PKSrz5AukHw6m06zbdRuObO52el87z7jciHTOFafNuRpCEWzRiqTEf5AIwR7G+Vhv0Zp8ftPRv9coaPci5d/YpiuAzrytvhofxdxp1bERtRFg5H8hd4vKLg8W4E7PBfcQZ5mVC2l6gjs6uXGaW2L49NSuEhRXjkGkSYlrFKuE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231101)(944501161)(10201501046)(3002001)(6055026)(6041288)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:PS1PR0601MB1881; BCL:0; PCL:0; RULEID:; SRVR:PS1PR0601MB1881; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(366004)(396003)(39860400002)(376002)(39380400002)(189003)(199004)(6116002)(50466002)(6916009)(6486002)(53416004)(47776003)(25786009)(305945005)(2950100002)(7736002)(386003)(52116002)(2906002)(7696005)(59450400001)(86362001)(3846002)(16526019)(68736007)(4326008)(23726003)(186003)(26005)(83506002)(106356001)(8676002)(81166006)(81156014)(16586007)(8936002)(58126008)(105586002)(69596002)(66066001)(36756003)(53936002)(76176011)(316002)(478600001)(5660300001)(97736004)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR0601MB1881; 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; PS1PR0601MB1881; 23:GFXv2AAHpsaB6UtWJ/cFMzpggJUwxE85ZdFp6UV?= =?us-ascii?Q?XMsbWg7NZ6oCfg+hmEdogk4DKHJom67yq+41RvYxMkOmdqfAIGRMbddKEM5d?= =?us-ascii?Q?4qNBjv8yFVKhbuITLrQu1bsKlYvoFN7Bo1vMLVp3P2cnW02d6M4s2xTVCdDI?= =?us-ascii?Q?x6v6QIEo9HzOrnWvIwXJnhjj2KXhnvCmW5iM2mfg07gO+QcRZm+xbPPyl+zT?= =?us-ascii?Q?2haj0UCdk2rsV6n1PUnMec69KhNwKusbK63SBQtKVFTumYJmX3VKZvMtPCkc?= =?us-ascii?Q?DSjcAlRyFZXNQ3AGvzzg4jTfQhRHCY0Nwpb9evqoZc89FDqsRE1wPlUd5DyR?= =?us-ascii?Q?Ov3VHgqAcEv6y94IlklR38mozU4qaihB3vO2Cs6ZYMlDSwRU93ePymIiPQde?= =?us-ascii?Q?N7Q01t94dZERsFJiaGBUKfva8roqivZsIq9H5w94Co4CnD9d4z9DHhm3VOmR?= =?us-ascii?Q?sfpP1B5BW9P1C/8s98/x+tbR+limvo87HbmYilOgnK41pS0M1N+XMv/Iufsa?= =?us-ascii?Q?1QJsD08XchegMrJW1KRcC5F3d8OVxbArZ70crOcNhbsMXN5cKoJnv2ycAUIx?= =?us-ascii?Q?lWumZ5MUcsVpBMqwiqGRzdHaFz88Qd5KnTVS4agdunC757f4Bsc+nbjYTWZ5?= =?us-ascii?Q?aXo/XxvLwZxD4jR/X5IeXIFd2HlFXlzcOT1wfGwHbfByvlJmKapy3AwNBzBJ?= =?us-ascii?Q?Fe3XRelO6MBUCI0r6U2lnLuqnIJDymGmYGVUXhe2n1YdxyeLiJYp0NhVM2a7?= =?us-ascii?Q?9hW2il/yuzzwufZhc4TwUyT4O6ZF/nzpyzgm2tljSUmOykjzt2k+jBIYYLAJ?= =?us-ascii?Q?os5NjmMxXS49mVTHiR2FizNTmYYlq8NtC+cg68v5EHHAxdL9x8t45Nh0uXcH?= =?us-ascii?Q?71QI+zqFwZQwZ14Vqam0vjsMFJVBRZ1Sm+rGyoXoYbxU3qhKkNwmnLOZX3nG?= =?us-ascii?Q?a/LE+W2vlqMKGGGNTJqA9ge0AH0GCfXNlN+KCVE32Q/ML06TEaMroaFH+Q0r?= =?us-ascii?Q?vA0rJsjyXMlDIne/ujizfncg7jvWOwSKFtzl3cFR6gcno6NI8tXDbCJnL7FO?= =?us-ascii?Q?8aHouYfHAz9hHcyMFmR9idrFmMnhFK5ADv3s4VyD6O+2aQ/yryxyMTv4F73Y?= =?us-ascii?Q?kPzdkLOalAq0eV3fLDNTW0g9QQYu/+RCiqM17heLAtFAoRHRsWeAGjspuFdA?= =?us-ascii?Q?X24FwHknA9jNNovU=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 6:lW3h/zBgRH1zdW+CUUaW6FXBENiSKltUU+ZEZiBT6oMPa1hkaedn5DtqANliiOKLITPwxQKFU2fYZIE1um9tWQNR3r5hU3rRtvByxZM5juqrrv1EFgtcI1pbHU1SCP4+3FIFTCENdAcyR7U0msSD9zFLDcca9WDMgPc3jDtQ3LJ4HzUDs1ZWTgdx4fCM/dv1MHDIsu22qQDnqBdhg5X7vzubhADLqERvxQ14IKgFsV4zHPX8iHFsjVcXgimccuVtID4rFP3rsnYe6s9I+E+3t5xKaAC/wfKBtFJjmwO0Tdrbeg72mWaU69kN71OJJn5FkB/XYBMfBCsY1x5UOAggrIqeTBjQjZYrLhnEu5/+DCY=; 5:DorBZ8DTYltBsfVuw2ynaxpSu+fFY056zfyAG95YkfEol1ibgLrzdQsz+3BzravfqmH5s0Z4nMOCqRRJaE4dU+FOKjFo/tznCyxEX1EqmyAaUxP9Hrx6VKk1gwazrCNtWZLFaBtZM0b7NGI9pY+uXIy5uPTVitRVa/JyJGpU3oQ=; 24:r2lvbgna2P5ImigedZ9YuEFkVjgLPy9/Owun/5p+cccvfVzqbtcJj8sRhlIWGaD8nSKgkXlFvlFutzqY8J+tahfqvrm3Vb4yKYBu9HmyJ4Y=; 7:3AH6YV5BBgVE2OHD6E3AqyifX08bRiRHV6p4+6L40dDG1E9bTp88YnpJi5Ew0icSLPz7iP757OXTMwB1Qv9i+7e5r6CKiD6Xz5YNFVbiOVOLIBi2jozeurq9SQSnORbcJQ+LgXZccjuCAelYLx2KiAC1OGhnvko67gKhC/lDb5+UV8+qPXIcRckl01EMrOmY2aqRF48CHPWO7OdyxzY9cz4JKOAsw3nnUr7VQLK11F9lAFzwFQu7PHw56LUrmqQg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:ENdffn/dQ7bxNGi9ES/vBRN3vkJpSLVmw5+N+dWWIYQNeItqvJlS7W0mCHlycIHUpVGbwKP2yEU2ly5jiIvmOovxr84FUOCzK7ARv9N5gn+43M15MUcyGDSMk/bfHjbkm6OPwyzcP4RByn2/MjK5nzLsmikgDhDSovLF0jmfxio= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 04:44:35.8144 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bc2dd807-c879-4970-ed08-08d566d2ffa4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1881 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH v2 179/186] ASoC: ml26124: 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/ml26124.c | 103 +++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 54 deletions(-) diff --git a/sound/soc/codecs/ml26124.c b/sound/soc/codecs/ml26124.c index 5cc960d..a5fa490 100644 --- a/sound/soc/codecs/ml26124.c +++ b/sound/soc/codecs/ml26124.c @@ -338,8 +338,8 @@ static int ml26124_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *hw_params, struct snd_soc_dai *dai) { - struct snd_soc_codec *codec = dai->codec; - struct ml26124_priv *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct ml26124_priv *priv = snd_soc_component_get_drvdata(component); int i = get_coeff(priv->mclk, params_rate(hw_params)); int srate; @@ -351,23 +351,23 @@ static int ml26124_hw_params(struct snd_pcm_substream *substream, if (priv->clk_in) { switch (priv->mclk / params_rate(hw_params)) { case 256: - snd_soc_update_bits(codec, ML26124_CLK_CTL, + snd_soc_component_update_bits(component, ML26124_CLK_CTL, BIT(0) | BIT(1), 1); break; case 512: - snd_soc_update_bits(codec, ML26124_CLK_CTL, + snd_soc_component_update_bits(component, ML26124_CLK_CTL, BIT(0) | BIT(1), 2); break; case 1024: - snd_soc_update_bits(codec, ML26124_CLK_CTL, + snd_soc_component_update_bits(component, ML26124_CLK_CTL, BIT(0) | BIT(1), 3); break; default: - dev_err(codec->dev, "Unsupported MCLKI\n"); + dev_err(component->dev, "Unsupported MCLKI\n"); break; } } else { - snd_soc_update_bits(codec, ML26124_CLK_CTL, + snd_soc_component_update_bits(component, ML26124_CLK_CTL, BIT(0) | BIT(1), 0); } @@ -375,35 +375,35 @@ static int ml26124_hw_params(struct snd_pcm_substream *substream, if (srate < 0) return srate; - snd_soc_update_bits(codec, ML26124_SMPLING_RATE, 0xf, srate); - snd_soc_update_bits(codec, ML26124_PLLNL, 0xff, coeff_div[i].pllnl); - snd_soc_update_bits(codec, ML26124_PLLNH, 0x1, coeff_div[i].pllnh); - snd_soc_update_bits(codec, ML26124_PLLML, 0xff, coeff_div[i].pllml); - snd_soc_update_bits(codec, ML26124_PLLMH, 0x3f, coeff_div[i].pllmh); - snd_soc_update_bits(codec, ML26124_PLLDIV, 0x1f, coeff_div[i].plldiv); + snd_soc_component_update_bits(component, ML26124_SMPLING_RATE, 0xf, srate); + snd_soc_component_update_bits(component, ML26124_PLLNL, 0xff, coeff_div[i].pllnl); + snd_soc_component_update_bits(component, ML26124_PLLNH, 0x1, coeff_div[i].pllnh); + snd_soc_component_update_bits(component, ML26124_PLLML, 0xff, coeff_div[i].pllml); + snd_soc_component_update_bits(component, ML26124_PLLMH, 0x3f, coeff_div[i].pllmh); + snd_soc_component_update_bits(component, ML26124_PLLDIV, 0x1f, coeff_div[i].plldiv); return 0; } static int ml26124_mute(struct snd_soc_dai *dai, int mute) { - struct snd_soc_codec *codec = dai->codec; - struct ml26124_priv *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct ml26124_priv *priv = snd_soc_component_get_drvdata(component); switch (priv->substream->stream) { case SNDRV_PCM_STREAM_CAPTURE: - snd_soc_update_bits(codec, ML26124_REC_PLYBAK_RUN, BIT(0), 1); + snd_soc_component_update_bits(component, ML26124_REC_PLYBAK_RUN, BIT(0), 1); break; case SNDRV_PCM_STREAM_PLAYBACK: - snd_soc_update_bits(codec, ML26124_REC_PLYBAK_RUN, BIT(1), 2); + snd_soc_component_update_bits(component, ML26124_REC_PLYBAK_RUN, BIT(1), 2); break; } if (mute) - snd_soc_update_bits(codec, ML26124_DVOL_CTL, BIT(4), + snd_soc_component_update_bits(component, ML26124_DVOL_CTL, BIT(4), DVOL_CTL_DVMUTE_ON); else - snd_soc_update_bits(codec, ML26124_DVOL_CTL, BIT(4), + snd_soc_component_update_bits(component, ML26124_DVOL_CTL, BIT(4), DVOL_CTL_DVMUTE_OFF); return 0; @@ -413,7 +413,7 @@ static int ml26124_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) { unsigned char mode; - struct snd_soc_codec *codec = codec_dai->codec; + struct snd_soc_component *component = codec_dai->component; /* set master/slave audio interface */ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { @@ -426,7 +426,7 @@ static int ml26124_set_dai_fmt(struct snd_soc_dai *codec_dai, default: return -EINVAL; } - snd_soc_update_bits(codec, ML26124_SAI_MODE_SEL, BIT(0), mode); + snd_soc_component_update_bits(component, ML26124_SAI_MODE_SEL, BIT(0), mode); /* interface format */ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { @@ -450,8 +450,8 @@ static int ml26124_set_dai_fmt(struct snd_soc_dai *codec_dai, static int ml26124_set_dai_sysclk(struct snd_soc_dai *codec_dai, int clk_id, unsigned int freq, int dir) { - struct snd_soc_codec *codec = codec_dai->codec; - struct ml26124_priv *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = codec_dai->component; + struct ml26124_priv *priv = snd_soc_component_get_drvdata(component); switch (clk_id) { case ML26124_USE_PLLOUT: @@ -469,17 +469,17 @@ static int ml26124_set_dai_sysclk(struct snd_soc_dai *codec_dai, return 0; } -static int ml26124_set_bias_level(struct snd_soc_codec *codec, +static int ml26124_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { - struct ml26124_priv *priv = snd_soc_codec_get_drvdata(codec); + struct ml26124_priv *priv = snd_soc_component_get_drvdata(component); switch (level) { case SND_SOC_BIAS_ON: - snd_soc_update_bits(codec, ML26124_PW_SPAMP_PW_MNG, + snd_soc_component_update_bits(component, ML26124_PW_SPAMP_PW_MNG, ML26124_R26_MASK, ML26124_BLT_PREAMP_ON); msleep(100); - snd_soc_update_bits(codec, ML26124_PW_SPAMP_PW_MNG, + snd_soc_component_update_bits(component, ML26124_PW_SPAMP_PW_MNG, ML26124_R26_MASK, ML26124_MICBEN_ON | ML26124_BLT_ALL_ON); break; @@ -487,8 +487,8 @@ static int ml26124_set_bias_level(struct snd_soc_codec *codec, break; case SND_SOC_BIAS_STANDBY: /* VMID ON */ - if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { - snd_soc_update_bits(codec, ML26124_PW_REF_PW_MNG, + if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) { + snd_soc_component_update_bits(component, ML26124_PW_REF_PW_MNG, ML26124_VMID, ML26124_VMID); msleep(500); regcache_sync(priv->regmap); @@ -496,7 +496,7 @@ static int ml26124_set_bias_level(struct snd_soc_codec *codec, break; case SND_SOC_BIAS_OFF: /* VMID OFF */ - snd_soc_update_bits(codec, ML26124_PW_REF_PW_MNG, + snd_soc_component_update_bits(component, ML26124_PW_REF_PW_MNG, ML26124_VMID, 0); break; } @@ -528,27 +528,29 @@ static int ml26124_set_bias_level(struct snd_soc_codec *codec, .symmetric_rates = 1, }; -static int ml26124_probe(struct snd_soc_codec *codec) +static int ml26124_probe(struct snd_soc_component *component) { /* Software Reset */ - snd_soc_update_bits(codec, ML26124_SW_RST, 0x01, 1); - snd_soc_update_bits(codec, ML26124_SW_RST, 0x01, 0); + snd_soc_component_update_bits(component, ML26124_SW_RST, 0x01, 1); + snd_soc_component_update_bits(component, ML26124_SW_RST, 0x01, 0); return 0; } -static const struct snd_soc_codec_driver soc_codec_dev_ml26124 = { - .probe = ml26124_probe, - .set_bias_level = ml26124_set_bias_level, - .suspend_bias_off = true, - .component_driver = { - .controls = ml26124_snd_controls, - .num_controls = ARRAY_SIZE(ml26124_snd_controls), - .dapm_widgets = ml26124_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(ml26124_dapm_widgets), - .dapm_routes = ml26124_intercon, - .num_dapm_routes = ARRAY_SIZE(ml26124_intercon), - }, +static const struct snd_soc_component_driver soc_component_dev_ml26124 = { + .probe = ml26124_probe, + .set_bias_level = ml26124_set_bias_level, + .controls = ml26124_snd_controls, + .num_controls = ARRAY_SIZE(ml26124_snd_controls), + .dapm_widgets = ml26124_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(ml26124_dapm_widgets), + .dapm_routes = ml26124_intercon, + .num_dapm_routes = ARRAY_SIZE(ml26124_intercon), + .suspend_bias_off = 1, + .idle_bias_on = 1, + .use_pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static const struct regmap_config ml26124_i2c_regmap = { @@ -580,14 +582,8 @@ static int ml26124_i2c_probe(struct i2c_client *i2c, return ret; } - return snd_soc_register_codec(&i2c->dev, - &soc_codec_dev_ml26124, &ml26124_dai, 1); -} - -static int ml26124_i2c_remove(struct i2c_client *client) -{ - snd_soc_unregister_codec(&client->dev); - return 0; + return devm_snd_soc_register_component(&i2c->dev, + &soc_component_dev_ml26124, &ml26124_dai, 1); } static const struct i2c_device_id ml26124_i2c_id[] = { @@ -601,7 +597,6 @@ static int ml26124_i2c_remove(struct i2c_client *client) .name = "ml26124", }, .probe = ml26124_i2c_probe, - .remove = ml26124_i2c_remove, .id_table = ml26124_i2c_id, };