• Mark Brown's avatar
    media: i2c: max2175: Use rbtree rather than flat register cache · 42a55435
    Mark Brown authored
    The max2175 uses a flat register cache but supplies only a single default
    value and has many volatile registers. This is a poor fit for a flat cache
    since the cache will assume a default of zero for any register not yet
    written which can lead to bugs for example when regmap_update_bits()
    suppresses a noop write. A rbtree cache is a much better fit, this will
    only cache default values and values that have been written to the device
    with any reads of uncached values going to the hardware. Convert the driver
    to use a rbtree cache.
    
    Since the device is controlled via I2C the cost of manging the rbtree
    should be immaterial compared to the cost of accessing the device.
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    42a55435
max2175.c 37.7 KB