From patchwork Tue Nov 14 01:04:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10056957 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 E3BBF6023A for ; Tue, 14 Nov 2017 01:04:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D4CD62871A for ; Tue, 14 Nov 2017 01:04:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C85AF28E58; Tue, 14 Nov 2017 01:04:43 +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 80C792871A for ; Tue, 14 Nov 2017 01:04:42 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id EF1D92673E8; Tue, 14 Nov 2017 02:04:34 +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 7B5722673E8; Tue, 14 Nov 2017 02:04:33 +0100 (CET) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 54E67267442 for ; Tue, 14 Nov 2017 02:04:29 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie2.idc.renesas.com with ESMTP; 14 Nov 2017 10:04:28 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 7DBB96873C; Tue, 14 Nov 2017 10:04:28 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.44,392,1505746800"; d="scan'208";a="262177755" Received: from mail-hk2apc01lp0212.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.212]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 14 Nov 2017 10:04:27 +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=c+pNhKfrKHsXVXCobyJGf/XyoaBD8Wahnr9QoJTJTWg=; b=cIwkzGbS0nmkA76j9HQN4IRv4+QMQvNONiajnKwEn0tEEhJsU9R5q9Vx7MIk40KCd8VvnJ/WSM/jUZCyyx08ejBnmu+HUtc6wempItmzCEV1BKSCviClR8qPRumEnbpIAKk/dHgAuWNDaeJ+cQZywve82I2Vp2JjuUm+7+eXVzc= 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.197.13; Tue, 14 Nov 2017 01:04:25 +0000 Message-ID: <87inedwueq.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: <87lgj9wugi.wl%kuninori.morimoto.gx@renesas.com> References: <87lgj9wugi.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Tue, 14 Nov 2017 01:04:25 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: HK2PR04CA0051.apcprd04.prod.outlook.com (2603:1096:202:14::19) To KL1PR0601MB1880.apcprd06.prod.outlook.com (2603:1096:802:8::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ecb0672a-249b-43f6-ef2f-08d52afba6a0 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603258); SRVR:KL1PR0601MB1880; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 3:/apzMKcV5RtVlrCw0DQJbJxkF2+J4//+hZAzAofhQeLN7xqr1D5pX+xBVcMCyogRsbgA0pSXZD5XqUrBN1wjo38jHHo4OXIdgfpWFp+KFOLtc0HrExj79fOKZNEG963Riwz+6Lk0kuMYiuzThwKIZAtngfBnXor/IrR0Tj59IVJQ+/Bc8i0wmHgwagjTIVgowt16nS+NvmxBHWinnKhDdPTVu9MB0YNbN5kkhmknz7Mjqu1B33FMeMPopIdj3Veq; 25:DysFxu1iBOzecUgGYZwHIizl2UWDsrQAkQADy/l06QvI+L1Hg41MH0lekMR5Q9fgfwAAa4y7SNZA74sfbY5KCM/ynjnjN2lLog+yDoyM3QWOSvuWemDHwelMB8oBgSQCf7+ZLquokhzHDTv9+E8fM2m3giVo/izQ6UQvJoC90Zb1fMmmE2kzj2sGSqKbLZuSlGHN/bgFeroSPOQUEV7a3QdqWpr4PT1WCrdhYAabHSVD1Twi84aek7XixPRCiymxqKUrE3CDJ9IfI90G6xKcNTFfmVlZ3YiPTcN+cGIDW4Ed7SReVUQplG8waEGsq/uGukCd3btACvsPivEznXNdvA==; 31:WHFlEGnZla9jGkva2eeSadp17liXxA6E6YwxSoM1KafRazIibNeCBk26SKWjn7J8hqpmpX//yMkXQBH11ATeQWXQzXTSzedl/uWhS397ZjW/ZwlxvdZRLxQd/fYxMYoZ7RsB7UM37jVO+F5yDXHG+/oKr5iqaMj+S5zCSfnu6BpAFTN2M5q1ZSSHCj8sadWRbUjGYFbEuuhz+I7fLsthrzIIc/GnPsKMJmMDrPOFf34= 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:cJkum8ATfmRQN1Zf2DvkD4wN/olySYkcY2kRF5qzqnwWqMqQySk/QG/X7icQ0WUfvpaV8w/0Nn8qYVuSdKwOkDkyXLg2iJl7ebRkX6s822z/NYwhCILrQhAgLeMKom3v7iFUNqjQiRflae8rMRpH4NIME1SdUQ67Ljbo+5fKf5S2FpyuTwdQggedwBrsMEO0WUX8xrPuOi/k07hGmGEZQTiQwu8P5/k0c5Jr1zJx5QUJTsIWB0Q80V+R82DkPrL0T3qomLA3VqvkZybQEHuroTn2/+OaoCoaXo+30EUjqpNgJoXjA6VUCL4R1vc89WxJC6n3NWZbJeTpW+SvwmIoULDwYQMXkLoupQkuS8QEvJt6pQRK9skqMkpNOcRs9nD0n92UI6AwC19sqPVJDdRHnr8CfqdO9URfZbOLeXzbvtRHxL+c2xmcQVMmYPGJ2zq+iTRYyZAfJ4V2Z6HCJDsJwWWR1dWhbGrkurRj1FNqLhh5JPrRuuojqH0ELQMe5RqC; 4:Vn6TFHQEA6exsQ4tJXbgfNP7mHLIk3auX3Ykjz51gVSWDXaSeCiROK3G+jyTevlC/uC2mOpWwxRDu9+yC4DjEQJYOPnvMpAHZR5K8Y77FOHtwNwDmsss07l1Q69sB1GT1zsLgLrzEwlzsnkuQwCYSNSMdJlLa50DH2OZiK3JLBIYovyBKE4x6gcQS58y9Fo3OBN1TVeNmBk8V10RY8lJPC0FAeFUY7V1f9T4bW467VMTUx30P8S3K78JGfvZUphBoEPWztwiM9wHg2sj3dPCgQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231022)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123558100)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:KL1PR0601MB1880; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:KL1PR0601MB1880; X-Forefront-PRVS: 04916EA04C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(39860400002)(376002)(346002)(189002)(199003)(3846002)(33646002)(83506002)(105586002)(58126008)(478600001)(106356001)(316002)(25786009)(101416001)(7736002)(16586007)(305945005)(76176999)(54356999)(53416004)(50466002)(50986999)(86362001)(54906003)(97736004)(6116002)(53936002)(23726003)(66066001)(47776003)(5660300001)(2950100002)(6916009)(189998001)(16526018)(6486002)(8936002)(36756003)(81166006)(81156014)(2906002)(8676002)(4326008)(69596002)(68736007)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:KL1PR0601MB1880; 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; KL1PR0601MB1880; 23:Ei6iT4dzEdrGhsSXbVuePTd7YkGVRMJdP33LAvY?= =?us-ascii?Q?0kmI1E++GV406WH3o3scULoY277otYGmZrwLnEzTLvUOfrUbC8aFtp+M2fiA?= =?us-ascii?Q?oFBoNrxbB8POiA+LbUeecWN+3jPQTBLmLFI88qTOL7TBB3T0Ls/DCGJmIGSL?= =?us-ascii?Q?eTyQFmkMWDxFR+VJ1tW/h6gTh4eSk5w6x2KwWFhiLSslc5n4L6DQPIc34pBL?= =?us-ascii?Q?/E79/gtCK67LTHWryWoTeq9a3X7oidZ43okzXM+biQ9vkEp2ykI+hLJrkErT?= =?us-ascii?Q?iI0QEIMDGx/MoEqT+KVTecpyMHR0dgSU7aU+yDgLnfFyn6gXy96zu55tGMRT?= =?us-ascii?Q?ZwYwRwtoVFcnC05JUsSJkFFVQgs+BesM1wMpmYf4sd7NVRZVHMPD+JYulUYt?= =?us-ascii?Q?JpIO0uBNTKWLZ/MTFelzMhZ600gSkgqzQgTIS7CIwcKyMXsVmhWUpuet/oVM?= =?us-ascii?Q?h6hV80Tlp+I8vx543As3GUPMcjfBsCO66h06Vutuq5rEc0d2NtNect8jmyZn?= =?us-ascii?Q?ZjKE3JyvbQo2qUz/Fy5qZCYDkY4VBQgEYRfop2N+zypdWWx9tC33Slm7bc7I?= =?us-ascii?Q?kZ18FeMAtOEOR78xw8+y+O+4kMxUea/gJZmQAirYUF3ihrCzlJVp0Jv1VyIi?= =?us-ascii?Q?gGNTB+Ny0M0hGsZc1tWpqLEeHYVN/rfB3u1B3X5ksvHh4YHcq6jNyCbH/2/X?= =?us-ascii?Q?mhUxEMDKTaBF/7D4XfXkViqeShL2rdV87R6xxqOt37tOm95hJMqYQI207bX0?= =?us-ascii?Q?qFYL2Zeu8IiOzddQc9seM51cvKTsdEQIj6SvExNh2ZxLvFdPoECxjdCEMnu0?= =?us-ascii?Q?UMThyYDeNtoIKa41etF8u//Ah7cyqo6n+reGSxJRQSvwtBBOgMvIVsbhg4+p?= =?us-ascii?Q?54tpsmuhK6NxswRgavYPTD6C4FFDLOi+kB47i2yp5omkSn+kn9zLQ2bsZ/vj?= =?us-ascii?Q?zoBZVvnpxgj172+pb02yWC3Ge2hugT+zStmou03GBWF3kuVHKhMPq+MXohiJ?= =?us-ascii?Q?kvDsdOM0wuNRUicAH7ITCgsAOibnXe7n+QIfwMGrHcfU4uxY3L1gOExLtPfs?= =?us-ascii?Q?e0ysI0iMbKDdK6QvZOUCpVAZyiDnzPyggiAO2CFEOUy6/4GFKtF7Ua60+pDl?= =?us-ascii?Q?BCGVZ74EJlunV8AZWmrm4lGfH4l2FstAX?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 6:xHnC0bSYPIO3L/IpOqeT1CBvnpjuaIYMTQmwXUlDi65rotYpcL8zVgKUD9hJB3VVnb3zmZgpl5WPYNlpxEWkeGb7LYtEmRxankdBJvmiJ0R58M0nFXXEXGLz+ecoa7Vt64WqxrmJ5fMHAMNgIMMl8cmJ+ewiwsfKMvI/KJwwAm0sbWsNPmS/cmVBDqT8x5k9zew1ehANsmxnFEhw1rO4XR52uvuAC7wS5JkhP5s3J973VIQ6APaIdxmfQLlflqE0fh7C8lUDVB65KMWIB/uMU99+urzzk2i6GpAAXMaCnpuEai4yl6cNnmjmsbnHf/e12Su+weiPhpqlMW1tZAqdiUuTU9hv0tsxTeLrcABw4rA=; 5:K3ro7ukxyW+v/XgTO58lP0Q8I++eVnHb2YhKOhnWWMDBFhmbSmywrIdGpUr/irQunwuGWamIrujl83AzGUeMipbQY5IInbZGk9gpMuM/K4+6oFC3ArjRp6V2yiqBYvLoCrqJP1pQykJaPJT80tGZU4SGlF5MxxF725j7spPb+Mg=; 24:E+4wSkQDE+h8vrpTM9X8iBfQgynKysWjdBtqyFNQCDvFn6gdbtAKxF6sMfbfVKAbRVyK/NpMyqQ/dm2IoZuneNj0pdWpaSteeb6cGOxoOwM=; 7:71pof/mOKw+7LaNvB80yEFuqY5xosJVVZSII6ThNETpUVRnlmDJlwIK/SxEzDJa8y6vZKebtGiVvXIsEtl6wg8UQq/BfYv9l7rA1/pd1DjKi6Alqql+dJ2cyt+7OnC74KfK+86Z+dJFNxKY5RMtOz/qKenTvtKnBaOhE6LSSyFmZakY/Ha6hlt0zvO2m2aT7kDY16S+sP/snIkAfqlSxIVS6l8+N5E3j8PcqmZJaxiVZbFpGgWvldJX7m68wl3D5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1880; 20:X1jj6bQQRGyFvQ5VOuzvr2Y2biIonwPtN9F/yu9GLqzjwxICgckpeoBputRnfr1UrzAXh1vth22iPgTHiB9hIo0ZVJCzc9kA/N/DfbGPO10BgrDGYw/aaHg7VgTWgCE4jZcsnXs3mtUbamgRwIfqF7xrbWS9imbzqO635hJD6tc= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2017 01:04:25.5703 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ecb0672a-249b-43f6-ef2f-08d52afba6a0 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 2/5] ASoC: use internal reg_cache on tlv320dac33 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 Codec reg_cache is legacy feature and very few driver only are using it. But, ALSA SoC framework needs to support it. Codec will be merged into Component in the future, so, let's remove legacy and unused feature from framework. This patch implements ALSA SoC reg_cache feature into driver, and don't use ALSA SoC framework's feature. Signed-off-by: Kuninori Morimoto --- sound/soc/codecs/tlv320dac33.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c index 80a2641..675f5b1 100644 --- a/sound/soc/codecs/tlv320dac33.c +++ b/sound/soc/codecs/tlv320dac33.c @@ -106,6 +106,7 @@ struct tlv320dac33_priv { int mode1_latency; /* latency caused by the i2c writes in * us */ u8 burst_bclkdiv; /* BCLK divider value in burst mode */ + u8 *reg_cache; unsigned int burst_rate; /* Interface speed in Burst modes */ int keep_bclk; /* Keep the BCLK continuously running @@ -173,7 +174,8 @@ struct tlv320dac33_priv { static inline unsigned int dac33_read_reg_cache(struct snd_soc_codec *codec, unsigned reg) { - u8 *cache = codec->reg_cache; + struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec); + u8 *cache = dac33->reg_cache; if (reg >= DAC33_CACHEREGNUM) return 0; @@ -183,7 +185,8 @@ static inline unsigned int dac33_read_reg_cache(struct snd_soc_codec *codec, static inline void dac33_write_reg_cache(struct snd_soc_codec *codec, u8 reg, u8 value) { - u8 *cache = codec->reg_cache; + struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec); + u8 *cache = dac33->reg_cache; if (reg >= DAC33_CACHEREGNUM) return; @@ -243,19 +246,6 @@ static int dac33_write(struct snd_soc_codec *codec, unsigned int reg, return ret; } -static int dac33_write_locked(struct snd_soc_codec *codec, unsigned int reg, - unsigned int value) -{ - struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec); - int ret; - - mutex_lock(&dac33->mutex); - ret = dac33_write(codec, reg, value); - mutex_unlock(&dac33->mutex); - - return ret; -} - #define DAC33_I2C_ADDR_AUTOINC 0x80 static int dac33_write16(struct snd_soc_codec *codec, unsigned int reg, unsigned int value) @@ -1432,13 +1422,9 @@ static int dac33_soc_remove(struct snd_soc_codec *codec) } static const struct snd_soc_codec_driver soc_codec_dev_tlv320dac33 = { - .read = dac33_read_reg_cache, - .write = dac33_write_locked, .set_bias_level = dac33_set_bias_level, .idle_bias_off = true, - .reg_cache_size = ARRAY_SIZE(dac33_reg), - .reg_word_size = sizeof(u8), - .reg_cache_default = dac33_reg, + .probe = dac33_soc_probe, .remove = dac33_soc_remove, @@ -1497,6 +1483,13 @@ static int dac33_i2c_probe(struct i2c_client *client, if (dac33 == NULL) return -ENOMEM; + dac33->reg_cache = devm_kmemdup(&client->dev, + dac33_reg, + ARRAY_SIZE(dac33_reg) * sizeof(u8), + GFP_KERNEL); + if (!dac33->reg_cache) + return -ENOMEM; + dac33->i2c = client; mutex_init(&dac33->mutex); spin_lock_init(&dac33->lock);