]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
regmap: fix bulk writes on paged registers
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Wed, 12 Jun 2019 11:03:43 +0000 (12:03 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Aug 2019 07:34:46 +0000 (09:34 +0200)
commitdd53d356618595cd33ea49d187174e3fd80c1456
treec90429a17f2e1768275122772a944500974641a4
parent56af78dffdaf5b07151b2cc18188b6217bba49f3
regmap: fix bulk writes on paged registers

[ Upstream commit db057679de3e9e6a03c1bcd5aee09b0d25fd9f5b ]

On buses like SlimBus and SoundWire which does not support
gather_writes yet in regmap, A bulk write on paged register
would be silently ignored after programming page.
This is because local variable 'ret' value in regmap_raw_write_impl()
gets reset to 0 once page register is written successfully and the
code below checks for 'ret' value to be -ENOTSUPP before linearising
the write buffer to send to bus->write().

Fix this by resetting the 'ret' value to -ENOTSUPP in cases where
gather_writes() is not supported or single register write is
not possible.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/base/regmap/regmap.c