From patchwork Fri Jan 12 01:40:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10159387 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 9DAFD601A1 for ; Fri, 12 Jan 2018 02:36:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 86D33286DA for ; Fri, 12 Jan 2018 02:36:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7B66128848; Fri, 12 Jan 2018 02:36:26 +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 8B5CB286DA for ; Fri, 12 Jan 2018 02:36:25 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 5A7C42680A2; Fri, 12 Jan 2018 03:36:24 +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 3A7F62680A2; Fri, 12 Jan 2018 03:36:23 +0100 (CET) Received: from relmlie3.idc.renesas.com (relmlor4.renesas.com [210.160.252.174]) by alsa0.perex.cz (Postfix) with ESMTP id 217E62680B9 for ; Fri, 12 Jan 2018 02:40:15 +0100 (CET) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie3.idc.renesas.com with ESMTP; 12 Jan 2018 10:40:14 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 72EB57149F; Fri, 12 Jan 2018 10:40:14 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,346,1511794800"; d="scan'208";a="268010168" Received: from mail-hk2apc01lp0216.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.216]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 12 Jan 2018 10:40:13 +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=OEhIN53fzBScxZ+TGyFWMk/xyzVBYWF1AGZuCPP45yw=; b=mwef3w0xEQtvGaB+KeV3GGk2YNdZIpGZ0Z2lbhH36yWcQ5NXMAJv5RCp6MAjLuxMyl8w+HYW/ZhAqWY76M1Q9UQGTMmRaUwAjduIAJhMoFe1IE8+KsXTtV5x/B37H298saajQA9ysZzBU2uwP+2+Tf9vM0Q61wPM+EcykjszKcY= Received: from morimoto-PC.renesas.com (211.11.155.138) by HK2PR0601MB1875.apcprd06.prod.outlook.com (2603:1096:202:a::19) 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:40:12 +0000 Message-ID: <87y3l37t51.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:40:12 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: KAWPR01CA0080.jpnprd01.prod.outlook.com (2603:1096:402:c::16) To HK2PR0601MB1875.apcprd06.prod.outlook.com (2603:1096:202:a::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 3c6f5ac1-a346-4abb-3417-08d5595d6caa X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020074)(4652020)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:HK2PR0601MB1875; X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1875; 3:+IgyCnMtfs4vNNKtwpoAy+nd3A/j1Fmpi7QlkNHyN+1dJ2Qr5158vb/9LrCXe2FYVrArcT77rmRquz5YzumF+N0iv1XEy2s3/dICbU3IoK7OWdrLtgOvcpAOH6s/B5OX/jBvicDFK9m1m4wFA6s3bf8c+acbVG6KN2BmbOirIG69IhbjVK/kMWkDbd33bHElXZ0JDvtllSnvLA8NGEKzmygu/iJAIFDX0KYjsqNJegnZBpo8RjFfoa1GDWH1rIsH; 25:QKja3mJCi6LKDrZBoyCt3vWdSIBKq1qGS3g5OlWy0ZfQvhpGjFm81u6YLswdE8vTf+7HMPCWX3Roy883nis+rG2xFTHWsp/72syuW2ITM5XV9kSzdFt81MG78tfanHIggUemNn+wTpiqUCbv7Kxi6UZ+IK6xculQ6pR3x1jtHx4xx8YLIS3WtawjPYWObG2aSuVW+bDbK889cm9soD0KfOgaWi+EsgjRtaJS/hpZr/8z/y8t47hDLq9JzK80MfEsB9/4dcH64aMNF9znpe5T4hFwdbZv41+3FOE0ve26o2uGc0BRWpETgqgzlbfbQKEaexETo1HtXNl8bUgh6/27pg==; 31:sAImG2URjmMrZ3mPPsVd5OPI5NrcztUThnW0AwLD/e31fWDjwV2/raieIGoK2jcl+TqxPOD32BDYwziw2XjRECRtHBQuhbIUKLmSNkBuRchxLCRe7W/iuyd6RWyvFUkQOpq+LlCopC2kM172Vixdzi+fzdOdOzOseyfJKAqpNXhUAFybDTjFpEvKRwa69lyYrHKZcsEZAaX5M5jbwWWlMYa1pnj+rt7Xbc7EyBdCe0A= X-MS-TrafficTypeDiagnostic: HK2PR0601MB1875: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1875; 20:cnTj/c7UFMXEQT+AiApW5GZ6IHS1jv4v9z4AUMcpSxGo8O2GmnfkcaJwZOHcRwBsQJ485vRAV3aMG9XTM3tHaqZ/t/mq50m3h6UUwATu1BOdzqsXTMZfvgpSjqdC2y85nxJeVpPidZbscG1ja+Iv10kl5l12Ae2fWdnuurnLijncc0c/z58LLUccPYuBbQQ564rlHx1GmCdmCwkcwkMg+McfZa6yNE9z3jWTMvCVvmkaACH4q8lKITVxPJQswahGssL7QevlF9BxcBrJRPSV7HrAiAGi+KN/4uF2Dc/uBqnmuHBtwM6I1kemaR3DudW6iN0GmEsAjn5usrOhGTvuicmAAAl97LeATMgcgqajyNUbuEeKoixZfw+BX/h8cGR74/37ENucd5wRWgj+Kp4eqwCX+vOCOp5Nr4bdT7JvsnRQ1/QiF1ypc5sKsPAZTxqVIcfI8J9oZam9ugwV53l6AmZknTS8erRRcyIzgW0xr1iQ7ops531sEvZXBm0iD4U0; 4:DaQABQx1yPJVf2bCcKK/dvTcNcVo7N1ixA1L4s12VDr1wTLY0+j0Li0Ow57YUXSh3NXNp09AjLnq3oevGjRZodlFnSBCNFqsfCD5hMwmrmBq3i/zL2LMNU2hDTqHkJxcuYi5o1PaDLNIFExjGplw+U1lzj1Qxu8JCwiqL9cwXPllP0alv08T9PuRTlGQutgIEZ9ghw8foVeSL5AgNzGldB3kFXu72BOQwB2bw/w3S9k1UaTo710Atw7kOSxFrmhUR8dPw3wf6Quqt1Zopu5YSh6GO3+/r/hUwP3OqOWFg7NiLTIlH1t4TNlr4lOrrgci 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)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011); SRVR:HK2PR0601MB1875; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HK2PR0601MB1875; X-Forefront-PRVS: 0550778858 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(366004)(396003)(346002)(376002)(39380400002)(189003)(199004)(6486002)(81156014)(25786009)(81166006)(69596002)(4326008)(8676002)(86362001)(7736002)(47776003)(305945005)(58126008)(316002)(54906003)(97736004)(16586007)(16526018)(478600001)(53936002)(66066001)(59450400001)(386003)(83506002)(2950100002)(6916009)(106356001)(105586002)(53416004)(76176011)(6116002)(3846002)(52116002)(5660300001)(23726003)(36756003)(2906002)(50466002)(8936002)(7696005)(68736007)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:HK2PR0601MB1875; 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; HK2PR0601MB1875; 23:bAcJu0qGjnnMU/RxAEYPlcS6G54C3mENTpgurSu?= =?us-ascii?Q?PouRu835ebQhZ304NL/R4kd5lmFJKfQxqA4lnNAlBs4JGegaXJ7pNbPesE7x?= =?us-ascii?Q?QRY8oLTCP0iBkxsmF7FL6ZfOg+9OeTJ9PQfhlB5RoVig5COGov8c5ZBsg/f1?= =?us-ascii?Q?Z2lp/0f5vibtDIsA/k98w1qBSS5tITKr+hpfm2sd6ik86pR2flrErIcqJ5bO?= =?us-ascii?Q?qiix4N4KmOUST8lVzIsTDaus0vNexskoGX7NfdSr3eQsHKCdD/izbdkym6JT?= =?us-ascii?Q?709tLiHTyyHvSCou3pyZgNopY/T1SOOg+XQzWpfsSt9DJpaMqwuftkYmpu3f?= =?us-ascii?Q?eT4kEK/Lbst4W00mMXPxGSGCtfjNhYa/Uo5pXknh2PnMBSTPsgsSwOYmfAmQ?= =?us-ascii?Q?Tt4mznSh9jeSu4iD/wKwRpz8qG5DfRCLNbRCeyMerW8kg5aXqfTBfqwswj/a?= =?us-ascii?Q?lI4gLGHsHFGa/dIH0Pl28CmfJP2Jzq6Y4XVLN7ajCHGgFN8Xvg1k7lyy5KEr?= =?us-ascii?Q?mV6+PPGL6JebkSCSK1zRsA8BlBmFt4la5B428utfjzgzJIa+i2lf5ZbK+LR3?= =?us-ascii?Q?+jgrdjOYkf6QAndqsGIFSIHpbJijtiqpHtn1biy4KStTBXPpxMBLJMxrsmmZ?= =?us-ascii?Q?uecBCVZeTO+rohAQTTy/IYSk/A4CNv4wQQY3rEMKOs23Lzn06swHPcx9EKRQ?= =?us-ascii?Q?5QFgddY2t3/fe86OTuhuQhzy76RaIO4QQ88+50w0fD8iEw2mMayUINUBg0Rh?= =?us-ascii?Q?WO2jI7jvkX21J6yqAhpr1vYLia9cRXpgIztcoYWIW027DivJ5xQriXdSZ3K5?= =?us-ascii?Q?8FRp6LUu8CvriCgyuH3hfFYJwn+c93HqzdfNy9j4r40kqXhTzq8b7Vy9jGcx?= =?us-ascii?Q?Q42deges6S+oTkVjeXmbBSnw1/EDL3K06EG4lvYURBL2uWOzY5/Bh22E+jp5?= =?us-ascii?Q?NH2bIp87nK1RnXAIbdlIvRpBCWzeTutDhPv+/5tBlWib9G0N6Tnv1dwfO1/g?= =?us-ascii?Q?1dqy6Pi8SoWJOutRK9oX6WWtJLl86Zviuvmyt8feMzzHf4ygshe5EDKSoLcK?= =?us-ascii?Q?w3ySOgi4oH8M/EUWv9r98YaKNliCMjWAFu9DTtzWdpjURRiF4aYb5pqGIEmS?= =?us-ascii?Q?a4++fO4Aa0b9AAP2Q7cgvUaSjv+AlTDP7mlKncs/g2f/XJHNAH5zRkA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1875; 6:kS4mBLMrEEMDvPNolaooOTvhNLFefH6Y4X96Lt5c31lmu8kLt0BEHj7KKxtHP/VXv+qxsi3x5UGWqiJIyB97bbAPKB5Ff0gz7cCjaQ/oXooV7/rUHxy1exKbQKBALstoyJYGRFl6rEJT4vf+wn2J0aWC4p4ex++ekoLILp6L7ncv9fsrjTUSiibf5TAfy9CHHppDXUY5JhXce4u1AyTcoL71Ol+o4Khv8wCAFvXqnmp7RbTCBqbxB+YPun499f/P0q7fJkvFFadNKlI8X05rTVH04nVZi2oDscR6GmPZAdy8+Nhr1+n20X6PZzl0x6DXoqbciQ9ElUlwPfzWEOMs+KItrXpAKAXu64upz/4VCl8=; 5:HQk9mkSS94EvYrY4bKxxtDoekmPFEaAvJ9f4zdZEBQUycmwa30ohuF44ox8Qrpc+3+6rjuReSgvTFLg30Pdte6NTCTBH5TMZZoPbhwZFGEEowg8J51/fUStomHBCFvZIBCg1maKJ+g+7OZgBbZQRu2NSWgB1F+lV6x1hSh4nBz0=; 24:q77zA+MFWoeGB/0gjoKW5A8n7URIulv3mbtz4j3XNuxUsRvgPHfooCxFU9+jYNZn6Q0Q7q6lID52DZqM8vzIGDjsfRjRCyxyiDgYJDrXXEI=; 7:U/ynwMPoI43sERsxR/RnPhb6E1qemcAnXZnNoNnwMYDahSCHNUu4+IxX2wmtuupgSMQ3OTgrgArxZgkJZGtc6Tggd3nFSUoitrY9GxYww2CK8TbqdIXUW1p5RY7gtadMb2K+ezkvVqoN/ZzEYygxnMQVa5NR5W9wxQ3/j4998q52BmUS6EotWyyD9Z/XpMYZlBNt/1TMl8n24/PaIfda20/DDNrhkTcbfabdBzjTDHbTiMg6ke5frCp//sCIwk01 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HK2PR0601MB1875; 20:B6TywZRSLLwnzH7NBDvICX3oZ4eCNk7zkOFWFpC+YrZQtWndqIsJzPqlofVdDmloet4eRssp7NW3K4WvJNRpTPm9cTIq61+to6uV/L3BYpA5zOYcXsCPRNi8nVpcy2aKSQUSWUKPohfQxMgW87fOBH6WcENe/Gozj/K4feIjO7s= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2018 01:40:12.8498 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3c6f5ac1-a346-4abb-3417-08d5595d6caa X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR0601MB1875 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 109/187] ASoC: tlv320aic26: 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/tlv320aic26.c | 83 ++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 44 deletions(-) diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c index 89421ca..8099eb3 100644 --- a/sound/soc/codecs/tlv320aic26.c +++ b/sound/soc/codecs/tlv320aic26.c @@ -30,7 +30,7 @@ struct aic26 { struct spi_device *spi; struct regmap *regmap; - struct snd_soc_codec *codec; + struct snd_soc_component *component; int master; int datfm; int mclk; @@ -64,8 +64,8 @@ static int aic26_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 aic26 *aic26 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct aic26 *aic26 = snd_soc_component_get_drvdata(component); int fsref, divisor, wlen, pval, jval, dval, qval; u16 reg; @@ -112,20 +112,20 @@ static int aic26_hw_params(struct snd_pcm_substream *substream, dev_dbg(&aic26->spi->dev, "Setting PLLM to %d.%04d\n", jval, dval); qval = 0; reg = 0x8000 | qval << 11 | pval << 8 | jval << 2; - snd_soc_write(codec, AIC26_REG_PLL_PROG1, reg); + snd_soc_component_write(component, AIC26_REG_PLL_PROG1, reg); reg = dval << 2; - snd_soc_write(codec, AIC26_REG_PLL_PROG2, reg); + snd_soc_component_write(component, AIC26_REG_PLL_PROG2, reg); /* Audio Control 3 (master mode, fsref rate) */ if (aic26->master) reg = 0x0800; if (fsref == 48000) reg = 0x2000; - snd_soc_update_bits(codec, AIC26_REG_AUDIO_CTRL3, 0xf800, reg); + snd_soc_component_update_bits(component, AIC26_REG_AUDIO_CTRL3, 0xf800, reg); /* Audio Control 1 (FSref divisor) */ reg = wlen | aic26->datfm | (divisor << 3) | divisor; - snd_soc_update_bits(codec, AIC26_REG_AUDIO_CTRL1, 0xfff, reg); + snd_soc_component_update_bits(component, AIC26_REG_AUDIO_CTRL1, 0xfff, reg); return 0; } @@ -135,8 +135,8 @@ static int aic26_hw_params(struct snd_pcm_substream *substream, */ static int aic26_mute(struct snd_soc_dai *dai, int mute) { - struct snd_soc_codec *codec = dai->codec; - struct aic26 *aic26 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = dai->component; + struct aic26 *aic26 = snd_soc_component_get_drvdata(component); u16 reg; dev_dbg(&aic26->spi->dev, "aic26_mute(dai=%p, mute=%i)\n", @@ -146,7 +146,7 @@ static int aic26_mute(struct snd_soc_dai *dai, int mute) reg = 0x8080; else reg = 0; - snd_soc_update_bits(codec, AIC26_REG_DAC_GAIN, 0x8000, reg); + snd_soc_component_update_bits(component, AIC26_REG_DAC_GAIN, 0x8000, reg); return 0; } @@ -154,8 +154,8 @@ static int aic26_mute(struct snd_soc_dai *dai, int mute) static int aic26_set_sysclk(struct snd_soc_dai *codec_dai, int clk_id, unsigned int freq, int dir) { - struct snd_soc_codec *codec = codec_dai->codec; - struct aic26 *aic26 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = codec_dai->component; + struct aic26 *aic26 = snd_soc_component_get_drvdata(component); dev_dbg(&aic26->spi->dev, "aic26_set_sysclk(dai=%p, clk_id==%i," " freq=%i, dir=%i)\n", @@ -171,8 +171,8 @@ static int aic26_set_sysclk(struct snd_soc_dai *codec_dai, static int aic26_set_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) { - struct snd_soc_codec *codec = codec_dai->codec; - struct aic26 *aic26 = snd_soc_codec_get_drvdata(codec); + struct snd_soc_component *component = codec_dai->component; + struct aic26 *aic26 = snd_soc_component_get_drvdata(component); dev_dbg(&aic26->spi->dev, "aic26_set_fmt(dai=%p, fmt==%i)\n", codec_dai, fmt); @@ -265,7 +265,7 @@ static ssize_t aic26_keyclick_show(struct device *dev, struct aic26 *aic26 = dev_get_drvdata(dev); int val, amp, freq, len; - val = snd_soc_read(aic26->codec, AIC26_REG_AUDIO_CTRL2); + val = snd_soc_component_read32(aic26->component, AIC26_REG_AUDIO_CTRL2); amp = (val >> 12) & 0x7; freq = (125 << ((val >> 8) & 0x7)) >> 1; len = 2 * (1 + ((val >> 4) & 0xf)); @@ -280,7 +280,7 @@ static ssize_t aic26_keyclick_set(struct device *dev, { struct aic26 *aic26 = dev_get_drvdata(dev); - snd_soc_update_bits(aic26->codec, AIC26_REG_AUDIO_CTRL2, + snd_soc_component_update_bits(aic26->component, AIC26_REG_AUDIO_CTRL2, 0x8000, 0x800); return count; @@ -291,44 +291,46 @@ static ssize_t aic26_keyclick_set(struct device *dev, /* --------------------------------------------------------------------- * SoC CODEC portion of driver: probe and release routines */ -static int aic26_probe(struct snd_soc_codec *codec) +static int aic26_probe(struct snd_soc_component *component) { - struct aic26 *aic26 = dev_get_drvdata(codec->dev); + struct aic26 *aic26 = dev_get_drvdata(component->dev); int ret, reg; - aic26->codec = codec; + aic26->component = component; /* Reset the codec to power on defaults */ - snd_soc_write(codec, AIC26_REG_RESET, 0xBB00); + snd_soc_component_write(component, AIC26_REG_RESET, 0xBB00); /* Power up CODEC */ - snd_soc_write(codec, AIC26_REG_POWER_CTRL, 0); + snd_soc_component_write(component, AIC26_REG_POWER_CTRL, 0); /* Audio Control 3 (master mode, fsref rate) */ - reg = snd_soc_read(codec, AIC26_REG_AUDIO_CTRL3); + reg = snd_soc_component_read32(component, AIC26_REG_AUDIO_CTRL3); reg &= ~0xf800; reg |= 0x0800; /* set master mode */ - snd_soc_write(codec, AIC26_REG_AUDIO_CTRL3, reg); + snd_soc_component_write(component, AIC26_REG_AUDIO_CTRL3, reg); /* Register the sysfs files for debugging */ /* Create SysFS files */ - ret = device_create_file(codec->dev, &dev_attr_keyclick); + ret = device_create_file(component->dev, &dev_attr_keyclick); if (ret) - dev_info(codec->dev, "error creating sysfs files\n"); + dev_info(component->dev, "error creating sysfs files\n"); return 0; } -static const struct snd_soc_codec_driver aic26_soc_codec_dev = { - .probe = aic26_probe, - .component_driver = { - .controls = aic26_snd_controls, - .num_controls = ARRAY_SIZE(aic26_snd_controls), - .dapm_widgets = tlv320aic26_dapm_widgets, - .num_dapm_widgets = ARRAY_SIZE(tlv320aic26_dapm_widgets), - .dapm_routes = tlv320aic26_dapm_routes, - .num_dapm_routes = ARRAY_SIZE(tlv320aic26_dapm_routes), - }, +static const struct snd_soc_component_driver aic26_soc_component_dev = { + .probe = aic26_probe, + .controls = aic26_snd_controls, + .num_controls = ARRAY_SIZE(aic26_snd_controls), + .dapm_widgets = tlv320aic26_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(tlv320aic26_dapm_widgets), + .dapm_routes = tlv320aic26_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(tlv320aic26_dapm_routes), + .idle_bias_on = 1, + .pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, }; static const struct regmap_config aic26_regmap = { @@ -361,23 +363,16 @@ static int aic26_spi_probe(struct spi_device *spi) dev_set_drvdata(&spi->dev, aic26); aic26->master = 1; - ret = snd_soc_register_codec(&spi->dev, - &aic26_soc_codec_dev, &aic26_dai, 1); + ret = devm_snd_soc_register_component(&spi->dev, + &aic26_soc_component_dev, &aic26_dai, 1); return ret; } -static int aic26_spi_remove(struct spi_device *spi) -{ - snd_soc_unregister_codec(&spi->dev); - return 0; -} - static struct spi_driver aic26_spi = { .driver = { .name = "tlv320aic26-codec", }, .probe = aic26_spi_probe, - .remove = aic26_spi_remove, }; module_spi_driver(aic26_spi);