summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.cirrus.com>2018-02-12 19:15:46 +0100
committerMark Brown <broonie@kernel.org>2018-02-13 13:27:44 +0100
commit9ae27a8d1f3ebff09191fb8cb1341414547293b2 (patch)
treeee8549ff39f7b3cb11b3aaeb5c365b371e36547f /net
parentLinux 4.16-rc1 (diff)
downloadlinux-9ae27a8d1f3ebff09191fb8cb1341414547293b2.tar.xz
linux-9ae27a8d1f3ebff09191fb8cb1341414547293b2.zip
regmap: Don't use format_val in regmap_bulk_read
A bulk read can be implemented either through regmap_raw_read, or by reading each register individually using regmap_read. Both regmap_read and regmap_bulk_read should return values in native endian. In the individual case the current implementation calls format_val to put the data into the output array, which can cause endian issues. The regmap_read will have already converted the data into native endian, if the hosts endian differs from the device then format_val will switch the endian back again. Rather than using format_val simply use the code that is called if there is no format_val function. This code supports all cases except 24-bit but there don't appear to be any users of regmap_bulk_read for 24-bit. Additionally, it would have to be a big endian host for the old code to actually function correctly anyway. Fixes: 15b8d2c41fe5 ("regmap: Fix regmap_bulk_read in BE mode") Reported-by: David Rhodes <david.rhodes@cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions