forked from Minki/linux
9ae27a8d1f
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:
|
||
---|---|---|
.. | ||
internal.h | ||
Kconfig | ||
Makefile | ||
regcache-flat.c | ||
regcache-lzo.c | ||
regcache-rbtree.c | ||
regcache.c | ||
regmap-ac97.c | ||
regmap-debugfs.c | ||
regmap-i2c.c | ||
regmap-irq.c | ||
regmap-mmio.c | ||
regmap-sdw.c | ||
regmap-slimbus.c | ||
regmap-spi.c | ||
regmap-spmi.c | ||
regmap-w1.c | ||
regmap.c | ||
trace.h |