bus: sunxi-rsb: Support atomic transfers
authorSamuel Holland <samuel@sholland.org>
Mon, 14 Nov 2022 01:57:48 +0000 (19:57 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Dec 2022 16:39:59 +0000 (17:39 +0100)
commitb76c5a99f44a9bcf78df7abf1fcb74dda6c1d10f
treeea461b4f6d29e9257174a8ec4cfaf3aa37409397
parent0c059b7d2a6b7ddb75d9e579456f597ff697aca0
bus: sunxi-rsb: Support atomic transfers

[ Upstream commit 077686da0e2162c4ea5ae0df205849c2a7a84479 ]

When communicating with a PMIC during system poweroff (pm_power_off()),
IRQs are disabled and we are in a RCU read-side critical section, so we
cannot use wait_for_completion_io_timeout(). Instead, poll the status
register for transfer completion.

Fixes: d787dcdb9c8f ("bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus")
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://lore.kernel.org/r/20221114015749.28490-3-samuel@sholland.org
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/bus/sunxi-rsb.c