From patchwork Mon Jan 29 03:45:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10188995 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 B7A9060388 for ; Mon, 29 Jan 2018 04:24:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A1BDB286D2 for ; Mon, 29 Jan 2018 04:24:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 960852876D; Mon, 29 Jan 2018 04:24:32 +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 352D5286D2 for ; Mon, 29 Jan 2018 04:24:31 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id BA2B02676FE; Mon, 29 Jan 2018 05:23:45 +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 1FD7F2676BC; Mon, 29 Jan 2018 05:23:41 +0100 (CET) Received: from relmlie3.idc.renesas.com (relmlor4.renesas.com [210.160.252.174]) by alsa0.perex.cz (Postfix) with ESMTP id 5A05826770C for ; Mon, 29 Jan 2018 04:45:11 +0100 (CET) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie3.idc.renesas.com with ESMTP; 29 Jan 2018 12:45:10 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id C0C236F717; Mon, 29 Jan 2018 12:45:10 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,429,1511794800"; d="scan'208";a="269591627" Received: from mail-sg2apc01lp0240.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.240]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 29 Jan 2018 12:45:09 +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=TgSbbMQFqFA84sbD51GW7ot2aVjBEAUkOhIs7EOksXY=; b=FI97V7J8GFjm8mg06LPiuZii608HmgfIPjEVXGt9bl/rvm75kaS2GqWmSMu9aRuQZ5LoDAJpLUf3BdjT/BW+p63WNPAe0LYfDnFYQiiajMLdxOHrgjiiSIStpq2UccEQj4zPmYiTvxw6a9/ZANq5Uql2MPcUIEBefPEdJ+idE+4= Received: from morimoto-PC.renesas.com (211.11.155.138) by KL1PR0601MB1877.apcprd06.prod.outlook.com (2603:1096:802:7::22) 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 03:45:07 +0000 Message-ID: <87zi4x1g9g.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 03:45:07 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: OS2PR01CA0065.jpnprd01.prod.outlook.com (2603:1096:600:2::25) To KL1PR0601MB1877.apcprd06.prod.outlook.com (2603:1096:802:7::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 87028ecd-869e-4ec2-7295-08d566cab0f8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:KL1PR0601MB1877; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 3:FIM4d6Sj5/jpv/hgPinooQseEvUMMZ9fYEAGl1WSoTASUicPNKoTfIMnFs3IqRgsJ3ti/GfiOXv1hkuWqVx5lfzczxqf4EeV/EOflz+5Qqjn5n1QWgWCzDdChOefUCukAo5CB37T2q5NhU/K+V8adVkxlttiktKRtatksBDou/XR+yqO6z9LWXF4xJoB26u1dp8CsgOcU/31hZNhxP6R6AFyQsF0RImiNk+pbKg/2ho6B7MDYayIu4UmJI+5fqZ3; 25:g7kH9DCOE4Hs1hZZ/Quc+gDFY/qMnuibK8pBgxNy444nVo0UZO3C0lOvZ9JbPAbYSWDckr69kY1hPim45sJ2x6vPqAbN0qN7L1x3Z/D5j/VqKZjve+bFYt7A5taE9ysJpeAYfYQ/bCvwa8h+xmywcGFVm6RRm9YUIcekhDVyUbZRRwacBYb2829peNQWwbj/T0x8QrdPbwzs6kjslGLPzTDUpLR2KmCKs3ogEpeaEgWK3M+La7NL8mYn+369FiUceU2Z9S/C05zzq1ubN5Plzo4rJpCjE7/HcvLE+gHmAOrAumDg9yQoHxhb9OH95mvuFJNeWBo9mncAVaxlkNdw4A==; 31:+XH0Vh1wj/n51IL7qjRqiqcBO/LiH+gPDkiu8Jb8MedVUdv1n7y/v3QiWYraJ00SYRwAO/J2wz9D33txeBq4RgvGJXCQQpEx+JXBBUOTjFCeaCzMEGl5SgyVgAHT9RWZVg5xpbluCwnnCCu+K4MIDwbD1lgwO9A4m+snUPkODNJA76dSSCxRWjn3ppA2bMu+3zileUC123pvem0PbtE/gD40dM9a2yF1KnuDneM4RG4= X-MS-TrafficTypeDiagnostic: KL1PR0601MB1877: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 20:rCvGQ5fkQdkhWRZE6rQMvsYmKGabNya90OrIc7YQW4mtG1f6ohx7TG7mu6PX3V1I2KA7jqy+XBgQzumPZjNEXJIUTlPgCuB0RY6APIsWSRjyKoL6dHSPXjyp+fpyEdNf+v0kl3nvMjH1R1kFBxpYY+Th0Ab84mtkfUtSoFI2KZnhhXgK33+cg7O44z2sN57THFvVP8Ao/7o1/1SXJlU5o3g63uw67ckvj/x4+ODRpLN9Oh/LAv4PPYTmQSj+QYtNdbwJO2lyMoFEqe/09YbC8sk9T+6cU0iOYLTMh4H2ibM605IwpkLZF2wTh2j6DfK64T1nvznpsM7EtddrylXtC/Pay5tEx4C5K6YehdEGwJbB0klexNvJUwurhk8KLpRDn/d1870Ufxm9FsNBW5FqXBQKUDwtS8lRK2smkr/i2XVlUQDcuRt+AOg2P3haEimfTvSWxQZ+x1xgyUS+gZXOorzyn7LI0rX7CRf0Ii9DV4jKk9X3IN6pafjscPccz6Ks; 4:sQvB43zPkQeNQcuZYX/iiMIGe0eeWfDCT7arD5mlzlfKsTMpuMHZqFYPw2oLOS6Wth4YunrTu5vMihJN3Mci6IEnfjNauqM9HJ7DaKSvPFl7/6veBj3tDB7Yk2kMLpzLQE6BnJGZ+9UGCTCTPWqToq+HwgXYQZv6zVzwDf5zt2d52Af/NqDGBAaHgklLDKhl7XjUr5A9VOIorCzIUAiFRH1VlapI1bCG1RPaoqPFIulzzga3hf69sE8Uw3t7KDWUEQCUybkQBhNei9x8ywlmgdHKZ4Kr9fXXWyUUeT1IGr4y94lrMMJBcRnpWQPjmenG 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)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:KL1PR0601MB1877; BCL:0; PCL:0; RULEID:; SRVR:KL1PR0601MB1877; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(346002)(376002)(39380400002)(39860400002)(396003)(189003)(199004)(47776003)(26005)(8676002)(68736007)(386003)(76176011)(59450400001)(5660300001)(66066001)(83506002)(7736002)(305945005)(16586007)(2950100002)(16526019)(575784001)(316002)(58126008)(81156014)(186003)(69596002)(8936002)(6916009)(7696005)(52116002)(81166006)(50466002)(86362001)(4326008)(105586002)(25786009)(23726003)(478600001)(6486002)(3846002)(6116002)(106356001)(97736004)(2906002)(53936002)(36756003)(53416004)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:KL1PR0601MB1877; 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; KL1PR0601MB1877; 23:nAiO92XKiRrbBfX7vG7H8d5cj0WMhb5M7vgdM80?= =?us-ascii?Q?EE/US2rMJHa4Rw3P35OIqvSzF1pvkH/z/SPuy9AbiH0YFCUmfdH13mPhE+OZ?= =?us-ascii?Q?fqfuEphkz85+/RXp+o161Ruhav4lBQ3SS3rk78YogvQ0NUdTqPBF7JyB6yPf?= =?us-ascii?Q?VKrZT2FtdGKw/kvQ/AwXnwVDZwyfbOYOPRZAj1gdv3TabBKKA5NcuHw7dRiz?= =?us-ascii?Q?I+qK2Zwv+zelLSCbmXITCYkHDZFHiFnGLRT6fLrcdM4uqJquvUCy3TJKk+oH?= =?us-ascii?Q?//woYBi18njNVPy49ajSH4Fvt/0PrEjhAvNL+7JiZwR4Xiu1QHL8j4uJStJr?= =?us-ascii?Q?AGCEQyjtLN3ixGdiu9CwGB27VUJSgzrMy7nRqSpvQA3mxx5Nt+pns+EH/7C2?= =?us-ascii?Q?R80VGuNQAIs6PROUFSV3/YlNEc1mXBl4DA7KZzkrC0SkPY9sCD4HZ30y3KF3?= =?us-ascii?Q?UlnaQWuuTPbAX9vfE2yhBfEcRNdsE1q2RJ+8PvCYZoSe8W5X0vMfW7FIqJbd?= =?us-ascii?Q?oT67yKwYkJd28ykaZPBItLuBSbyD4Ttd4F57YO1sSEHwvLYbIoOfrj+Oi15z?= =?us-ascii?Q?EsSzejeNI7Jw+sfruUMfJPUMKkXieBJ49LsVPNwm5QhPxmFbOMB9ZFH1YS+u?= =?us-ascii?Q?XaeZKSn2RPJnV8GZuo0k+5E43uwOSrG1/itLh55Li4trfKPKZI45guP/oPCD?= =?us-ascii?Q?wgte7lior71bb0BRsyjedPY8yECVlnEjKaav4N9v8x6m167qNL64Rkxx4Ten?= =?us-ascii?Q?PiW4GwVVWpnJmTWu1wYNcUAj413wYrDKUVQqyNZTQlPaMey4MCfBcjPli27w?= =?us-ascii?Q?DOCeryqTgni8tjdDgELLzUNB/TyZx8n8YrUkWjZLrW1yzYnbDOgaCKgwrxSA?= =?us-ascii?Q?1gJVypDP+tRba8WtWTSrhOAYoKULdMCrP0hAX1j1zyj2qVPtWVT85J/4Vl7P?= =?us-ascii?Q?WFFHMw4jB5FCiBt0GsJeWpfUhN9ma0U4OEUuV/0fQTDMtyS134oPbhrPv8y9?= =?us-ascii?Q?M7LGYu8p6NfQlyDkuoqbYx6cl6w7ktDc7jugkJOrcvXZ8gCTKOjomjMeyQME?= =?us-ascii?Q?2FO5HYBVueVp9AaAGw/K4lIEplxWKDFSPtGEZw+Wd5t1fKa18ln7p+sL+wEm?= =?us-ascii?Q?C+O7nkzb+wjEnx10FllIObc7hzVpoSQ5FGcP0mYR1Rm8vZVJ/SXzXVfSy2PN?= =?us-ascii?Q?WztmmSAhmtHciHAzr2pNAToTW7cQfbuTjTUBV?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 6:PFm9KWfUNumdzPgrahYdUbVhxXWxdTlLxLYUVVdIhrb2EM6+9WI3tUJR+zIF6BxyNZxB03U5IHkJRYyNP1BrcorHdklO/G2JfGI+WLFb5/cmc7w6podty8W9wBG0K5KcHnMwmq8wrllxl0Uz6eiRzoViZ542ahoRlsSpJvYXqIqG8VP+hn5ueq2igXq81xKDSmSD2uaSFu08foiH+Hwq364zFDLGd8fR3YJTYqFKlbaUYcSJEN9li1i8ki4RnM/FNik3W5vlY4wg+izaOEJfnFQAPSZnvFaMQxWJ2uc2BMcrC8j25shppPszW/1zCmFUZhiEAcw7cxcB3cPWqIQdaRUiQuud2HA5s/tP5s/JUKI=; 5:6XIOasmJPgCFzyiBjCDJEDy02a1EuVd109wN52RL/Ll5dgivDl55Iy5p8nH6SIvxCRv4fkBfRSgnDXG9Ihs4RStp4S6V8qE+e7Foco6kWiZSgt7TaEQA65P0CdDuuDiSUQ/OUeFeQ5gc8mHHhS1eZCfSeZNvm9bYTE18iB0FR2M=; 24:Cx8JUFc+50Z9j94ggB6a3gquINFUW9rLtkANuwAP9SmvBq3vRRAjoXT2i9kj3KHE/dg4/f0IeGjdY0dn+uJmLESJ5uOG6OschDuBLuHRE0E=; 7:/IRF2/zmBN/IRY6PL40oz3jEjSbe5ePzwPNNfI5wI0g6LtJdp4WVygYsDdZnKpY4rjYwM9hDq91vIcFYOalUacBD20+ERka9JPUAneCE8FUAHQEXYzNDPI1q6vvsPIZ0ibmBJTo1X8qFVadcvd76M2vVjoax5cGN6fgqFbvyxaE77gGnfqwFPp7cGCZiiYC6MHm3gXbRoIvaYd1piu7fx7QeQuciP11QufVCn9GIpuEr+p7CrKI1fu4G7uBiWEjx SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 20:SwNRbSLDJQKNCHUW8b23uFhVylRxJ63glNoGUsLkLfL98umc+JKS43zmUH1MVY6p0WjTwmZWAGxB14coauJtSsJe0YfqR2b27COqAzt2cLYZSBBfH8M3JxQMjGn/dH1uSxsFVQqf2aMNa1rqHyjQ9GvdvM97t78q1ZJa1B0FUGg= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 03:45:07.7073 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 87028ecd-869e-4ec2-7295-08d566cab0f8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB1877 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH v2 063/186] ASoC: rt5514: 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 = 1 -> .idle_bias_on = 0 .ignore_pmdown_time = 0 -> .use_pmdown_time = 1 - -> .endianness = 1 - -> .non_legacy_dai_naming = 1 Signed-off-by: Kuninori Morimoto --- sound/soc/codecs/rt5514-spi.c | 4 +- sound/soc/codecs/rt5514.c | 124 ++++++++++++++++++++---------------------- sound/soc/codecs/rt5514.h | 2 +- 3 files changed, 61 insertions(+), 69 deletions(-) diff --git a/sound/soc/codecs/rt5514-spi.c b/sound/soc/codecs/rt5514-spi.c index 84184d9..18686ff 100644 --- a/sound/soc/codecs/rt5514-spi.c +++ b/sound/soc/codecs/rt5514-spi.c @@ -470,9 +470,9 @@ static int __maybe_unused rt5514_suspend(struct device *dev) static int __maybe_unused rt5514_resume(struct device *dev) { - struct snd_soc_platform *platform = snd_soc_lookup_platform(dev); + struct snd_soc_component *component = snd_soc_lookup_component(dev, DRV_NAME); struct rt5514_dsp *rt5514_dsp = - snd_soc_platform_get_drvdata(platform); + snd_soc_component_get_drvdata(component); int irq = to_spi_device(dev)->irq; u8 buf[8]; diff --git a/sound/soc/codecs/rt5514.c b/sound/soc/codecs/rt5514.c index 198df01..2d79571 100644 --- a/sound/soc/codecs/rt5514.c +++ b/sound/soc/codecs/rt5514.c @@ -327,14 +327,13 @@ static int rt5514_dsp_voice_wake_up_put(struct snd_kcontrol *kcontrol, { struct snd_soc_component *component = snd_kcontrol_chip(kcontrol); struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); - struct snd_soc_codec *codec = rt5514->codec; const struct firmware *fw = NULL; u8 buf[8]; if (ucontrol->value.integer.value[0] == rt5514->dsp_enabled) return 0; - if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { + if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF) { rt5514->dsp_enabled = ucontrol->value.integer.value[0]; if (rt5514->dsp_enabled) { @@ -342,11 +341,11 @@ static int rt5514_dsp_voice_wake_up_put(struct snd_kcontrol *kcontrol, !IS_ERR(rt5514->dsp_calib_clk)) { if (clk_set_rate(rt5514->dsp_calib_clk, rt5514->pdata.dsp_calib_clk_rate)) - dev_err(codec->dev, + dev_err(component->dev, "Can't set rate for mclk"); if (clk_prepare_enable(rt5514->dsp_calib_clk)) - dev_err(codec->dev, + dev_err(component->dev, "Can't enable dsp_calib_clk"); rt5514_calibration(rt5514, true); @@ -357,7 +356,7 @@ static int rt5514_dsp_voice_wake_up_put(struct snd_kcontrol *kcontrol, RT5514_DSP_MAPPING, (u8 *)&buf, sizeof(buf)); #else - dev_err(codec->dev, "There is no SPI driver for" + dev_err(component->dev, "There is no SPI driver for" " loading the firmware\n"); #endif rt5514->pll3_cal_value = buf[0] | buf[1] << 8 | @@ -369,26 +368,26 @@ static int rt5514_dsp_voice_wake_up_put(struct snd_kcontrol *kcontrol, rt5514_enable_dsp_prepare(rt5514); - request_firmware(&fw, RT5514_FIRMWARE1, codec->dev); + request_firmware(&fw, RT5514_FIRMWARE1, component->dev); if (fw) { #if IS_ENABLED(CONFIG_SND_SOC_RT5514_SPI) rt5514_spi_burst_write(0x4ff60000, fw->data, ((fw->size/8)+1)*8); #else - dev_err(codec->dev, "There is no SPI driver for" + dev_err(component->dev, "There is no SPI driver for" " loading the firmware\n"); #endif release_firmware(fw); fw = NULL; } - request_firmware(&fw, RT5514_FIRMWARE2, codec->dev); + request_firmware(&fw, RT5514_FIRMWARE2, component->dev); if (fw) { #if IS_ENABLED(CONFIG_SND_SOC_RT5514_SPI) rt5514_spi_burst_write(0x4ffc0000, fw->data, ((fw->size/8)+1)*8); #else - dev_err(codec->dev, "There is no SPI driver for" + dev_err(component->dev, "There is no SPI driver for" " loading the firmware\n"); #endif release_firmware(fw); @@ -492,7 +491,7 @@ static SOC_ENUM_SINGLE_DECL( * Choose divider parameter that gives the highest possible DMIC frequency in * 1MHz - 3MHz range. */ -static int rt5514_calc_dmic_clk(struct snd_soc_codec *codec, int rate) +static int rt5514_calc_dmic_clk(struct snd_soc_component *component, int rate) { int div[] = {2, 3, 4, 8, 12, 16, 24, 32}; int i; @@ -508,20 +507,20 @@ static int rt5514_calc_dmic_clk(struct snd_soc_codec *codec, int rate) return i; } - dev_warn(codec->dev, "Base clock rate %d is too high\n", rate); + dev_warn(component->dev, "Base clock rate %d is too high\n", rate); return -EINVAL; } static int rt5514_set_dmic_clk(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 rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); int idx; - idx = rt5514_calc_dmic_clk(codec, rt5514->sysclk); + idx = rt5514_calc_dmic_clk(component, rt5514->sysclk); if (idx < 0) - dev_err(codec->dev, "Failed to set DMIC clock\n"); + dev_err(component->dev, "Failed to set DMIC clock\n"); else regmap_update_bits(rt5514->regmap, RT5514_CLK_CTRL1, RT5514_CLK_DMIC_OUT_SEL_MASK, @@ -536,8 +535,8 @@ static int rt5514_set_dmic_clk(struct snd_soc_dapm_widget *w, static int rt5514_is_sys_clk_from_pll(struct snd_soc_dapm_widget *source, struct snd_soc_dapm_widget *sink) { - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm); + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); if (rt5514->sysclk_src == RT5514_SCLK_S_PLL1) return 1; @@ -548,8 +547,8 @@ static int rt5514_is_sys_clk_from_pll(struct snd_soc_dapm_widget *source, static int rt5514_i2s_use_asrc(struct snd_soc_dapm_widget *source, struct snd_soc_dapm_widget *sink) { - struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm); + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); return (rt5514->sysclk > rt5514->lrck * 384); } @@ -751,21 +750,21 @@ static int rt5514_i2s_use_asrc(struct snd_soc_dapm_widget *source, static int rt5514_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 rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); int pre_div, bclk_ms, frame_size; unsigned int val_len = 0; rt5514->lrck = params_rate(params); pre_div = rl6231_get_clk_info(rt5514->sysclk, rt5514->lrck); if (pre_div < 0) { - dev_err(codec->dev, "Unsupported clock setting\n"); + dev_err(component->dev, "Unsupported clock setting\n"); return -EINVAL; } frame_size = snd_soc_params_to_frame_size(params); if (frame_size < 0) { - dev_err(codec->dev, "Unsupported frame size: %d\n", frame_size); + dev_err(component->dev, "Unsupported frame size: %d\n", frame_size); return -EINVAL; } @@ -808,8 +807,8 @@ static int rt5514_hw_params(struct snd_pcm_substream *substream, static int rt5514_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt) { - struct snd_soc_codec *codec = dai->codec; - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); unsigned int reg_val = 0; switch (fmt & SND_SOC_DAIFMT_INV_MASK) { @@ -862,8 +861,8 @@ static int rt5514_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt) static int rt5514_set_dai_sysclk(struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir) { - struct snd_soc_codec *codec = dai->codec; - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); unsigned int reg_val = 0; if (freq == rt5514->sysclk && clk_id == rt5514->sysclk_src) @@ -879,7 +878,7 @@ static int rt5514_set_dai_sysclk(struct snd_soc_dai *dai, break; default: - dev_err(codec->dev, "Invalid clock id (%d)\n", clk_id); + dev_err(component->dev, "Invalid clock id (%d)\n", clk_id); return -EINVAL; } @@ -897,13 +896,13 @@ static int rt5514_set_dai_sysclk(struct snd_soc_dai *dai, static int rt5514_set_dai_pll(struct snd_soc_dai *dai, int pll_id, int source, unsigned int freq_in, unsigned int freq_out) { - struct snd_soc_codec *codec = dai->codec; - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); struct rl6231_pll_code pll_code; int ret; if (!freq_in || !freq_out) { - dev_dbg(codec->dev, "PLL disabled\n"); + dev_dbg(component->dev, "PLL disabled\n"); rt5514->pll_in = 0; rt5514->pll_out = 0; @@ -930,17 +929,17 @@ static int rt5514_set_dai_pll(struct snd_soc_dai *dai, int pll_id, int source, break; default: - dev_err(codec->dev, "Unknown PLL source %d\n", source); + dev_err(component->dev, "Unknown PLL source %d\n", source); return -EINVAL; } ret = rl6231_pll_calc(freq_in, freq_out, &pll_code); if (ret < 0) { - dev_err(codec->dev, "Unsupport input clock %d\n", freq_in); + dev_err(component->dev, "Unsupport input clock %d\n", freq_in); return ret; } - dev_dbg(codec->dev, "bypass=%d m=%d n=%d k=%d\n", + dev_dbg(component->dev, "bypass=%d m=%d n=%d k=%d\n", pll_code.m_bp, (pll_code.m_bp ? 0 : pll_code.m_code), pll_code.n_code, pll_code.k_code); @@ -961,8 +960,8 @@ static int rt5514_set_dai_pll(struct snd_soc_dai *dai, int pll_id, int source, static int rt5514_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width) { - struct snd_soc_codec *codec = dai->codec; - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); unsigned int val = 0, val2 = 0; if (rx_mask || tx_mask) @@ -1047,10 +1046,10 @@ static int rt5514_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask, return 0; } -static int rt5514_set_bias_level(struct snd_soc_codec *codec, +static int rt5514_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); int ret; switch (level) { @@ -1058,7 +1057,7 @@ static int rt5514_set_bias_level(struct snd_soc_codec *codec, if (IS_ERR(rt5514->mclk)) break; - if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_ON) { + if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) { clk_disable_unprepare(rt5514->mclk); } else { ret = clk_prepare_enable(rt5514->mclk); @@ -1068,7 +1067,7 @@ static int rt5514_set_bias_level(struct snd_soc_codec *codec, 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) { /* * If the DSP is enabled in start of recording, the DSP * should be disabled, and sync back to normal recording @@ -1092,13 +1091,13 @@ static int rt5514_set_bias_level(struct snd_soc_codec *codec, return 0; } -static int rt5514_probe(struct snd_soc_codec *codec) +static int rt5514_probe(struct snd_soc_component *component) { - struct rt5514_priv *rt5514 = snd_soc_codec_get_drvdata(codec); - struct platform_device *pdev = container_of(codec->dev, + struct rt5514_priv *rt5514 = snd_soc_component_get_drvdata(component); + struct platform_device *pdev = container_of(component->dev, struct platform_device, dev); - rt5514->mclk = devm_clk_get(codec->dev, "mclk"); + rt5514->mclk = devm_clk_get(component->dev, "mclk"); if (PTR_ERR(rt5514->mclk) == -EPROBE_DEFER) return -EPROBE_DEFER; @@ -1109,7 +1108,7 @@ static int rt5514_probe(struct snd_soc_codec *codec) return -EPROBE_DEFER; } - rt5514->codec = codec; + rt5514->component = component; rt5514->pll3_cal_value = 0x0078b000; return 0; @@ -1162,18 +1161,18 @@ static int rt5514_i2c_write(void *context, unsigned int reg, unsigned int val) } }; -static const struct snd_soc_codec_driver soc_codec_dev_rt5514 = { - .probe = rt5514_probe, - .idle_bias_off = true, - .set_bias_level = rt5514_set_bias_level, - .component_driver = { - .controls = rt5514_snd_controls, - .num_controls = ARRAY_SIZE(rt5514_snd_controls), - .dapm_widgets = rt5514_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(rt5514_dapm_widgets), - .dapm_routes = rt5514_dapm_routes, - .num_dapm_routes = ARRAY_SIZE(rt5514_dapm_routes), - }, +static const struct snd_soc_component_driver soc_component_dev_rt5514 = { + .probe = rt5514_probe, + .set_bias_level = rt5514_set_bias_level, + .controls = rt5514_snd_controls, + .num_controls = ARRAY_SIZE(rt5514_snd_controls), + .dapm_widgets = rt5514_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(rt5514_dapm_widgets), + .dapm_routes = rt5514_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(rt5514_dapm_routes), + .use_pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static const struct regmap_config rt5514_i2c_regmap = { @@ -1313,17 +1312,11 @@ static int rt5514_i2c_probe(struct i2c_client *i2c, if (ret != 0) dev_warn(&i2c->dev, "Failed to apply regmap patch: %d\n", ret); - return snd_soc_register_codec(&i2c->dev, &soc_codec_dev_rt5514, + return devm_snd_soc_register_component(&i2c->dev, + &soc_component_dev_rt5514, rt5514_dai, ARRAY_SIZE(rt5514_dai)); } -static int rt5514_i2c_remove(struct i2c_client *i2c) -{ - snd_soc_unregister_codec(&i2c->dev); - - return 0; -} - static const struct dev_pm_ops rt5514_i2_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(NULL, rt5514_i2c_resume) }; @@ -1336,7 +1329,6 @@ static int rt5514_i2c_remove(struct i2c_client *i2c) .pm = &rt5514_i2_pm_ops, }, .probe = rt5514_i2c_probe, - .remove = rt5514_i2c_remove, .id_table = rt5514_i2c_id, }; module_i2c_driver(rt5514_i2c_driver); diff --git a/sound/soc/codecs/rt5514.h b/sound/soc/codecs/rt5514.h index f0f3400..d1ef0b3 100644 --- a/sound/soc/codecs/rt5514.h +++ b/sound/soc/codecs/rt5514.h @@ -272,7 +272,7 @@ enum { struct rt5514_priv { struct rt5514_platform_data pdata; - struct snd_soc_codec *codec; + struct snd_soc_component *component; struct regmap *i2c_regmap, *regmap; struct clk *mclk, *dsp_calib_clk; int sysclk;