From patchwork Mon Jan 29 04:13:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10189093 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 E23B560375 for ; Mon, 29 Jan 2018 04:40:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D0CF1285D3 for ; Mon, 29 Jan 2018 04:40:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C4B74287E2; Mon, 29 Jan 2018 04:40:40 +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 BD1E0285D3 for ; Mon, 29 Jan 2018 04:40:39 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 25245267BCF; Mon, 29 Jan 2018 05:26:25 +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 81C57267BCE; Mon, 29 Jan 2018 05:26:23 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id E559A2678B4 for ; Mon, 29 Jan 2018 05:13:18 +0100 (CET) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie1.idc.renesas.com with ESMTP; 29 Jan 2018 13:13:17 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 2CC56644B3; Mon, 29 Jan 2018 13:13:17 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,429,1511794800"; d="scan'208";a="270914794" Received: from mail-sg2apc01lp0247.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.247]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 29 Jan 2018 13:13:16 +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=SXfNE2HZ3py6FCLOf+RSnRTUkF9amN7yauPm6XqxuG4=; b=LEpN6gJC2ql1Tm58FVVTjZmeqWcu4X7LfkfcJM8MuFYhMHvrhCDrHoyHWXSCFb3TeMeMbxHeG5u7kCd5JIvL2/Qg/Eue06ThURf/EioMNSuuw5W9aN7jKRpoa5sGdxFyNeL5AN2FR5ZXbucjd1ekO4+OQUXfWRQRDAb/DwXLjvo= Received: from morimoto-PC.renesas.com (211.11.155.138) by PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) 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 04:13:13 +0000 Message-ID: <874ln5z4l8.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 04:13:13 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: TY1PR01CA0151.jpnprd01.prod.outlook.com (2603:1096:402:1::27) To PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 74d5dc9d-94ab-42ed-034b-08d566ce9dd0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:PS1PR0601MB1881; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 3:q1zfB6JWUtEsxAMel3DAGSx3+pvVWL0mvX3bylpqBL+OWYDhrMozr4uSIRCZ7q2Wh91haFS6xz+adSFHAOLSelsHZHl3NOLuBVV8JSBree8Bawz/1eZdQ+UnnL3xxBY/S+crOj3lmEwoFpMa51+MsAJBlOVdniosjs8Q+Yf5Ys71qICZ15rPb1rOty3E2roYMGaDdhXZoAPjpZrgL/G77CojV9AyyjhfhPvpNeupuX3L+Hbyi65aHXD2kYDtl2w7; 25:YC+a/gU/SPsZ2foGkFOITTxMWwBLiSY9XwFwqNLhlVtZr2JADly+NjqPe78NAqPyxTu5WQbAWHXrFlmJjQXHOeIvFKXLJcDhu7luCa7YIXxMR3EqZFx0aSvqgam4QULO3JvDEF+xwva1gLOC8uvzElkoZIo7A4zIQtPzyHXSNgIVgJOIDhhY3h5a4Dkmm4BY4EI4E6NUKnnvn/aIFUKEc3dMap/hxi5iKJYyUM674zq0AUQdBKr759QLHq/iz3zMbJCF32VbiDhwLrZoXW/yqSVkQ6jiI3CIJS4sblY03faElKDttyFHEJ2OthVoQMmnNyTQJNxMsD+XPM8nmOXoWg==; 31:c5RDl/LQEb+vljtr825bLbD8ZRjCBS0WuqIm1JYGEDgKLg+DQZ9RqFZpp5xdkKxn6zNC44KDEJIQK+jMsCvo7JbLhCBZpDKNsv7RjSZXxV6z0XYVQ+PJrPZZOMGr4TFzMCMSlbpH2d0/bcuPUDr6j3kNLxBWr/HvOBGcXDhn3AS7sve8sCuHgTjtTvEr50Ohf0HSZlNBa+JEpPb1l6FwvDnTZ53WadxImhGRXt2wFUw= X-MS-TrafficTypeDiagnostic: PS1PR0601MB1881: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:UqTko/5IZ4FjCN8MUSw2ubdEOghJ+v/E19Qf6wdTvHVQiO8wdbHVqchhUmY/plMSZyB8x35lB6VBdObFdu36pqgqghVptfza46AmCgsAC+GNT5X73k5Pla3J+Y5UJ+A7ddLIo6b3QzrQjIPirFm5ITijbSQEpJE+GDP9MsyC4CwPd6TL+yBqrpxH+WZHDkzd9PxXwhazM0EFWRM4AGVJtB1TBOaEsbcQ+RpsoQbbCdJZF/Cf/mXtcpPAE1KJRKgd8TbuJI1A4CbkNfWq3CHTc9XzPCFJZUISI1zp7E5KkzXgYwfe9SrYQCnvqDBQ04COvRq2cdUzuPKo4VeWoSZsD/k5J+UxK0pnAY79DrkqIiX9g7z0tHh7iFFINhWMyMecgg3TcjMiHe21spJNDGT+89hYa6/qtqooCK3DDacqOpSbmlKN0SaPI/E26R1Q1v93ObHkug5iy5cyxbI1IU9nE925yWYzbOJkqnGEk8RZpOoPPQFxtiDhPmCuXmlB3sXY; 4:dmP00ZIZ3tsgUz8kCH8AbTR2JeHnX1U2rRHKAVkV5q9EI/efiiqK3L/58nK/zyZ5jVxKOMisunwXSe385FDEoVsFavsYcL70RuN8G8WL5Tul0mKLVTwIb5I7ijdW/3e87G7Uusejtl/a/hZMSX7iHK5x9gvWZRrdu138Dxf3k3eKsbZYjlKV6GZSbLNmLp+Qj1+3hb8qDAYxQGUhh+L49g8wiaX54YQ7aEboRF/x8Wl0Fg/6x9phfgtBtYWkCQWz9UJyyt+GGnxivFMF5N8zw0y85GSTtgkctc9w4//NKq+KMljjqDWsMEPXsMYcJL29 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231101)(944501161)(10201501046)(3002001)(6055026)(6041288)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:PS1PR0601MB1881; BCL:0; PCL:0; RULEID:; SRVR:PS1PR0601MB1881; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(346002)(39380400002)(396003)(376002)(39860400002)(189003)(199004)(6116002)(50466002)(6916009)(6486002)(53416004)(47776003)(25786009)(7736002)(2950100002)(305945005)(52116002)(386003)(2906002)(7696005)(59450400001)(86362001)(3846002)(16526019)(68736007)(4326008)(23726003)(186003)(26005)(83506002)(106356001)(8676002)(81166006)(81156014)(16586007)(8936002)(58126008)(105586002)(69596002)(66066001)(36756003)(53936002)(76176011)(316002)(478600001)(5660300001)(97736004)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR0601MB1881; 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; PS1PR0601MB1881; 23:yonEAPD0I3nGMGKhKTlKyv6xs8nBt893kzS4/xM?= =?us-ascii?Q?eAEzl1pfz+u4+d6dLXOTZQs0QLyRxqJJ3/+yoZbDB1GbjUXmrcjCr4X0BYCW?= =?us-ascii?Q?h4B1xT1QZ1JqgtCk9YKKIgWCodD6H0NEsdhME1Y0qFl/y+ltGLwuua0HB/zg?= =?us-ascii?Q?9mTiCsxu0p8tuehYZMsBaxd9T27IBxh7BE7OXXuUWyucBaKOCX037Dt+z1Ek?= =?us-ascii?Q?kX16uIOCdC/LhWQAGSgCqrIJRpMbeoyaueNUrkIDknDKPZuWfaoZ5U1ctx56?= =?us-ascii?Q?wAchHxn8K+0sH6zvNR98qlUA2CBhoNUpYP75f8hqjDqgy3rg5fgWKONeimHC?= =?us-ascii?Q?GJCBxI2k4FkNOGY3s3Y0mpar2ZulJ9rNhch3PW9xQ7jAKVZaCeAxsPgJXSgW?= =?us-ascii?Q?dvWDX4XPAxngPA+buEtrHG+mGRa6z74U7wIcRvtEos6+dzOBrcbYzpzOepH9?= =?us-ascii?Q?mqRxzQWdLmHBhwgcjgky4PWBPB+JDc2r8P0qbGnczgg0P95fD3nz+RLhsIeh?= =?us-ascii?Q?xkvoKqvfSPTajztTmLltLdlwW942PxVXF4dUR+JNRDkhHCEPVATuoycxLsgF?= =?us-ascii?Q?gpUdauW8/nxB76RENMpT7mkbHxDSGBXIUd/t7vTx76K1mb5dVBFaTPdrJL60?= =?us-ascii?Q?nwMLs7ASrVW7DK/hBnfkDTeEbhCFjn6SjdFir13hAKm+VNmmOfMs702WDcFa?= =?us-ascii?Q?TA+TuzFpeDJQsQ5Uft3V9fsrvJwK0Rs5a2zFw65TTp+1u/1/rjO1GoqFZ5av?= =?us-ascii?Q?545EuPX8NtiG6gxrpecbROKsochDHRGk2zTP6xQOdfx5x51I9Qwa7sFUMb5C?= =?us-ascii?Q?3pLCEawcuM1j4hkdu0xeAy1K5s7Z8ih0SRhLf7qJIw+PUp7KCo7B7OKQkS/7?= =?us-ascii?Q?QDUC0DYsfu/mMBBfbRBlbA/dse4MV8XjatofAcIDVGa3+y6RnmHt9nwzOFX7?= =?us-ascii?Q?GXKhspqA4C5phnf4HGw6E9i/gAIcBMkeZe31mXLgwG8C8D9oL0n8JhlkiPTH?= =?us-ascii?Q?ZNpGcr6Mv5evGbHUkgyV49QBIFWIFPv1QnASugzCgmWBcaWPDRlgTwGjXzIS?= =?us-ascii?Q?buqvwbVxE/gNYLvd96kiyqc6fFtQGd5SZVz6KgJklUN/u3oXbWDFhB0Ew6pI?= =?us-ascii?Q?IqwXVMkKP6s7MxdQVRmaUyngkklc3kvfFqPGHKWYtAPKEGWrLzxjQTLa2k6E?= =?us-ascii?Q?77vsgWCvSADhO9S8=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 6:Q186pYLfO2bvlprQC0lyM4S6b1vpl9QjlSHq76sj3hg2L9inrOIExtP44tPPSm+9aepS41kpJ+wpzalKeIAyk3+GU4/TaTcw584AMqv0T3dPhnvNha7RGgV8WKBcElRbu2Aoyj43+QGhH/JBbv7sAu37juuWy373cSCLfh1JSNIxTrest3qJjpAuggfHhHdrb1bdj36gZhri5QSII8cPEpRCVyxk6cpFckeQYZLTbxS/mQo8feo2/Efnjbx8vBa6F2AU4zrSMjkSLeaFggXGHqz2XFsBcz+KAe5X32TtSg9fCX5e1Mb5+60Qia/4x5GaBQuGoSb+7lWx3RDbUWO7br39gtxzDJP1VrfyZkc0ntY=; 5:YpaTf2ofWQqAO+JKDdQUi6A6n77Kz64zsenWhuZc5fGfpjZOrpB3hFwQJEoP/lIaVpoq5dubFA7RHa7uh9AMFpp9xcTcHt98XmAvIMF4AgYoVc2Vu1RT+b2MCH2pY84qPc7AI6obGWr/aUDnyGOOhl7+Bpa+aIQf1W98xgNZv74=; 24:chFoPEPYmAughkVdvO5QuV5QlN+bQNMkfN/72xW/ECqeRQrFGLvpEHHy8wcVr1Eo+815IPEO0gcfsiFXRo4s8PGX2uDGab6H6fccJFyqbzU=; 7:mRqYBifZzNDZMTtxz6f97IFMFMAPlb2r4gq+qPZRd9pCZrYBuR0CbxdzdUiImdie93h+Lls1vkF+ai/Fl93wCzVstfAKI2b/NFoc9ijcwY66YonoCaVxnFUQPobfy6pYJq5y0ZFNQWp82gba+70A4yef8aU0HK1TwlecJU7HPqbkN5r5GsTsjAWcpE1emqPEcDrbPxktsVpD4L4LkSKlOzJ2WJoV26hkB9B1p1DKeb6G36EoJg8gEz5DvYpLTBmq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:TnudBoGdpBrtH0TmB+xZmF4sgwQtlDM7CuTse/P9XUtss/mBSvWmPKm118dPz7q0AkYugs62Lep0aDiDgFAyrI472Dw+oe+BmeEW+UxUlZpWki3Iokc5xwdy3xU04GmD713xGPodbDJdGmnVpNPsy2eMtZbohDT1BrYHX5qxwlY= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 04:13:13.7557 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 74d5dc9d-94ab-42ed-034b-08d566ce9dd0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1881 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH v2 109/186] 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 -> .use_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..b91b8d5f 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, + .use_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);