regmap: mmio: add config option to allow relaxed MMIO accesses
authorAdrian Ratiu <adrian.ratiu@collabora.com>
Wed, 14 Oct 2020 20:30:24 +0000 (23:30 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 26 Oct 2020 19:54:59 +0000 (19:54 +0000)
commit6e1e90ec027509a7e8d4efbd77a65b32b5a8b3ec
treebd80cbfb9669e608740c11a1d2ed5adb18d1c0e6
parent3650b228f83adda7e5ee532e2b90429c03f7b9ec
regmap: mmio: add config option to allow relaxed MMIO accesses

On some platforms (eg armv7 due to the CONFIG_ARM_DMA_MEM_BUFFERABLE)
MMIO R/W operations always add memory barriers which can increase load,
decrease battery life or in general reduce performance unnecessarily
on devices which access a lot of configuration registers and where
ordering does not matter (eg. media accelerators like the Verisilicon /
Hantro video decoders).

Drivers used to call the relaxed MMIO variants directly but since they
are now accessing the MMIO registers via regmaps (to compensate for
different VPU HW reg layouts via regmap fields), there is a need for a
relaxed API / config to preserve existing behaviour.

Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
Link: https://lore.kernel.org/r/20201014203024.954369-1-adrian.ratiu@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regmap-mmio.c
include/linux/regmap.h