• Han Nandor's avatar
    regmap: verify if register is writeable before writing operations · 8b9f9d4d
    Han Nandor authored
    regmap provides a couple of ways to validate the register range used.
    a) maxim allowed register, b) writable/readable register tables,
    c) callback function that can be provided by the driver to validate
    a register. regmap framework should verify if registers
    are writeable before every write operation. However this doesn't
    seems to happen in every situation.
    
    The method `_regmap_raw_write_impl` is only using the `writeable_reg`
    callback to verify if register is writeable, ignoring the other two.
    This can lead to undefined behaviour since this allows to write to
    registers that could be declared un-writeable by using any other
    option.
    
    Change `_regmap_raw_write_impl` to use the `regmap_writeable` method
    to verify if registers are writable before the write operation.
    Signed-off-by: default avatarNandor Han <nandor.han@vaisala.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    8b9f9d4d
regmap.c 74.3 KB