From patchwork Fri Jan 12 01:48:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10159463 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 B1418601A1 for ; Fri, 12 Jan 2018 02:45:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99AB1287B6 for ; Fri, 12 Jan 2018 02:45:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8CBB828975; Fri, 12 Jan 2018 02:45:29 +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 8006C287B6 for ; Fri, 12 Jan 2018 02:45:28 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 9AAB3268365; Fri, 12 Jan 2018 03:37:43 +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 1BC3226834A; Fri, 12 Jan 2018 03:37:39 +0100 (CET) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 209EA2680F7 for ; Fri, 12 Jan 2018 02:48:42 +0100 (CET) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie2.idc.renesas.com with ESMTP; 12 Jan 2018 10:48:41 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id B92526B967; Fri, 12 Jan 2018 10:48:40 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,346,1511794800"; d="scan'208";a="269312053" Received: from mail-sg2apc01lp0248.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.248]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 12 Jan 2018 10:48:40 +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=HOqKSDbQzXxHyHbJa6l/xx1Qu855817FIGcY5P+/vWs=; b=ctbbbZnAcSqwSMxVSeXT2dY5BuEOS+xoKd4f1AItUVTW3W3/2pCZnGYNJDgxb7lvSCuNFd4A1ZoUmr+mCNEa2deYAHVAciYJteNkCnpNPKCa05iB2vIohVwpMjdwel2DxAEoDQsSM0/cB9Ahur/6JDAljcKcyig5QTYlMURmvns= 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:48:37 +0000 Message-ID: <87po6f6e6m.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:48:37 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: TY1PR01CA0196.jpnprd01.prod.outlook.com (2603:1096:403::26) To KL1PR0601MB1880.apcprd06.prod.outlook.com (2603:1096:802:8::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 65a59c14-04b0-44f8-821d-08d5595e99b5 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:ksktnnQqrbrV9v+Yaj7Uzz9RMsL9WWSI/WOkesF16GFpwsJI6qjJV3EJFHb5YnnT9fonaJ0GIn7+fnTrVjkfuNkzYl77KHMr+SssAS54sEAouUuksyprP1mHKU5/nvjIV4EK/fmsmkcxZto+tOYT4jHRs50dS4heBwmm1FxRvglQIEL4ls2X+m2cTloelMXc4HFsJXOGzq+hjrA9IsSehpElQBuW5fPXHZFRD5lfsxC+iR4pGv+Q5p3AbJKZtg5a; 25:/tepzRBiTYayxTstpyCqRcve0e0NwX377Z+2rd0Y0gPxVQ6QKdW8VMVvYUP2z9zUuPYuFYEjB78cbxaOJrCmddtEumf9xW3YCAl/5yy90XqnMf1B/ZvmqZ44+pkESUcSP85QfHSd9GsqrKc+h21E+Chnewqa56tyM2aEp5zi/TVojRBYaKz6LcFIV4MU8n3b8r7f4GuM9lKf0E3VFtXsQ89dmi38ObaAs3dvFskma0UcTBrhZDZWI+chlytKMCoTXMUNEQp1pNji4U1Bz2BuHMNpZNzHx/uzYwngYr47O2CwEkCZDOrTXyF6ePkwpoxjtEoEWRSkXpiNSHbQAiS25w==; 31:4h7H12wdXESJ0SjzwdhnpBdvOMP62797FUV2lleYwSgFCItKkl44t3a2JJm/IkAJl7OZjYPvwxzA3qIY74nVV458Nbn7BXpLDr7syssH5aYw08xgHGwoVKo3ij6QBoYzOQiVCxvGD+0ILe6p2gIWdFhPBQwM5i6dVgxzWjyDO8UNJgCAB1lmxauK6+sBM/ulF23JtcbAs/5svaapGjkwfPLtbpsrfNpXsJE+2PmpgcU= 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:zm1OI2K7JL3e5+1ZpXKMpWqA943GtMa6K/UNJTvmoAgSIje6YnD/1/xiKKxGoxCMoFBMt1MZmUjTShHUsAMJEUMKb6TJoIKFx2gEQ7SkE0a6EmrWG123TVWsbcxFn7WqLeeGhSN8MgRc6ElLaglSUs6yfmo4Oh+/FtYFuAImik0GxMVKIHWzwhnA5un5RKUlLX23aQVJvG2oQ+INj2NqYJ8T4UTz2ccQ1rebjdkueHRRVPlznc8gcDfdT8PYrIZm8q5XHR7X4yiXS2grtR+AEAYgQ5P/DtdyBGVRWj7VGb60fFA55jBrRUQk6Zmi0LRUkBlN9UtvSQclwXeGCZCUX0gn7wJZjMej9zGOFeZyTUAt5gp8XSZ833ltjxJ/iMt7Kl/NVP1A05GvKVk6b6LdPEAvTGdSI03XMegNCeshBb/gAohAioqbgYiOS9iujM5Su1GnHKqYntR4wz+uYA8iMyOBP2niv78vqXSQqPcjNTLxnfBa4Uj8N5DCHplISlKD; 4:HBIGHUnNqHNjUKEt4epsEDZ9jfU7047I+aAT4ta18hyAuVvL5brbuuPosoN2NnlmsT7mJZJy4PMBM12g88rpbMDSqd8QITcjTK2Wq2Xo2VgBXz4UhtsIwNgZN1oZsdJ8kG7ZWNHvJOWeMLSTlV12h8CFrmcSh8hLtN9nMcJek8Jj2Ts54ixLoruVtT415GId5P5hRLNbJSe1Y/ad+2MTemAFH8uoPnuyo9VafjSlJ/GU5CM6xXVtXaYcfXBja1nuFH7kfJ35mOrLrOcxjDC5xXZ2WQTBhMSLN27DaC7cL5/hiV0E5v+XDZkkwOIokdxM 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)(93006095)(93001095)(3231023)(944501138)(10201501046)(3002001)(6055026)(6041268)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(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)(366004)(346002)(376002)(39860400002)(39380400002)(396003)(199004)(189003)(59450400001)(105586002)(16526018)(97736004)(386003)(58126008)(54906003)(50466002)(16586007)(69596002)(316002)(7696005)(7736002)(86362001)(478600001)(305945005)(83506002)(2906002)(52116002)(68736007)(47776003)(81156014)(36756003)(23726003)(8936002)(5660300001)(106356001)(6116002)(3846002)(81166006)(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:3z1zglmw90ncRphI28q8TrH3j1kBO30K1b3GmMN?= =?us-ascii?Q?JKc2Zs/gqlNmSi+JKPbJga4NHvCT13Eq278tFyC1vVBp5vAw53lp+lcvCeLw?= =?us-ascii?Q?ZxHzQLdqu37yGqR6dWSJeiOROx1LyMrcKm7rhPSBrewEU8wwJkdksJkjwXad?= =?us-ascii?Q?ReCz0bJnfkr5v97SULtIaJpwSCDzfCsJkjHyEtpMiDfBYXI5bM/TnQTueVEQ?= =?us-ascii?Q?xNFYi6EHoQsufxfBqBHtm+UqQ/UsTG/tb0x/mHcV5rZ4yWBu3rPi3cYCqxV9?= =?us-ascii?Q?JRtMqVp4QIG5VDvn7kHDrhXsuRl+dctXanEz7ZpQvxl02GOgpw1otN4mW5Jo?= =?us-ascii?Q?V59olrayYscEc3y41JfXMzW5Ll3emP0NJAKLIfKyatM1NpL6KLEpVd0onWvJ?= =?us-ascii?Q?bGhpQV//Tt3iD6dJlIkCl10dGHMeuDvgs7S4GWHwM4xoaA5GFcJudamjnqCm?= =?us-ascii?Q?AHs9XjesDED3s2nWg1aKPFa8pGMVAUQqNDXU8eHeUOjaaB1oq1B5KuR0F7ff?= =?us-ascii?Q?mySxbwgm8QQYHipYPjEzFclew1Ze+VZ1jxGKjn+9ZQYy+WXszheCGbVXWVZS?= =?us-ascii?Q?N9I04tnFbolqUc1nz8wcUZlgrJw0ISriRB0DgPfdJkvTf0A++8Hw2bjKbj44?= =?us-ascii?Q?Yt/IPt0P9jr9cUSwAIDofkw0Fcmoz/OGIJ2QwrHYw2FcQfOAiow2XONVPDHJ?= =?us-ascii?Q?xLvQdNgUF5u17xt86kI1TNNER3Crh8xkmhLLrpkOBZl0eITx3/nCuKZ9hGA3?= =?us-ascii?Q?NP0e2POma4pQYaEAgtG7AZSe+fIWVXj70Ur+uS6GHPBRUkU9tYzpijkU6x+3?= =?us-ascii?Q?U+/6j7wqErOnNTchwlPmOu2meMcwn9a1plxUq0ZRdBtvx5qXHms7ltd9a91n?= =?us-ascii?Q?3odsu5uorUN3dJ1MAgkK+AXwpb/girpyfL0gabd1JtYTVSjDx57k3Zt3LKSW?= =?us-ascii?Q?1HJ7cqdmubeDbFgUlLB9i1ZsGGXZOxLgkcRNxWUrBhfaq19SAeBIJMcF5s49?= =?us-ascii?Q?td3rG55sRKdmcWhXBZJEu34TOUK1ACK9agUhtqjX8sqf3zCJdlUA5G2GK1v4?= =?us-ascii?Q?s7piJH0GaII1R/aqHH9A5DJxr/yfRsR+/+vTeRXFx/YlDgSkKHJXrYtvwxG9?= =?us-ascii?Q?VrRLZi0GrFTL95c52YWbzHRe4oywZK9z8CafOamN+Y4w+1TMNRVus5w=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 6:335Ng7Y134jGi/hFhr8hKvrr/vr0TXhA57jYOzZimuqUTLQm1D9R8BBknHPtteC5qGypGLL9NAjQIFXtPBJND4SRbv85fTsZGRw2GvrOdubElWOvvaXtDrLi4B5rQttFI9/5rkfPGhkIi3TgCAlzcj/F4EThxoGI5AYptujq9WPUgWC+gQD7nlFf8omsbAk2B7ogkSxFI4P3A97TKQAb5NJnE37A2FS7g/OnANg9q50bJxoxG/yNP1C1j4I/kJyl5jSJV7FIZxl95x6ntIIuDDc1WXjWCwoOB+GIHlIbiQX9HTSQFl+1wZHMSE64Sk6YKyMhmoIrLZZlMyxbuHw67wGw95juuG5gR4TAkXiL6HY=; 5:EY3i/AhIuOqW881GaJ0TSr9MfUXdf+H/N375iCARO1ai92abe/lkayLCR/dG4tkZK+b1ROSYcPYlnJZyrnVxUTH1fUUuM7u66tRYLHuBQ2pL8WuAvjrJednVoJCwx1gQwdD6pMO9WmLFxhQp3/zkthFNYTVgQcqR2i8KWcyS49Q=; 24:N3tHStACFq4g2pfLGCcBgsMoWhJ0IgrC/f+Apq0hN/6EyI9ve/rLemsHQ2hpbGfa3wy+eWBz02prZx2mWqtxil2a1zNuXPGTIIzJXNXkAwk=; 7:9kx359wxfrutftex2dRn5jKKVGjlzz4c3+NKBaozxUQyv9jO2dubzyFig3dRyvRQjUAgkc+XZMNxkoNhXeFw9AeqUj6iG65GCCXhS6vS4XRg19yau6/8q6HUeKYIFS1CfoJHN4SeqRRSNDmFxqQ8I+A/N353k1cO+yh8+Zu0WoG+DOKI0oc1VMaNBhBgIXg2BLYLxCX/pxwfss0Io0zi9tyM+Ug3WDOPeOjyfSoy+W0c43A/vsjys1g0cDtQiT5R SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 20:tcZ7aMdc14izcZlA7s3TV8vp96oS8YbL8qtwnWusVnrapzjtArL64RfCTsH7fHN+SRX8rGr7SdVKMFrv279QOFMl33w6x4JM+CUQUv7kj/J3uJGi/smxecLRX6M6CLp6t0z9b7bQXAxhYGlIkyj5J9PXMpwccNcp40qy5KHgCag= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 01:48:37.8712 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 65a59c14-04b0-44f8-821d-08d5595e99b5 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 140/187] ASoC: ssm2602: 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/ssm2602-i2c.c | 7 ---- sound/soc/codecs/ssm2602-spi.c | 7 ---- sound/soc/codecs/ssm2602.c | 77 +++++++++++++++++++++--------------------- 3 files changed, 39 insertions(+), 52 deletions(-) diff --git a/sound/soc/codecs/ssm2602-i2c.c b/sound/soc/codecs/ssm2602-i2c.c index 173ba85..f1c2b1a 100644 --- a/sound/soc/codecs/ssm2602-i2c.c +++ b/sound/soc/codecs/ssm2602-i2c.c @@ -27,12 +27,6 @@ static int ssm2602_i2c_probe(struct i2c_client *client, devm_regmap_init_i2c(client, &ssm2602_regmap_config)); } -static int ssm2602_i2c_remove(struct i2c_client *client) -{ - snd_soc_unregister_codec(&client->dev); - return 0; -} - static const struct i2c_device_id ssm2602_i2c_id[] = { { "ssm2602", SSM2602 }, { "ssm2603", SSM2602 }, @@ -55,7 +49,6 @@ static int ssm2602_i2c_remove(struct i2c_client *client) .of_match_table = ssm2602_of_match, }, .probe = ssm2602_i2c_probe, - .remove = ssm2602_i2c_remove, .id_table = ssm2602_i2c_id, }; module_i2c_driver(ssm2602_i2c_driver); diff --git a/sound/soc/codecs/ssm2602-spi.c b/sound/soc/codecs/ssm2602-spi.c index 842f373..8848628 100644 --- a/sound/soc/codecs/ssm2602-spi.c +++ b/sound/soc/codecs/ssm2602-spi.c @@ -20,12 +20,6 @@ static int ssm2602_spi_probe(struct spi_device *spi) devm_regmap_init_spi(spi, &ssm2602_regmap_config)); } -static int ssm2602_spi_remove(struct spi_device *spi) -{ - snd_soc_unregister_codec(&spi->dev); - return 0; -} - static const struct of_device_id ssm2602_of_match[] = { { .compatible = "adi,ssm2602", }, { } @@ -38,7 +32,6 @@ static int ssm2602_spi_remove(struct spi_device *spi) .of_match_table = ssm2602_of_match, }, .probe = ssm2602_spi_probe, - .remove = ssm2602_spi_remove, }; module_spi_driver(ssm2602_spi_driver); diff --git a/sound/soc/codecs/ssm2602.c b/sound/soc/codecs/ssm2602.c index 9b341c2..6d83587 100644 --- a/sound/soc/codecs/ssm2602.c +++ b/sound/soc/codecs/ssm2602.c @@ -273,8 +273,8 @@ static int ssm2602_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 ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); int srate = ssm2602_get_coeff(ssm2602->sysclk, params_rate(params)); unsigned int iface; @@ -308,8 +308,8 @@ static int ssm2602_hw_params(struct snd_pcm_substream *substream, static int ssm2602_startup(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { - struct snd_soc_codec *codec = dai->codec; - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); if (ssm2602->sysclk_constraints) { snd_pcm_hw_constraint_list(substream->runtime, 0, @@ -322,7 +322,7 @@ static int ssm2602_startup(struct snd_pcm_substream *substream, static int ssm2602_mute(struct snd_soc_dai *dai, int mute) { - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(dai->codec); + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(dai->component); if (mute) regmap_update_bits(ssm2602->regmap, SSM2602_APDIGI, @@ -337,8 +337,8 @@ static int ssm2602_mute(struct snd_soc_dai *dai, int mute) static int ssm2602_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 ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = codec_dai->component; + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); if (dir == SND_SOC_CLOCK_IN) { if (clk_id != SSM2602_SYSCLK) @@ -389,7 +389,7 @@ static int ssm2602_set_dai_sysclk(struct snd_soc_dai *codec_dai, static int ssm2602_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) { - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec_dai->codec); + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(codec_dai->component); unsigned int iface = 0; /* set master/slave audio interface */ @@ -445,10 +445,10 @@ static int ssm2602_set_dai_fmt(struct snd_soc_dai *codec_dai, return 0; } -static int ssm2602_set_bias_level(struct snd_soc_codec *codec, +static int ssm2602_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); switch (level) { case SND_SOC_BIAS_ON: @@ -511,19 +511,19 @@ static int ssm2602_set_bias_level(struct snd_soc_codec *codec, .symmetric_samplebits = 1, }; -static int ssm2602_resume(struct snd_soc_codec *codec) +static int ssm2602_resume(struct snd_soc_component *component) { - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); regcache_sync(ssm2602->regmap); return 0; } -static int ssm2602_codec_probe(struct snd_soc_codec *codec) +static int ssm2602_component_probe(struct snd_soc_component *component) { - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component); + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); int ret; regmap_update_bits(ssm2602->regmap, SSM2602_LOUT1V, @@ -531,7 +531,7 @@ static int ssm2602_codec_probe(struct snd_soc_codec *codec) regmap_update_bits(ssm2602->regmap, SSM2602_ROUT1V, ROUT1V_RLHP_BOTH, ROUT1V_RLHP_BOTH); - ret = snd_soc_add_codec_controls(codec, ssm2602_snd_controls, + ret = snd_soc_add_component_controls(component, ssm2602_snd_controls, ARRAY_SIZE(ssm2602_snd_controls)); if (ret) return ret; @@ -545,9 +545,9 @@ static int ssm2602_codec_probe(struct snd_soc_codec *codec) ARRAY_SIZE(ssm2602_routes)); } -static int ssm2604_codec_probe(struct snd_soc_codec *codec) +static int ssm2604_component_probe(struct snd_soc_component *component) { - struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component); int ret; ret = snd_soc_dapm_new_controls(dapm, ssm2604_dapm_widgets, @@ -559,14 +559,14 @@ static int ssm2604_codec_probe(struct snd_soc_codec *codec) ARRAY_SIZE(ssm2604_routes)); } -static int ssm260x_codec_probe(struct snd_soc_codec *codec) +static int ssm260x_component_probe(struct snd_soc_component *component) { - struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec); + struct ssm2602_priv *ssm2602 = snd_soc_component_get_drvdata(component); int ret; ret = regmap_write(ssm2602->regmap, SSM2602_RESET, 0); if (ret < 0) { - dev_err(codec->dev, "Failed to issue reset: %d\n", ret); + dev_err(component->dev, "Failed to issue reset: %d\n", ret); return ret; } @@ -581,30 +581,31 @@ static int ssm260x_codec_probe(struct snd_soc_codec *codec) switch (ssm2602->type) { case SSM2602: - ret = ssm2602_codec_probe(codec); + ret = ssm2602_component_probe(component); break; case SSM2604: - ret = ssm2604_codec_probe(codec); + ret = ssm2604_component_probe(component); break; } return ret; } -static const struct snd_soc_codec_driver soc_codec_dev_ssm2602 = { - .probe = ssm260x_codec_probe, - .resume = ssm2602_resume, - .set_bias_level = ssm2602_set_bias_level, - .suspend_bias_off = true, - - .component_driver = { - .controls = ssm260x_snd_controls, - .num_controls = ARRAY_SIZE(ssm260x_snd_controls), - .dapm_widgets = ssm260x_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(ssm260x_dapm_widgets), - .dapm_routes = ssm260x_routes, - .num_dapm_routes = ARRAY_SIZE(ssm260x_routes), - }, +static const struct snd_soc_component_driver soc_component_dev_ssm2602 = { + .probe = ssm260x_component_probe, + .resume = ssm2602_resume, + .set_bias_level = ssm2602_set_bias_level, + .controls = ssm260x_snd_controls, + .num_controls = ARRAY_SIZE(ssm260x_snd_controls), + .dapm_widgets = ssm260x_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(ssm260x_dapm_widgets), + .dapm_routes = ssm260x_routes, + .num_dapm_routes = ARRAY_SIZE(ssm260x_routes), + .suspend_bias_off = 1, + .idle_bias_on = 1, + .pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static bool ssm2602_register_volatile(struct device *dev, unsigned int reg) @@ -641,7 +642,7 @@ int ssm2602_probe(struct device *dev, enum ssm2602_type type, ssm2602->type = type; ssm2602->regmap = regmap; - return snd_soc_register_codec(dev, &soc_codec_dev_ssm2602, + return devm_snd_soc_register_component(dev, &soc_component_dev_ssm2602, &ssm2602_dai, 1); } EXPORT_SYMBOL_GPL(ssm2602_probe);