From: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: linux-kernel@vger.kernel.org, Lars-Peter Clausen <lars@metafoo.de>
Subject: [PATCH 3/7] regmap: Add a mutex to guard the sync operation
Date: Wed, 28 Sep 2011 11:43:43 +0100 [thread overview]
Message-ID: <1317206627-6673-3-git-send-email-dp@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <1317206627-6673-1-git-send-email-dp@opensource.wolfsonmicro.com>
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
---
drivers/base/regmap/internal.h | 1 +
drivers/base/regmap/regcache.c | 4 ++++
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h
index 2d51b1b..a0b931d 100644
--- a/drivers/base/regmap/internal.h
+++ b/drivers/base/regmap/internal.h
@@ -32,6 +32,7 @@ struct regmap_format {
struct regmap {
struct mutex lock;
+ struct mutex sync_lock;
struct device *dev; /* Device we do I/O on */
void *work_buf; /* Scratch buffer used to format I/O */
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index f46e247..b843b5f 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -130,6 +130,8 @@ int regcache_init(struct regmap *map)
if (!map->max_register)
map->max_register = map->num_reg_defaults_raw;
+ mutex_init(&map->sync_lock);
+
if (map->cache_ops->init) {
dev_dbg(map->dev, "Initializing %s cache\n",
map->cache_ops->name);
@@ -230,6 +232,7 @@ int regcache_sync(struct regmap *map)
BUG_ON(!map->cache_ops);
+ mutex_lock(&map->sync_lock);
dev_dbg(map->dev, "Syncing %s cache\n",
map->cache_ops->name);
name = map->cache_ops->name;
@@ -254,6 +257,7 @@ int regcache_sync(struct regmap *map)
}
out:
trace_regcache_sync(map->dev, name, "stop");
+ mutex_unlock(&map->sync_lock);
return ret;
}
--
1.7.6.4
next prev parent reply other threads:[~2011-09-28 10:44 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-28 10:43 [PATCH 1/7] regmap: Fix regcache_sync generic implementation Dimitris Papastamos
2011-09-28 10:43 ` [PATCH 2/7] regmap: Modify map->cache_bypass directly Dimitris Papastamos
2011-09-28 12:56 ` Mark Brown
2011-09-28 10:43 ` Dimitris Papastamos [this message]
2011-09-28 12:52 ` [PATCH 3/7] regmap: Add a mutex to guard the sync operation Mark Brown
2011-09-28 14:24 ` Dimitris Papastamos
2011-09-28 15:19 ` Mark Brown
2011-09-28 15:52 ` Dimitris Papastamos
2011-09-28 10:43 ` [PATCH 4/7] regmap: Save/restore the bypass state upon syncing Dimitris Papastamos
2011-09-28 10:43 ` [PATCH 5/7] regmap: Grab the lock in regcache_cache_only() Dimitris Papastamos
2011-09-28 12:57 ` Mark Brown
2011-09-28 10:43 ` [PATCH 6/7] regmap: Implement regcache_cache_bypass helper function Dimitris Papastamos
2011-09-28 10:43 ` [PATCH 7/7] regmap: Ensure we scream if we enable cache bypass/only at the same time Dimitris Papastamos
2011-09-28 12:56 ` [PATCH 1/7] regmap: Fix regcache_sync generic implementation Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1317206627-6673-3-git-send-email-dp@opensource.wolfsonmicro.com \
--to=dp@opensource.wolfsonmicro.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=lars@metafoo.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.