]> git.ipfire.org Git - thirdparty/linux.git/commit
spmi: mtk-pmif: Keep spinlock until read is fully done
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Fri, 23 Jan 2026 18:20:31 +0000 (10:20 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Jan 2026 18:24:38 +0000 (19:24 +0100)
commit63cbabb003ba314be113700ca58ec320b6ce2b33
tree3f2b137a1b0706f726125bff1e4bf285f7a56f33
parent078117963b2c678921c86f2485b0d5baf5b86131
spmi: mtk-pmif: Keep spinlock until read is fully done

Move the spin unlocking to after reading the contents of the
PMIF_SWINF_(x)_RDATA_31_0 register in pmif_spmi_read_cmd():
since this is the only register that we can read to get the
data from all of the arbitered busses, a concurrent request
for reading (especially on a busy arbiter) will show a race
condition and a unexpected or corrupted value may be read.

Doing the entire read sequence while spin locked guarantees
that concurrent access to the arbiter doesn't happen.

Fixes: f200fff8d019 ("spmi: mtk-pmif: Serialize PMIF status check and command submission")
Reviewed-by: NĂ­colas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Fixes: b45b3ccef8c0 ("spmi: mediatek: Add support for MT6873/8192")
Link: https://patch.msgid.link/20260123182039.224314-4-sboyd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/spmi/spmi-mtk-pmif.c