From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756673AbbFPIxc (ORCPT ); Tue, 16 Jun 2015 04:53:32 -0400 Received: from relmlor2.renesas.com ([210.160.252.172]:13233 "EHLO relmlie1.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756591AbbFPIxP (ORCPT ); Tue, 16 Jun 2015 04:53:15 -0400 X-IronPort-AV: E=Sophos;i="5.13,624,1427727600"; d="scan'";a="188414728" Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; Message-ID: <87zj40hw9i.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 4/4][RFC] ASoC: rsnd: gen: add rsnd_force_write() User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown CC: Linux-Kernel , Greg KH , shiiba In-Reply-To: <87616ojaw9.wl%kuninori.morimoto.gx@renesas.com> References: <87616ojaw9.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset="US-ASCII" Date: Tue, 16 Jun 2015 08:53:11 +0000 X-Originating-IP: [211.11.155.132] X-ClientProxiedBy: TY1PR01CA0057.jpnprd01.prod.outlook.com (25.164.162.167) To SINPR06MB316.apcprd06.prod.outlook.com (10.141.115.155) X-Microsoft-Exchange-Diagnostics: 1;SINPR06MB316;2:Os0lhNEcT4qtBdNEjXuwqXOUEokFUn/S8WOcdKUwxtLDsZMf6Etca39gnoWMXJfQ;2:HSD37h2RyFDX6luTGJS6KJspk08lkRKy9rdEBj2btcPrDPnOval3df59ECyuVJLU5RnVLhwMafRjx3kEtah5MN+rwqGxaVI6K89sNkR/tcB5BTW60d4YA4ZWdp2YsQJbfc4zXgdLPikDknJTrPDewQ==;6:cDFqQ0GILt/8pc0ScQB8tMSeok8thqDaYqKs5xuKCoAvzWTlZxFuPaNHyp28Qgb9P4b5Nyu7DJ1fQIczjcNuqWaC22AQaweyS89BXhoo8JwMp4UN04ntdDkpQMD40DCuDbxU7sTqHW+dViyJOxHCAluXLSpc2hqSJ6RaX/TbZrUAjucFkO398YKpzBqK2JYIvtSc6mavnyETX3Eu46HJuxjxvH8SMFgBAHB39gSRgy8rOViQAT3AovJjnEZsIxixxFWoPMjghl/pqJIBtVfaeq7mcSyAfuSqqKP4WiXqZoVytScbxymetGehSf3wggqywz8udaMDhCdtCVlTCAaWtOVlOiB+aKngzbRhOZdDH8SnvsUT6xF8f11ta9GuqFM5U1dcuOtyzykR1WDJrIaIsQv3yJnRFdAiyj+Xq+JERxHBAPEQcamfzofqcDTY6mCy3dZ3MuDNPbHnb8CE86dts/DNm0ZoWutw42hXkzTIrk1usltsF7Kt7SBMW0/rQrFq X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SINPR06MB316; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(520003)(5005006)(3002001);SRVR:SINPR06MB316;BCL:0;PCL:0;RULEID:;SRVR:SINPR06MB316; X-Microsoft-Exchange-Diagnostics: 1;SINPR06MB316;3:YV8LT/a9nZvMA5moSJaT5BNP8iu1NnfG7httfRLJxP9r2ycQXwcEvcrFViqJCIJ1jfPAMFd0uEGrpltOLnBzUVDI+HGhxDNgn4q3lO6qcsAeFfNVrJLS//Th8ip7HzDPv85BCQRo9KsbaeJW+hrNqGNRNKLw84RWspX18i4wnStQi1AnkfJ3CxgfVzwzK4Z6P9+eT7/twf4zZQ/Wp9hNzdKxzbPSmGYMFlkp3QgUillBsrd5RPrpI+zGq2jwVzfDt2lWjZ0alUZvPAuW5jw+5e8nH7PmZ4QVkhMOcFTttz61TOHgd3PgUVUiWQPwJIK1 X-Forefront-PRVS: 06098A2863 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(66066001)(47776003)(86362001)(5001920100001)(5001960100002)(2950100001)(77156002)(122386002)(92566002)(40100003)(189998001)(110136002)(107886002)(46102003)(87976001)(19580405001)(77096005)(19580395003)(50986999)(83506001)(46406003)(53416004)(229853001)(33646002)(42186005)(50466002)(54356999)(76176999)(4001350100001)(23726002)(36756003)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:SINPR06MB316;H:morimoto-PC.renesas.com;FPR:;SPF:None;MLV:sfv;LANG:; X-Microsoft-Exchange-Diagnostics: 1;SINPR06MB316;9:htYGt3ZRAWfttpi7ajPnTw+BNTrdHOstJhVBpR0uyVLfSavtMxNN9uW8XgbV4U5bBNB6D9ojwcnnXQdDJ6O0beCcZIINYOtUy0P4WNDYinZeax66MsVuiHtJtY4w9dfAehMsKX5ih0d8MMJatT4n+2COsBaEpAFu3CzppDdF5KzKyLObpvPhoDDAWmrVz5fnbTtMTVa8FoD6Fp6cBagH5jkq307ltCuxylb9YNSbjQZtjdLS7Ncli+QkRWAU7AKBmJ8tRwyUMDE4Fe/QCrJgfvI2fVe4P1bmirLtbxnNW9Biy4amw8EAXhOVrcmYvLf4vpXvkk3TcZt820pJgGkLr8pHJBD2jKowxj/FlWR5mU7uJhfLcLsgHBt4sMQeKS+HulLooJiNONXslbyxbvPFcRkuIpTKwW7go8BtbGds3fP0igAEpV9A8RjxSGismMq6VHOq/n0EUee8ev/7zXXPmpItMHQGA1p5xfIza8xTq/U9D+MvQavfnx/d5cBG8BKHsyBA1JZLQhclmm9OOKyPd0brKz+txlp7Gxb8fw1vXBdOBIjIfsbfdkjf9mZHg+OmHBhsTpWK48vQLGSqFSWlH7RIylPyYwU9i8mr0gFh0Wpl9Z/R0i4uwegJ+Imxn/HITo7FKVBBHnLOYH70bwCY8xV2oWEQt/m6eGtbt2V9+4kNjAYcJQ+lf4JSJJHDOOAl9ls3aAuWWp4dV9y1qnVVbuOE+Tw4CMCa+qAikiSDadMnqeiKeH44MXQMcpbDixilPAhpnMLWnDs00zktzkf0SgcdiE8e3dNI3k6PAWokNH0irIR15GXazrPWXxHJ0fJ1/XFZQPGHHXE63VHIWpfw0YvV90NXeoQkD+8Tf/IMbH2cpdli+dMuou5sxqCkpT7Mhf2toIz1MYuEPklqatbntH5i8WJoFlT0JvTpdxYGO5s= X-Microsoft-Exchange-Diagnostics: 1;SINPR06MB316;3:xTGrqRioAzjJjMAKVt8/rKz+B41VRov/FBzpYQj8HNiFBGVdg7EeY4bLlAxXCfPQRVcO2+XREXNSw4e9jlPQBuVkcGx8VgrernTHydjbtTI9CrHzoj3KpRPu3JDyx53VkDq222am7Lw+0P48J+FlyA==;10:Ui4iqaGHW9CSTyhsZpSqdabb3PzeOL+MF/MdS5qQsqFASmLUesC4bCIkE1JCP3F+L4PUbMApIxrPLplB+sMG8e+uP37TZCFb9sZZtFwtBfo=;6:SRnmHbOGIHP44T40J+xfV/yTbhetW6AVm2fhz0va4dNbGmGROL+MfrpvvmOXtKPiAIYndy3Ncv1YBpYnJ9riw4OSfc6h4NEqewHG53OKTYZ+n+5ck6+GpcT/VKBdCLwApAL5hrdB8E7MZ0hZC5f6Ug== X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2015 08:53:11.1401 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SINPR06MB316 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org rsnd_force_write() is similar to rsnd_write(), but rsnd_force_write() write data to register even though it is same value. Signed-off-by: Kuninori Morimoto --- sound/soc/sh/rcar/gen.c | 16 ++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/sound/soc/sh/rcar/gen.c b/sound/soc/sh/rcar/gen.c index 8c7dc51..48f704b 100644 --- a/sound/soc/sh/rcar/gen.c +++ b/sound/soc/sh/rcar/gen.c @@ -103,6 +103,22 @@ void rsnd_write(struct rsnd_priv *priv, regmap_fields_write(gen->regs[reg], rsnd_mod_id(mod), data); } +void rsnd_force_write(struct rsnd_priv *priv, + struct rsnd_mod *mod, + enum rsnd_reg reg, u32 data) +{ + struct device *dev = rsnd_priv_to_dev(priv); + struct rsnd_gen *gen = rsnd_priv_to_gen(priv); + + if (!rsnd_is_accessible_reg(priv, gen, reg)) + return; + + dev_dbg(dev, "w %s[%d] - %4d : %08x\n", + rsnd_mod_name(mod), rsnd_mod_id(mod), reg, data); + + regmap_fields_force_write(gen->regs[reg], rsnd_mod_id(mod), data); +} + void rsnd_bset(struct rsnd_priv *priv, struct rsnd_mod *mod, enum rsnd_reg reg, u32 mask, u32 data) { diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index 03ff071..9760183 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -157,12 +157,16 @@ struct rsnd_dai_stream; rsnd_read(rsnd_mod_to_priv(m), m, RSND_REG_##r) #define rsnd_mod_write(m, r, d) \ rsnd_write(rsnd_mod_to_priv(m), m, RSND_REG_##r, d) +#define rsnd_mod_force_write(m, r, d) \ + rsnd_force_write(rsnd_mod_to_priv(m), m, RSND_REG_##r, d) #define rsnd_mod_bset(m, r, s, d) \ rsnd_bset(rsnd_mod_to_priv(m), m, RSND_REG_##r, s, d) u32 rsnd_read(struct rsnd_priv *priv, struct rsnd_mod *mod, enum rsnd_reg reg); void rsnd_write(struct rsnd_priv *priv, struct rsnd_mod *mod, enum rsnd_reg reg, u32 data); +void rsnd_force_write(struct rsnd_priv *priv, struct rsnd_mod *mod, + enum rsnd_reg reg, u32 data); void rsnd_bset(struct rsnd_priv *priv, struct rsnd_mod *mod, enum rsnd_reg reg, u32 mask, u32 data); u32 rsnd_get_adinr(struct rsnd_mod *mod); -- 1.9.1