From patchwork Fri Jan 12 01:30:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10159311 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 380B6601A1 for ; Fri, 12 Jan 2018 02:00:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D391128846 for ; Fri, 12 Jan 2018 02:00:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C3D952885C; Fri, 12 Jan 2018 02:00:31 +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 4656828841 for ; Fri, 12 Jan 2018 02:00:29 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 74211267DC9; Fri, 12 Jan 2018 03:00:27 +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 CB3D7267DCA; Fri, 12 Jan 2018 03:00:25 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id 32932267DC9 for ; Fri, 12 Jan 2018 02:30:56 +0100 (CET) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie1.idc.renesas.com with ESMTP; 12 Jan 2018 10:30:54 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id 9273E6A7E4; Fri, 12 Jan 2018 10:30:54 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,346,1511794800"; d="scan'208";a="268008825" Received: from mail-pu1apc01lp0023.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.23]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 12 Jan 2018 10:30:53 +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=cSJamvry4sBHZCLhn3aL1OHol5qUwqrH084NfvOBVSU=; b=RhNogFNHp0GTHYvU6V0y57gwI7xPbOoSEi7HTIVGKnte0GJpq1fpAwgpjlFe6itWw7zLp3bIl3DEsd2yY0axcqv6iO9bJW+a8T+AZONuZHiAdDH2PWQdIasu5TgnxKmmmN0t2aUVO1OFry6FecVXVX9039Op3G/CgZ5aLRjzZtM= Received: from morimoto-PC.renesas.com (211.11.155.138) by KL1PR0601MB1880.apcprd06.prod.outlook.com (2603:1096:802:8::16) 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:30:51 +0000 Message-ID: <877esnampl.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:30:51 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: KAWPR01CA0084.jpnprd01.prod.outlook.com (2603:1096:402:c::20) To KL1PR0601MB1880.apcprd06.prod.outlook.com (2603:1096:802:8::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cdb4445-db43-4962-a86f-08d5595c1e38 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020074)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020); SRVR:KL1PR0601MB1880; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 3:jj3xahuRDN77Ys+d6JJnlW+E8TAPCnPEbjndU6GrkclPDqc7uTk5i5XsRrPlg3qHgOp253LLTx/kWNbEANQGF8pYRj89FbtIXSZsepVorvuD1CgWxWuvZryRu1v+vE1BW42K5qzzhQ+CFUkCxth1uo+rQ3gLI8PfaxNK0jncEfCRDQYrpye0SuHSxET0lUm7PS8l6+LapK53+b9BC6PqXBku4DNTAL3zEJZIAcBKYUXi3Qf7gP6evKzDa2QJwYj3; 25:otVbSecBUINPPwL30YIQy7kO+K4rD7E1pP00+A299JSrHIbXasXIwtD4q1PffAwdpR5p4t/j26dEQ2mc73EtEYHU2dRmLNxERUS5+UeZz80FCFxxZXbks4z55E+5xc0kj04EsCeaqBnkZGJT62ErcY4MBGEZGFPBgYBb/Z1w6NVNa5rNYv7iPkczhFQc7mGNdOLK5KurcJBkxp0xUdPk6aVk4/ofoBcqaJLR7PTc51qDwgMT8zIaryn/u5aJ2hOoXg6Bwfz9hBg64rmkBvdk1GXAith+I3h1FAsP5cXDIFXrM0jq+xcuTsuyjZtRUVmZMUKLIqUfNwhYrc+tIBoL/A==; 31:cr5/sH4WfQJJ6DOoS1It79Wy0x8gOvwlL1WG2V710L4hdwUKDKyZ+JVlKQ3wzZgcX1/X4f1oXQ3uX5s2SG3U1PHvg3zclHiLOiB4MgBAPYWi5JzKA8wz1ekCDQXGgChb4z3lePX/yQ/9P5bJl8LlG90M0FHiKHNhIF5KwamPMColxubx0YlUIZ8c29hL3jJljZx6/xBmdZOhoLx98Z4geq1lC0A8zVnsYEJlA6grpc0= X-MS-TrafficTypeDiagnostic: KL1PR0601MB1880: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 20:zYPpC9dMoKtUeCeGK5BSCkVFPufRqRPN6Xi4kE9kyLI/5r63BlB0P35L9zcHV7Tie4bgjluVyH4WTJT8QxSiwIYgXEZoesio3tVzYUD8EXALyQPvaXlHZ7LyTtYaWfOqwp3d8EioIB/Jk0Q9QsDCx2unA8c2qKzD4gRH+6qtnTxmpHh0mFsulCLcZ72x5heG20m5nsBldJ5RCYkLTQKcLMucCJ+zf9Grz09g488hb09xWmWR9DLCZgV7zoL+C6ijGH77vv3+R9kInKY1G+PdSMR1DHaPqOSHABCzlwmqnC9jKYXd10s3Zz3+Vvpv+HhQ5pgIUgXVU4cwzQEEhcO2SKpfrlQTlSnLe7cXBhYzISrvOo3bN09u9Rp7Ht8iUQaU+su69KlF7sJIYr8+tH6GQ5ZItm9lClpzsOC7g+WTvs6mHUzpq24Wg+jSZt5r89WhvHkCjTqx7tmbQEUFkOeW2IMjtt4i+ShY4maMPcCoDic37G7/E9niK2jeKfTd9+Kb; 4:d1R7SMVemfwis6TI3yNCHHn8ItHPQhjoXomaA2jj59ZLut7+/iOS1wFhJNw6UMkrcQctnJyKpvrpTK4t8+2RUiyzxfpMsfW9k+Y5VeFuYIIGIKaRmfSyLmW6RiH9hX41Lu1kVj0L7QZM4RqDpuC7ht69sd9FyhzIWTGxU3T0S01UdG+KYWx9+wO8R/jQMMHqyGne8MXlpWxMVdBiTBldo67FMXGgfMiGBAtczrroVn3wsBcGcqg9k7eCyJtytRZ3qkPPaqbJEa1A7o1lzNI5JHnR8QhBWH5nEFi4XPEu04NkPamfdo3jnt/KAbhUFJCy 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)(3002001)(10201501046)(3231023)(944501138)(93006095)(93001095)(6055026)(6041268)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(6072148)(201708071742011); SRVR:KL1PR0601MB1880; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:KL1PR0601MB1880; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(376002)(366004)(39860400002)(396003)(39380400002)(199004)(189003)(59450400001)(105586002)(16526018)(97736004)(386003)(58126008)(54906003)(50466002)(16586007)(575784001)(69596002)(316002)(7696005)(7736002)(86362001)(478600001)(305945005)(83506002)(2906002)(52116002)(68736007)(47776003)(81156014)(36756003)(23726003)(8936002)(5660300001)(106356001)(6116002)(81166006)(3846002)(53416004)(76176011)(66066001)(6486002)(4326008)(25786009)(6916009)(53936002)(2950100002)(8676002)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:KL1PR0601MB1880; 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; KL1PR0601MB1880; 23:9TxeW7O60Y/qwgdSMGUqykqWujjzYIYyLkyydZE?= =?us-ascii?Q?A1zAo8S/232q4xHjp2mu4E6jOAYudbymFSiykxhd6M82CO95n+lll006PXEb?= =?us-ascii?Q?zj1XW3+nrxPFfGNJrorXNcTGbH7yPwZadGgR3ucT6pjulDgXnOW1Ry11muV3?= =?us-ascii?Q?0S5BUkMDAbSUdUOzygoy8Pe+bYC81STzlSt3YVWV2/Xe6tCrk1T4NRmvQLdg?= =?us-ascii?Q?dl/75OIOuIS/UgFebu5VMJVwqzHS3Y4NMYc0U5HSbHxPqpDi3RDWtIoPByrT?= =?us-ascii?Q?223eD4NFjg7r02mhHx9a8AOh2RrFKsp5rYPc0H0mfTl0R3neEBuooTp8RUp7?= =?us-ascii?Q?YU9a/kMsVdlmEjikESjFOcxfqhoJAOarGcrEkbibabII7epVdwClVMCecY+W?= =?us-ascii?Q?Y6HH9Pss3b0i9eDuEAtZxU84qnmw7AcHW/NSLyBlenTzaS1ewVCC6ce7JvMM?= =?us-ascii?Q?Lv7NXllFnjrCS4ScGFZUndu/8SAWRfyOds7lJUA67CJBK1cwzKg1CcZA8vyu?= =?us-ascii?Q?cnan1UXScbvpvT43kpM3tcM4BaUtcW38TyQ3lfbaozYQonsQBssoJzcip/zJ?= =?us-ascii?Q?89ANaofJT7tKBH0WhHgX6SsTaHhuSJG19jC4iL/2p/ZL2YDZgEb+/lL3NXq9?= =?us-ascii?Q?UDO7/0T6RHxGmGPVUXfB5s0bWIFF/AUQ75HhbGHJws3O7r/RbtsM4M+xuXR2?= =?us-ascii?Q?rsxrV7LI3wt5ltvR6Scit9jZKbyqguaC3O/50xl2ldFWCHS3l/ATKaMcxpNp?= =?us-ascii?Q?oD/0E+IrDPz9j/iFhAeRnNqYw936s59FyO0pyTcVpLy8LdqWkRtfd1ovKUoM?= =?us-ascii?Q?NRb3KWxiMJrC6vcHPE5W9SiJ//80+v/DQsHwpNg5eQdj+k+2Jr0S+BAXdhlk?= =?us-ascii?Q?8igwd6uR2+4IIgFu6cnmiVthoKtOwKSzkL3UVrD8hZ4ghSIcgj3uWbtAOXjh?= =?us-ascii?Q?hI09r+uQ2F4JFbMPUmqET69TSOcvqgrbNoCG5Id4y2wz3OUqRs4deUKWCRZv?= =?us-ascii?Q?cZuPCLkI7FyLrwtxUYQje/Znw+aifHMUgnJoIxslVISqktbF0LjUqb9MJy0M?= =?us-ascii?Q?ue3QDGkiOZSwJDfMM0kb3ucetPTHywihr+HrS0MaY+R4zrwdanx7dxoPSj4Y?= =?us-ascii?Q?o35aB/0r8xe/GWUHxki013pHxZH9sGeoTpFfyGak9pHi+dZzsBq6C8R8eQ/i?= =?us-ascii?Q?fygtLoacwWYeU76L5S5hEiR3H3LR00jiD2g1g?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 6:rxJmewy7VNqnisUh8QQpg4580M+nCrnoXHiU5+yzibRXLQf/pp5k5uNVyDjSENE9G2WYiDqYIwPXWHiOopl6zGaB1LQOzgexJowjKayk7e8pVcIS/KNbGPDY4QeLmhxPqKBGvlH0jAGgG59/4zsUF7f9ACPtnAWbcD/GN2kffBem9osVnwzLT+bp6FpFvoXrlsCml5EnHn8E6M198fvQnq3EcOCRv3F4iIRn/xngRR9ljbWrmhWvNZPttWUjmj+y2tliIdxTkhKmYfEFzWoAPZIsjZm0JlVbMi+MCESwodUFQ0X/xLnEhhnmttNdc9bX/poxpc3RNRfULUfoIE18KBb6Mp5RRvYZJYiJixDd9e8=; 5:/PGzVwVQF9oTWXiZxqWmxQIOZq7vABd8jwnhWzlsHL6jBzBYhsk6aM3vGZmLb0IaiqySg5dNOqpE/N+hwaSYqbPIbCODivy/cAQ5rJFqokpbiPiZh1Bedu1haffGg+ys+cosIhRTwxQlsz+HsV8VMBBBizztSuPBTa40JkOteGo=; 24:qNs9y62n9LR9LvyNsTn+4DwkrPOT5zV0/GFmZ5TvNgvQ1SM/Lv5CrX8VzVgPYkGhBqmobxtYDREhGIgnmUGgk00pDakYNlwT/KUUPETEucM=; 7:Lm9hn/KkOKVJDo+xI3lw+zQdp9nrjfc4+T0XTIh5hja36L5c1o9Zac7gVJhiL79MKoElMfy8Q6mITt/8szrcQoVq/H/lIpBxEhkTHu8xMD98C3aZX5bdsGh9ZBWggyaXRlZQDs7bBrGqj24nf+0J6z6nZpMU4BLFuuWiDTrYl0vrIMQ1hLT4W5Uk8dM8hkAui6rKuY+OudCIPeJ9vrN9MPbI3tYhpQXj0gkTVVC4pIxktQacGPO6J9EGMj6UnSQr SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 20:FDoXNH0wwmLB6mugJDMje2NNJJX2l4snj3AaihwQDe4MA6FePOCYnNkpgHqjZ2xsaNG0ahigVkz0Ilan2v0mk1VpQ2kn6QkkFM2FMCtP+fpaYgSMn2XydrhkvRbEGYvbk/RO6M4bgJyDGMi8OZI4wQRbVZswQVs0Qu8KTcaaC/M= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 01:30:51.6998 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cdb4445-db43-4962-a86f-08d5595c1e38 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB1880 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 079/187] ASoC: cs42l73: 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/cs42l73.c | 122 +++++++++++++++++++++------------------------ 1 file changed, 58 insertions(+), 64 deletions(-) diff --git a/sound/soc/codecs/cs42l73.c b/sound/soc/codecs/cs42l73.c index dde37e5..5703a5f 100644 --- a/sound/soc/codecs/cs42l73.c +++ b/sound/soc/codecs/cs42l73.c @@ -490,8 +490,8 @@ static SOC_ENUM_SINGLE_DECL(xsp_output_mux_enum, static int cs42l73_spklo_spk_amp_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 cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); switch (event) { case SND_SOC_DAPM_POST_PMD: /* 150 ms delay between setting PDN and MCLKDIS */ @@ -506,8 +506,8 @@ static int cs42l73_spklo_spk_amp_event(struct snd_soc_dapm_widget *w, static int cs42l73_ear_amp_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 cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); switch (event) { case SND_SOC_DAPM_POST_PMD: /* 50 ms delay between setting PDN and MCLKDIS */ @@ -524,8 +524,8 @@ static int cs42l73_ear_amp_event(struct snd_soc_dapm_widget *w, static int cs42l73_hp_amp_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 cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); switch (event) { case SND_SOC_DAPM_POST_PMD: /* 30 ms delay between setting PDN and MCLKDIS */ @@ -884,8 +884,8 @@ static int cs42l73_get_mclk_coeff(int mclk, int srate) static int cs42l73_set_mclk(struct snd_soc_dai *dai, unsigned int freq) { - struct snd_soc_codec *codec = dai->codec; - struct cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); int mclkx_coeff; u32 mclk = 0; @@ -899,14 +899,14 @@ static int cs42l73_set_mclk(struct snd_soc_dai *dai, unsigned int freq) mclk = cs42l73_mclkx_coeffs[mclkx_coeff].mclkx / cs42l73_mclkx_coeffs[mclkx_coeff].ratio; - dev_dbg(codec->dev, "MCLK%u %u <-> internal MCLK %u\n", + dev_dbg(component->dev, "MCLK%u %u <-> internal MCLK %u\n", priv->mclksel + 1, cs42l73_mclkx_coeffs[mclkx_coeff].mclkx, mclk); dmmcc = (priv->mclksel << 4) | (cs42l73_mclkx_coeffs[mclkx_coeff].mclkdiv << 1); - snd_soc_write(codec, CS42L73_DMMCC, dmmcc); + snd_soc_component_write(component, CS42L73_DMMCC, dmmcc); priv->sysclk = mclkx_coeff; priv->mclk = mclk; @@ -917,8 +917,8 @@ static int cs42l73_set_mclk(struct snd_soc_dai *dai, unsigned int freq) static int cs42l73_set_sysclk(struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir) { - struct snd_soc_codec *codec = dai->codec; - struct cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); switch (clk_id) { case CS42L73_CLKID_MCLK1: @@ -930,7 +930,7 @@ static int cs42l73_set_sysclk(struct snd_soc_dai *dai, } if ((cs42l73_set_mclk(dai, freq)) < 0) { - dev_err(codec->dev, "Unable to set MCLK for dai %s\n", + dev_err(component->dev, "Unable to set MCLK for dai %s\n", dai->name); return -EINVAL; } @@ -942,14 +942,14 @@ static int cs42l73_set_sysclk(struct snd_soc_dai *dai, static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) { - struct snd_soc_codec *codec = codec_dai->codec; - struct cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = codec_dai->component; + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); u8 id = codec_dai->id; unsigned int inv, format; u8 spc, mmcc; - spc = snd_soc_read(codec, CS42L73_SPC(id)); - mmcc = snd_soc_read(codec, CS42L73_MMCC(id)); + spc = snd_soc_component_read32(component, CS42L73_SPC(id)); + mmcc = snd_soc_component_read32(component, CS42L73_MMCC(id)); switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { case SND_SOC_DAIFMT_CBM_CFM: @@ -974,12 +974,12 @@ static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) case SND_SOC_DAIFMT_DSP_A: case SND_SOC_DAIFMT_DSP_B: if (mmcc & CS42L73_MS_MASTER) { - dev_err(codec->dev, + dev_err(component->dev, "PCM format in slave mode only\n"); return -EINVAL; } if (id == CS42L73_ASP) { - dev_err(codec->dev, + dev_err(component->dev, "PCM format is not supported on ASP port\n"); return -EINVAL; } @@ -1029,7 +1029,7 @@ static unsigned int cs42l73_get_xspfs_coeff(u32 rate) return 0; /* 0 = Don't know */ } -static void cs42l73_update_asrc(struct snd_soc_codec *codec, int id, int srate) +static void cs42l73_update_asrc(struct snd_soc_component *component, int id, int srate) { u8 spfs = 0; @@ -1038,13 +1038,13 @@ static void cs42l73_update_asrc(struct snd_soc_codec *codec, int id, int srate) switch (id) { case CS42L73_XSP: - snd_soc_update_bits(codec, CS42L73_VXSPFS, 0x0f, spfs); + snd_soc_component_update_bits(component, CS42L73_VXSPFS, 0x0f, spfs); break; case CS42L73_ASP: - snd_soc_update_bits(codec, CS42L73_ASPC, 0x3c, spfs << 2); + snd_soc_component_update_bits(component, CS42L73_ASPC, 0x3c, spfs << 2); break; case CS42L73_VSP: - snd_soc_update_bits(codec, CS42L73_VXSPFS, 0xf0, spfs << 4); + snd_soc_component_update_bits(component, CS42L73_VXSPFS, 0xf0, spfs << 4); break; default: break; @@ -1055,8 +1055,8 @@ static int cs42l73_pcm_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 cs42l73_private *priv = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct cs42l73_private *priv = snd_soc_component_get_drvdata(component); int id = dai->id; int mclk_coeff; int srate = params_rate(params); @@ -1070,7 +1070,7 @@ static int cs42l73_pcm_hw_params(struct snd_pcm_substream *substream, if (mclk_coeff < 0) return -EINVAL; - dev_dbg(codec->dev, + dev_dbg(component->dev, "DAI[%d]: MCLK %u, srate %u, MMCC[5:0] = %x\n", id, priv->mclk, srate, cs42l73_mclk_coeffs[mclk_coeff].mmcc); @@ -1091,38 +1091,38 @@ static int cs42l73_pcm_hw_params(struct snd_pcm_substream *substream, /* Update ASRCs */ priv->config[id].srate = srate; - snd_soc_write(codec, CS42L73_SPC(id), priv->config[id].spc); - snd_soc_write(codec, CS42L73_MMCC(id), priv->config[id].mmcc); + snd_soc_component_write(component, CS42L73_SPC(id), priv->config[id].spc); + snd_soc_component_write(component, CS42L73_MMCC(id), priv->config[id].mmcc); - cs42l73_update_asrc(codec, id, srate); + cs42l73_update_asrc(component, id, srate); return 0; } -static int cs42l73_set_bias_level(struct snd_soc_codec *codec, +static int cs42l73_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { - struct cs42l73_private *cs42l73 = snd_soc_codec_get_drvdata(codec); + struct cs42l73_private *cs42l73 = snd_soc_component_get_drvdata(component); switch (level) { case SND_SOC_BIAS_ON: - snd_soc_update_bits(codec, CS42L73_DMMCC, CS42L73_MCLKDIS, 0); - snd_soc_update_bits(codec, CS42L73_PWRCTL1, CS42L73_PDN, 0); + snd_soc_component_update_bits(component, CS42L73_DMMCC, CS42L73_MCLKDIS, 0); + snd_soc_component_update_bits(component, CS42L73_PWRCTL1, CS42L73_PDN, 0); break; case SND_SOC_BIAS_PREPARE: break; case SND_SOC_BIAS_STANDBY: - if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { + if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) { regcache_cache_only(cs42l73->regmap, false); regcache_sync(cs42l73->regmap); } - snd_soc_update_bits(codec, CS42L73_PWRCTL1, CS42L73_PDN, 1); + snd_soc_component_update_bits(component, CS42L73_PWRCTL1, CS42L73_PDN, 1); break; case SND_SOC_BIAS_OFF: - snd_soc_update_bits(codec, CS42L73_PWRCTL1, CS42L73_PDN, 1); + snd_soc_component_update_bits(component, CS42L73_PWRCTL1, CS42L73_PDN, 1); if (cs42l73->shutdwn_delay > 0) { mdelay(cs42l73->shutdwn_delay); cs42l73->shutdwn_delay = 0; @@ -1131,7 +1131,7 @@ static int cs42l73_set_bias_level(struct snd_soc_codec *codec, * down. */ } - snd_soc_update_bits(codec, CS42L73_DMMCC, CS42L73_MCLKDIS, 1); + snd_soc_component_update_bits(component, CS42L73_DMMCC, CS42L73_MCLKDIS, 1); break; } return 0; @@ -1139,10 +1139,10 @@ static int cs42l73_set_bias_level(struct snd_soc_codec *codec, static int cs42l73_set_tristate(struct snd_soc_dai *dai, int tristate) { - struct snd_soc_codec *codec = dai->codec; + struct snd_soc_component *component = dai->component; int id = dai->id; - return snd_soc_update_bits(codec, CS42L73_SPC(id), CS42L73_SP_3ST, + return snd_soc_component_update_bits(component, CS42L73_SPC(id), CS42L73_SP_3ST, tristate << 7); } @@ -1235,13 +1235,13 @@ static int cs42l73_pcm_startup(struct snd_pcm_substream *substream, } }; -static int cs42l73_probe(struct snd_soc_codec *codec) +static int cs42l73_probe(struct snd_soc_component *component) { - struct cs42l73_private *cs42l73 = snd_soc_codec_get_drvdata(codec); + struct cs42l73_private *cs42l73 = snd_soc_component_get_drvdata(component); /* Set Charge Pump Frequency */ if (cs42l73->pdata.chgfreq) - snd_soc_update_bits(codec, CS42L73_CPFCHC, + snd_soc_component_update_bits(component, CS42L73_CPFCHC, CS42L73_CHARGEPUMP_MASK, cs42l73->pdata.chgfreq << 4); @@ -1252,19 +1252,20 @@ static int cs42l73_probe(struct snd_soc_codec *codec) return 0; } -static const struct snd_soc_codec_driver soc_codec_dev_cs42l73 = { - .probe = cs42l73_probe, - .set_bias_level = cs42l73_set_bias_level, - .suspend_bias_off = true, - - .component_driver = { - .controls = cs42l73_snd_controls, - .num_controls = ARRAY_SIZE(cs42l73_snd_controls), - .dapm_widgets = cs42l73_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(cs42l73_dapm_widgets), - .dapm_routes = cs42l73_audio_map, - .num_dapm_routes = ARRAY_SIZE(cs42l73_audio_map), - }, +static const struct snd_soc_component_driver soc_component_dev_cs42l73 = { + .probe = cs42l73_probe, + .set_bias_level = cs42l73_set_bias_level, + .controls = cs42l73_snd_controls, + .num_controls = ARRAY_SIZE(cs42l73_snd_controls), + .dapm_widgets = cs42l73_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(cs42l73_dapm_widgets), + .dapm_routes = cs42l73_audio_map, + .num_dapm_routes = ARRAY_SIZE(cs42l73_audio_map), + .suspend_bias_off = 1, + .idle_bias_on = 1, + .pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static const struct regmap_config cs42l73_regmap = { @@ -1361,20 +1362,14 @@ static int cs42l73_i2c_probe(struct i2c_client *i2c_client, dev_info(&i2c_client->dev, "Cirrus Logic CS42L73, Revision: %02X\n", reg & 0xFF); - ret = snd_soc_register_codec(&i2c_client->dev, - &soc_codec_dev_cs42l73, cs42l73_dai, + ret = devm_snd_soc_register_component(&i2c_client->dev, + &soc_component_dev_cs42l73, cs42l73_dai, ARRAY_SIZE(cs42l73_dai)); if (ret < 0) return ret; return 0; } -static int cs42l73_i2c_remove(struct i2c_client *client) -{ - snd_soc_unregister_codec(&client->dev); - return 0; -} - static const struct of_device_id cs42l73_of_match[] = { { .compatible = "cirrus,cs42l73", }, {}, @@ -1395,7 +1390,6 @@ static int cs42l73_i2c_remove(struct i2c_client *client) }, .id_table = cs42l73_id, .probe = cs42l73_i2c_probe, - .remove = cs42l73_i2c_remove, };