mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-18 10:56:14 +00:00
regmap: Let users check if a register is cached
The HDA driver has a use case for checking if a register is cached which it bodges in awkwardly and unclearly. Provide an API which allows it to directly do what it's trying to do. Reviewed-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20230717-regmap-cache-check-v1-1-73ef688afae3@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
47ee108a11
commit
78908f45cc
@ -561,6 +561,29 @@ void regcache_cache_bypass(struct regmap *map, bool enable)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(regcache_cache_bypass);
|
||||
|
||||
/**
|
||||
* regcache_reg_cached - Check if a register is cached
|
||||
*
|
||||
* @map: map to check
|
||||
* @reg: register to check
|
||||
*
|
||||
* Reports if a register is cached.
|
||||
*/
|
||||
bool regcache_reg_cached(struct regmap *map, unsigned int reg)
|
||||
{
|
||||
unsigned int val;
|
||||
int ret;
|
||||
|
||||
map->lock(map->lock_arg);
|
||||
|
||||
ret = regcache_read(map, reg, &val);
|
||||
|
||||
map->unlock(map->lock_arg);
|
||||
|
||||
return ret == 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(regcache_reg_cached);
|
||||
|
||||
void regcache_set_val(struct regmap *map, void *base, unsigned int idx,
|
||||
unsigned int val)
|
||||
{
|
||||
|
@ -1287,6 +1287,7 @@ int regcache_drop_region(struct regmap *map, unsigned int min,
|
||||
void regcache_cache_only(struct regmap *map, bool enable);
|
||||
void regcache_cache_bypass(struct regmap *map, bool enable);
|
||||
void regcache_mark_dirty(struct regmap *map);
|
||||
bool regcache_reg_cached(struct regmap *map, unsigned int reg);
|
||||
|
||||
bool regmap_check_range_table(struct regmap *map, unsigned int reg,
|
||||
const struct regmap_access_table *table);
|
||||
|
Loading…
x
Reference in New Issue
Block a user