lkml.org 
[lkml]   [2011]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 7/8] regmap: Implement regcache_cache_bypass helper function
    Date
    Ensure we've got a function so users can enable/disable the
    cache bypass option.

    Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
    ---
    drivers/base/regmap/regcache.c | 19 +++++++++++++++++++
    include/linux/regmap.h | 1 +
    2 files changed, 20 insertions(+), 0 deletions(-)

    diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
    index f91bc7b..eaa2e20 100644
    --- a/drivers/base/regmap/regcache.c
    +++ b/drivers/base/regmap/regcache.c
    @@ -286,6 +286,25 @@ void regcache_cache_only(struct regmap *map, bool enable)
    }
    EXPORT_SYMBOL_GPL(regcache_cache_only);

    +/**
    + * regcache_cache_bypass: Put a register map into cache bypass mode
    + *
    + * @map: map to configure
    + * @cache_only: flag if changes should not be written to the hardware
    + *
    + * When a register map is marked with the cache bypass option, writes
    + * to the register map API will only update the hardware and not the
    + * the cache directly. This is useful when syncing the cache back to
    + * the hardware.
    + */
    +void regcache_cache_bypass(struct regmap *map, bool enable)
    +{
    + mutex_lock(&map->lock);
    + map->cache_bypass = enable;
    + mutex_unlock(&map->lock);
    +}
    +EXPORT_SYMBOL_GPL(regcache_cache_bypass);
    +
    bool regcache_set_val(void *base, unsigned int idx,
    unsigned int val, unsigned int word_size)
    {
    diff --git a/include/linux/regmap.h b/include/linux/regmap.h
    index 76ac255..3daac2d 100644
    --- a/include/linux/regmap.h
    +++ b/include/linux/regmap.h
    @@ -142,5 +142,6 @@ int regmap_update_bits(struct regmap *map, unsigned int reg,

    int regcache_sync(struct regmap *map);
    void regcache_cache_only(struct regmap *map, bool enable);
    +void regcache_cache_bypass(struct regmap *map, bool enable);

    #endif
    --
    1.7.6.4


    \
     
     \ /
      Last update: 2011-09-29 11:41    [W:0.020 / U:63.648 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site