mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-16 22:38:04 +00:00
ebbeb55561
Also add script used to generate patches and SRC_URI Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
54 lines
2.2 KiB
Diff
54 lines
2.2 KiB
Diff
From 8aff5c7aa69b29b924063b4424cf5ff5823b3fd1 Mon Sep 17 00:00:00 2001
|
|
From: Lars-Peter Clausen <lars@metafoo.de>
|
|
Date: Wed, 15 Feb 2012 10:23:25 +0100
|
|
Subject: [PATCH 08/72] regmap: Fix cache defaults initialization from raw
|
|
cache defaults
|
|
|
|
commit 61cddc57dc14a5dffa0921d9a24fd68edbb374ac upstream.
|
|
|
|
Currently registers with a value of 0 are ignored when initializing the register
|
|
defaults from raw defaults. This worked in the past, because registers without a
|
|
explicit default were assumed to have a default value of 0. This was changed in
|
|
commit b03622a8 ("regmap: Ensure rbtree syncs registers set to zero properly").
|
|
As a result registers, which have a raw default value of 0 are now assumed to
|
|
have no default. This again can result in unnecessary writes when syncing the
|
|
cache. It will also result in unnecessary reads for e.g. the first update
|
|
operation. In the case where readback is not possible this will even let the
|
|
update operation fail, if the register has not been written to before.
|
|
|
|
So this patch removes the check. Instead it adds a check to ignore raw defaults
|
|
for registers which are volatile, since those registers are not cached.
|
|
|
|
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
|
|
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
drivers/base/regmap/regcache.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
|
|
index 666f6f5..64004b0 100644
|
|
--- a/drivers/base/regmap/regcache.c
|
|
+++ b/drivers/base/regmap/regcache.c
|
|
@@ -54,7 +54,7 @@ static int regcache_hw_init(struct regmap *map)
|
|
for (count = 0, i = 0; i < map->num_reg_defaults_raw; i++) {
|
|
val = regcache_get_val(map->reg_defaults_raw,
|
|
i, map->cache_word_size);
|
|
- if (!val)
|
|
+ if (regmap_volatile(map, i))
|
|
continue;
|
|
count++;
|
|
}
|
|
@@ -69,7 +69,7 @@ static int regcache_hw_init(struct regmap *map)
|
|
for (i = 0, j = 0; i < map->num_reg_defaults_raw; i++) {
|
|
val = regcache_get_val(map->reg_defaults_raw,
|
|
i, map->cache_word_size);
|
|
- if (!val)
|
|
+ if (regmap_volatile(map, i))
|
|
continue;
|
|
map->reg_defaults[j].reg = i;
|
|
map->reg_defaults[j].def = val;
|
|
--
|
|
1.7.9.4
|
|
|