• Charles Keepax's avatar
    regmap: Format data for raw write in regmap_bulk_write · 0812d8ff
    Charles Keepax authored
    In the case were the bulk transaction is split up into smaller chunks
    data is passed directly to regmap_raw_write. However regmap_bulk_write
    uses data in host endian and regmap_raw_write expects data in device
    endian. As such if the host and device differ in endian the wrong data
    will be written to the device. Correct this issue using a similar
    approach to the single raw write case below it, duplicate the data
    into a new buffer and use parse_inplace to format the data correctly.
    
    Fixes: adaac459 ("regmap: Introduce max_raw_read/write for regmap_bulk_read/write")
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    0812d8ff
regmap.c 71.4 KB