lkml.org 
[lkml]   [2014]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16 204/357] regmap: Fix handling of volatile registers for format_write() chips
    Date
    3.16-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mark Brown <broonie@linaro.org>

    commit 5844a8b9d98ec11ce1d77610daacf3f0a0e14715 upstream.

    A previous over-zealous factorisation of code means that we only treat
    registers as volatile if they are readable. For most devices this is fine
    since normally most registers can be read and volatility implies
    readability but for format_write() devices where there is no readback from
    the hardware and we use volatility to mean simply uncacheability this means
    that we end up treating all registers as cacheble.

    A bigger refactoring of the code to clarify this is in order but as a fix
    make a minimal change and only check readability when checking volatility
    if there is no format_write() operation defined for the device.

    Signed-off-by: Mark Brown <broonie@linaro.org>
    Tested-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/base/regmap/regmap.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/base/regmap/regmap.c
    +++ b/drivers/base/regmap/regmap.c
    @@ -109,7 +109,7 @@ bool regmap_readable(struct regmap *map,

    bool regmap_volatile(struct regmap *map, unsigned int reg)
    {
    - if (!regmap_readable(map, reg))
    + if (!map->format.format_write && !regmap_readable(map, reg))
    return false;

    if (map->volatile_reg)



    \
     
     \ /
      Last update: 2014-10-04 00:21    [W:4.197 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site