From patchwork Fri Jan 12 01:34:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10159345 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 9A789602D8 for ; Fri, 12 Jan 2018 02:23:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7E1E528938 for ; Fri, 12 Jan 2018 02:23:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 720BC289E7; Fri, 12 Jan 2018 02:23: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 5757328938 for ; Fri, 12 Jan 2018 02:23:30 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 3B557267B78; Fri, 12 Jan 2018 03:23:29 +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 39BCC267C48; Fri, 12 Jan 2018 03:23:28 +0100 (CET) Received: from relmlie3.idc.renesas.com (relmlor4.renesas.com [210.160.252.174]) by alsa0.perex.cz (Postfix) with ESMTP id B1F11267A9B for ; Fri, 12 Jan 2018 02:34:18 +0100 (CET) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie3.idc.renesas.com with ESMTP; 12 Jan 2018 10:34:16 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id D99456AA5E; Fri, 12 Jan 2018 10:34:16 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,346,1511794800"; d="scan'208";a="269309900" Received: from mail-pu1apc01lp0020.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.20]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 12 Jan 2018 10:34:15 +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=IhTaDYaKeJtSeS5oAiA5CfDlzVLcPoFvLeTF2EJ0USM=; b=dPhap1JuDR0ypBfzSsIzas5cdT0hyreZ0T+7I0enD5X67KjKIHK49C600ZuNvT3aZ9BDej8zVZvdoQ8ikVyOy2cMuhe77jwwvezEYyjEiSZ1tR8NCojwOFB6ynhRGWX4GdY3Vu0q46u1JfwjWItMG/Kj0fkx1IfeQ+ncenqo4mk= 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 KL1PR0601MB1878.apcprd06.prod.outlook.com (2603:1096:802:7::23) 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:34:14 +0000 Message-ID: <87o9lz97zi.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:34:14 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: TY1PR01CA0159.jpnprd01.prod.outlook.com (2603:1096:402::11) To KL1PR0601MB1878.apcprd06.prod.outlook.com (2603:1096:802:7::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 442c2d1a-9ade-4ca7-749c-08d5595c96f4 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020074)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020); SRVR:KL1PR0601MB1878; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1878; 3:lvYKz2leKSUngTkqAtbqOvAP57EGhZd+WQRxYb2f1BkWMkl/mlxuFgIN+QQPIX601m2uXAKSg7o4wI6/ygMyLTdk2tpLSOZw1I1QcQs86km++AEvxmQb3y+IYinGEWyaM3/WRsJe3Q4ZS+aYET55yseCxppHKnczDFxiVTDV5uDyMEo8MoCzQ3rbhmJe+ymQkdhAhVfMiT30mD58aThu6dPW9GV1IcR0ytSeq1ZHBzpHhPW6qv9AyDoQTPuX8ozK; 25:EOvSrX1/lcuNnHZXLQFV7DzvXqXFiizu6d6yiX3QVD19tgmRnxnPk2efGAOoRm+RJzfhJcd35AKHJTkwe9hcC7OXRJt8EIaE6z9/VXubSPbz3wbXr+Yf0xUH5mlfAwO/HMsozSLccX/o1y5gva28zCm0lYsBQ2NOAWqPO3goXk9hGetBv8hc+CimMpxjd2PfqH5ouUEl1UpnE7QsB/spIbr5I+GwF6E4KPWfromkm2/ahbd8mAJB1+IdLQW1Lu2Wvy6YosuyTOrAXwh7L5wU98DbCBLX31JQlf6/BQZSqNXLH0qO1ZvOgnETs9CvPSaNtzDL9XWL1TXaqbXWWy2IPA==; 31:dob5fIfDsnJuCfslvv2PT0A6B8tT02kdHyPB4/p64Jn9n+Cpe/P+8E2eRPwFrlih/0ZRuxWZ3kDwU4nTKx6b6r5XPsNvZ8qSZd+TbKioa8kQNcWm0XOqm4d4FI5/3q1PwKzAg0nV9U6xUvQoRl3fRp1JAAXyO3LvQgZya2SBCNI+oqkXV4oDmeQBzns5ZaJdyxVlgiHccsC8c3XwWgcSt+sn2BZi8hyfOu9wyZBNbrM= X-MS-TrafficTypeDiagnostic: KL1PR0601MB1878: X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1878; 20:8Mnuv9itwkHPOJZVV5PZ78EKPOv7xvkcOQqXP+xxl0aWDVZLaqt6SbyoW2GeK8rTSuuq62J+D5sonBmOywfwyqkrma5Fi9mC7x22DrQk9M+867z1SgA9ZpMoF9dHoT6Jn9seIgk+ih3IXGvh0KtHMoxvtm/pWjsZpT0Aw9d0mZe0OvDF+Eml1C+QtQE377vlpzRGtrp16wCflDZ0CNYna8QVEX4ldXFuFgtafHknfV08jHdO5+liPBPwqOdUcoei2OGJ/Sni4Ny1nX5ukKgWqLBlZt5rekzszGTUgy6Z1/oryK2A3ZyM5dpzfjCwBH/o1Gn47zPIFNyMMWfli5PNbZAchxfJnC/hs7+PKepL1AFMkF3Ic/kLmRJ29eEOaWcVlXm3WbZ5H0OtD2yUjo1Nl3eeU/WKGgKubfQSU46RvzjGQzOabur6aWPAopxB1+UyP4M8JrUUxZdFTSdiY3pjiHtKhpVG8hhqe2BN0Sutqx62s7XrF8JbsTi8LP26shu+; 4:upvqzmINoQaO7+T9PMAAWKrzf+rPOFbKCbZr7Z0+HglCFIEA9x+Z+5fX9WnQvkKx4qDfiphZNyVvIGY453DwWe04sjdgw4GMEDndBLDZf+D/akjq1Rc23PRMG/tu760TtddzZu2jBLD+Ag+XZ7S/SgdchH8kMU4bsK3Pm8H0/AnLry28A7JjH9a6un+Hish4xPpn3i6Yl9PLGr0/N8CYYiQTHNP9DmELH5Uvd94HuanlufptdlbtluoRE6XZnwf7WdB8g05eUkLNbm/NIh2+98ePIoBPYgw12DOhVX1SN5cQqgEed6fuMnAll7bJSGN+ 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)(3231023)(944501138)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041268)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:KL1PR0601MB1878; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:KL1PR0601MB1878; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(376002)(39380400002)(366004)(346002)(39860400002)(189003)(199004)(7736002)(36756003)(23726003)(53416004)(5660300001)(6116002)(69596002)(386003)(2950100002)(76176011)(7696005)(6916009)(52116002)(66066001)(47776003)(305945005)(59450400001)(106356001)(3846002)(2906002)(105586002)(25786009)(6486002)(68736007)(8676002)(81166006)(50466002)(54906003)(16586007)(83506002)(4326008)(97736004)(16526018)(58126008)(53936002)(81156014)(316002)(478600001)(86362001)(8936002)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:KL1PR0601MB1878; 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; KL1PR0601MB1878; 23:zeiJLGmtU65gjGxBLa4pIHYJNfQw8Bhr+vvLHd5?= =?us-ascii?Q?IPU981IUolshSt3QQ8KbxDUzEgNqVui008wFZPp6jgrhCFbhjBh6fR0n98lF?= =?us-ascii?Q?9Khujp+qICmcACmHIqNV2lLpWxbKwXhv4lVZ1TLZYGGqlTd7dRq2Z72NS2aO?= =?us-ascii?Q?zX5HXf2bNEn9aGxjkB/UGGeE1fevRq/iDjr1i2SpKTrot2BcgAEDX2LMEs8D?= =?us-ascii?Q?GaLa+v/zozQUv75cd0QlRb8NDFktLSuPwo4V9qoPLpr0CJ0TNrzrzVOr3Jrd?= =?us-ascii?Q?thsWSSRAXdMM+UxhquNJpvxlBYAYYVVPZFvhxCiQwuTLilP76+29lhQlI2o/?= =?us-ascii?Q?zIsi6Om4Waai6Mlle3XhzLfr4ERNKCTI88ojDtJdxpAMTO/ktJ5mwj76ZJSP?= =?us-ascii?Q?4TgYRY0Nx0TLC092s9Ra/NL9j3knSC7sJU5UBhBb35JynUHdIAG5vmw/Hoyp?= =?us-ascii?Q?QPmEYPCioT119RiOrT8Qk8dKZa2agHl1ttvQf/lL9p26yX0DPwQjfHjuQfPp?= =?us-ascii?Q?D+Wygz8sEBI2u42Wr+ox3BEtQbW2N80dI0Z+ag7QxL+yNq8oKxvlHvRJlJ4u?= =?us-ascii?Q?hbAxw7s1kvdpLT7ZyJPLmMxg3v0z3NLnNea76kjQVmJ/o8HW5yQ+VUKV8Ax+?= =?us-ascii?Q?2c1jxylSUYx98fo4HG3UIji5JW4HuBjE1dc2abM1gUNKk1TaIr46vOq/119T?= =?us-ascii?Q?MuCvQKhZ8hqbgOWlyn+mxW+TzkEFg/ZZmz6NW/MkBZNO+mWQ8bMOkRaq+C9e?= =?us-ascii?Q?pUdUbTapKkUmF7IeIJUwaQCvs9cmv9C0ru0iSDWYEGeBkR5lekKap095fwPh?= =?us-ascii?Q?UgH6LwzRfk1p2nnDqs45ttRud5a8RS6p2vgWuAr9/FhzI/Vd2SfDLgRJJQxU?= =?us-ascii?Q?dufl9Fq8qnqTg1AL24vZ3wg/zyGeN2U7D/ww+x8wNInieDeexMz4tiwJEszZ?= =?us-ascii?Q?cXn99Xkj19bJHJiiqYZFaxAtYaMTzrs/W/HQnlRe34oCZ6S4XyH2+XFk1opu?= =?us-ascii?Q?ZxldDC/WI88vlRtFAU+ekK4hYbDYSnCHzC5Vo8JtCZ29KTxwdEjLRudgOEO6?= =?us-ascii?Q?N0qcWmy07QBc60zno5Nwtbp9mxJvCV/x+FeFs6UhMui2NcnbPIG1PGynp/LH?= =?us-ascii?Q?7eIv89dQVCTWOl3hHv1+Udr1U2qYJZeIQOjEvqiGhQIFRtIU908Cheg=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1878; 6:sCzV7xvJapnB/oS/dcsuPEz9i0f1bToDuM2/qb16YgAwED5s8NBPaW5LGPRTd3lh+WGuTDFXqQRMZpj9NqbY57RAyxMR4DPgcubigJUG5QXU/lAEIDtswC8WXBKCX6P0fZfWwa+52Urgq/YWMQyeXs1W4gHIbJc0JA2cpVclOw6lmvlW8t+QYZu30CxawcLglqI1GddDaTF3HWl//Z8de+NebQmyUPgz9fPOdr+h7lJo9o/npQtntg8lAWweMI3thAw/QMvPjpvnER87r1WGS5htQHcI0uKm2amqv8Tq/JTE8ztD704Z2NvJ47YckkaA7QZUT1oU5hVuldgzDynzQ2yWkLz1f/lREyKEBA7On7Y=; 5:POG0Sor7EGapicCVnG4IVPWFDlhV21ynDXyGIr0/hpFHjYb5PFO3QT5JY8YzIA6VNwuPq9Rc3GKF/qKlaSJC/aM1h86JXHFc6n1lmi4kCBbUS/tM1pqit9Nkfb4pWNRY12EM09QHo1wlBaVLTFB+pxdesZ5DoY0iXbJKCINptSs=; 24:KvxgfhimsfI++2nr/tviMYoSSMpMANVt8MOTenQdRT3Lc1iixQOg0UpMcDCM7OV6xEZb1OY1S1lEqfis7wWqtY2jKsJcJTDSNJNM7e/0r84=; 7:JTHv56ZzieVHDyGbA6hszGere8DHxOinSHs33rp/Mdy/459psmgIGR62FS7L7w3BJ0o3cEYCqKwVdlQdOKcaf8C2bWOclDe6IBxhhI/3ZO0eYP6sbBPmvqBTUIZ26qkI2k52s+Acm7L1u3hCYWqftGnXPm+QBAaoxhQceVAN2kxbOkWNy84loGNopedQE3VM56XXxP+fem0sYLcaHcuD/phPRcbOkNmuffXNp7rj/qXaziXXNSjqXd5mJ6B90tpV SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1878; 20:dmq9hn7NqAgO1R1ijejH9L9l8OZBCsvyNd/UCRXMp4GlGg6ToqEKid8ANWyIALJ8QzBqQXOXFNAJH+pFP4xf4MqHlwseug4go4cneCqCLzQKrFoNHriOy096cRrfENpXY3k+F8s9hB92J6er2/czc7ek+r158BF3xjBzKZLwd5I= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 01:34:14.2259 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 442c2d1a-9ade-4ca7-749c-08d5595c96f4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB1878 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 092/187] ASoC: max9850: 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/max9850.c | 80 +++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/sound/soc/codecs/max9850.c b/sound/soc/codecs/max9850.c index a3dfc91..9a984e2 100644 --- a/sound/soc/codecs/max9850.c +++ b/sound/soc/codecs/max9850.c @@ -130,8 +130,8 @@ static int max9850_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 max9850_priv *max9850 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct max9850_priv *max9850 = snd_soc_component_get_drvdata(component); u64 lrclk_div; u8 sf, da; @@ -139,14 +139,14 @@ static int max9850_hw_params(struct snd_pcm_substream *substream, return -EINVAL; /* lrclk_div = 2^22 * rate / iclk with iclk = mclk / sf */ - sf = (snd_soc_read(codec, MAX9850_CLOCK) >> 2) + 1; + sf = (snd_soc_component_read32(component, MAX9850_CLOCK) >> 2) + 1; lrclk_div = (1 << 22); lrclk_div *= params_rate(params); lrclk_div *= sf; do_div(lrclk_div, max9850->sysclk); - snd_soc_write(codec, MAX9850_LRCLK_MSB, (lrclk_div >> 8) & 0x7f); - snd_soc_write(codec, MAX9850_LRCLK_LSB, lrclk_div & 0xff); + snd_soc_component_write(component, MAX9850_LRCLK_MSB, (lrclk_div >> 8) & 0x7f); + snd_soc_component_write(component, MAX9850_LRCLK_LSB, lrclk_div & 0xff); switch (params_width(params)) { case 16: @@ -161,7 +161,7 @@ static int max9850_hw_params(struct snd_pcm_substream *substream, default: return -EINVAL; } - snd_soc_update_bits(codec, MAX9850_DIGITAL_AUDIO, 0x3, da); + snd_soc_component_update_bits(component, MAX9850_DIGITAL_AUDIO, 0x3, da); return 0; } @@ -169,16 +169,16 @@ static int max9850_hw_params(struct snd_pcm_substream *substream, static int max9850_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 max9850_priv *max9850 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = codec_dai->component; + struct max9850_priv *max9850 = snd_soc_component_get_drvdata(component); /* calculate mclk -> iclk divider */ if (freq <= 13000000) - snd_soc_write(codec, MAX9850_CLOCK, 0x0); + snd_soc_component_write(component, MAX9850_CLOCK, 0x0); else if (freq <= 26000000) - snd_soc_write(codec, MAX9850_CLOCK, 0x4); + snd_soc_component_write(component, MAX9850_CLOCK, 0x4); else if (freq <= 40000000) - snd_soc_write(codec, MAX9850_CLOCK, 0x8); + snd_soc_component_write(component, MAX9850_CLOCK, 0x8); else return -EINVAL; @@ -188,7 +188,7 @@ static int max9850_set_dai_sysclk(struct snd_soc_dai *codec_dai, static int max9850_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) { - struct snd_soc_codec *codec = codec_dai->codec; + struct snd_soc_component *component = codec_dai->component; u8 da = 0; /* set master/slave audio interface */ @@ -234,15 +234,15 @@ static int max9850_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) } /* set da */ - snd_soc_write(codec, MAX9850_DIGITAL_AUDIO, da); + snd_soc_component_write(component, MAX9850_DIGITAL_AUDIO, da); return 0; } -static int max9850_set_bias_level(struct snd_soc_codec *codec, +static int max9850_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { - struct max9850_priv *max9850 = snd_soc_codec_get_drvdata(codec); + struct max9850_priv *max9850 = snd_soc_component_get_drvdata(component); int ret; switch (level) { @@ -251,10 +251,10 @@ static int max9850_set_bias_level(struct snd_soc_codec *codec, 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) { ret = regcache_sync(max9850->regmap); if (ret) { - dev_err(codec->dev, + dev_err(component->dev, "Failed to sync cache: %d\n", ret); return ret; } @@ -289,31 +289,32 @@ static int max9850_set_bias_level(struct snd_soc_codec *codec, .ops = &max9850_dai_ops, }; -static int max9850_probe(struct snd_soc_codec *codec) +static int max9850_probe(struct snd_soc_component *component) { /* enable zero-detect */ - snd_soc_update_bits(codec, MAX9850_GENERAL_PURPOSE, 1, 1); + snd_soc_component_update_bits(component, MAX9850_GENERAL_PURPOSE, 1, 1); /* enable slew-rate control */ - snd_soc_update_bits(codec, MAX9850_VOLUME, 0x40, 0x40); + snd_soc_component_update_bits(component, MAX9850_VOLUME, 0x40, 0x40); /* set slew-rate 125ms */ - snd_soc_update_bits(codec, MAX9850_CHARGE_PUMP, 0xff, 0xc0); + snd_soc_component_update_bits(component, MAX9850_CHARGE_PUMP, 0xff, 0xc0); return 0; } -static const struct snd_soc_codec_driver soc_codec_dev_max9850 = { - .probe = max9850_probe, - .set_bias_level = max9850_set_bias_level, - .suspend_bias_off = true, - - .component_driver = { - .controls = max9850_controls, - .num_controls = ARRAY_SIZE(max9850_controls), - .dapm_widgets = max9850_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(max9850_dapm_widgets), - .dapm_routes = max9850_dapm_routes, - .num_dapm_routes = ARRAY_SIZE(max9850_dapm_routes), - }, +static const struct snd_soc_component_driver soc_component_dev_max9850 = { + .probe = max9850_probe, + .set_bias_level = max9850_set_bias_level, + .controls = max9850_controls, + .num_controls = ARRAY_SIZE(max9850_controls), + .dapm_widgets = max9850_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(max9850_dapm_widgets), + .dapm_routes = max9850_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(max9850_dapm_routes), + .suspend_bias_off = 1, + .idle_bias_on = 1, + .pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static int max9850_i2c_probe(struct i2c_client *i2c, @@ -333,17 +334,11 @@ static int max9850_i2c_probe(struct i2c_client *i2c, i2c_set_clientdata(i2c, max9850); - ret = snd_soc_register_codec(&i2c->dev, - &soc_codec_dev_max9850, &max9850_dai, 1); + ret = devm_snd_soc_register_component(&i2c->dev, + &soc_component_dev_max9850, &max9850_dai, 1); return ret; } -static int max9850_i2c_remove(struct i2c_client *client) -{ - snd_soc_unregister_codec(&client->dev); - return 0; -} - static const struct i2c_device_id max9850_i2c_id[] = { { "max9850", 0 }, { } @@ -355,7 +350,6 @@ static int max9850_i2c_remove(struct i2c_client *client) .name = "max9850", }, .probe = max9850_i2c_probe, - .remove = max9850_i2c_remove, .id_table = max9850_i2c_id, };