regmap: Try cached read before checking if a hardware read is possible
For some register format types we do not provide a parse_val so we can not do a hardware read. But a cached read is still possible, so try to read from the cache first, before checking whether a hardware read is possible. Otherwise the cache becomes pretty useless for these register types. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
720e4616e8
Коммит
19254411db
|
@ -434,15 +434,15 @@ static int _regmap_read(struct regmap *map, unsigned int reg,
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!map->format.parse_val)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (!map->cache_bypass) {
|
if (!map->cache_bypass) {
|
||||||
ret = regcache_read(map, reg, val);
|
ret = regcache_read(map, reg, val);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!map->format.parse_val)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
if (map->cache_only)
|
if (map->cache_only)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче