lkml.org 
[lkml]   [2011]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/7] regmap: Make reg_config reg_defaults const
    Date
    The reg_defaults field usually points to a static per driver array, which should
    not be modified. Make requirement this explicit by making reg_defaults const.
    To allow this the regcache_init code needs some minor changes. Previoulsy the
    reg_config was not available in regcache_init and regmap->reg_defaults was used
    to pass the default register set to regcache_init. Now that the reg_config is
    available we can work on it directly.

    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    ---
    drivers/base/regmap/regcache.c | 5 ++---
    include/linux/regmap.h | 2 +-
    2 files changed, 3 insertions(+), 4 deletions(-)

    diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
    index 0ad6cfb..d687df6 100644
    --- a/drivers/base/regmap/regcache.c
    +++ b/drivers/base/regmap/regcache.c
    @@ -108,7 +108,6 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
    return -EINVAL;
    }

    - map->reg_defaults = config->reg_defaults;
    map->num_reg_defaults = config->num_reg_defaults;
    map->num_reg_defaults_raw = config->num_reg_defaults_raw;
    map->reg_defaults_raw = config->reg_defaults_raw;
    @@ -127,10 +126,10 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
    * won't vanish from under us. We'll need to make
    * a copy of it.
    */
    - if (map->reg_defaults) {
    + if (config->reg_defaults) {
    if (!map->num_reg_defaults)
    return -EINVAL;
    - tmp_buf = kmemdup(map->reg_defaults, map->num_reg_defaults *
    + tmp_buf = kmemdup(config->reg_defaults, map->num_reg_defaults *
    sizeof(struct reg_default), GFP_KERNEL);
    if (!tmp_buf)
    return -ENOMEM;
    diff --git a/include/linux/regmap.h b/include/linux/regmap.h
    index 1e4ec2b..458f15f 100644
    --- a/include/linux/regmap.h
    +++ b/include/linux/regmap.h
    @@ -83,7 +83,7 @@ struct regmap_config {
    bool (*precious_reg)(struct device *dev, unsigned int reg);

    unsigned int max_register;
    - struct reg_default *reg_defaults;
    + const struct reg_default *reg_defaults;
    unsigned int num_reg_defaults;
    enum regcache_type cache_type;
    const void *reg_defaults_raw;
    --
    1.7.7.1



    \
     
     \ /
      Last update: 2011-11-16 16:31    [W:7.566 / U:0.952 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site