Commit db910738 authored by Boris Brezillon's avatar Boris Brezillon Committed by Greg Kroah-Hartman

mfd: atmel-hlcdc: Do not sleep in atomic context

commit 2c2469bc upstream.

readl_poll_timeout() calls usleep_range(), but
regmap_atmel_hlcdc_reg_write() is called in atomic context (regmap
spinlock held).

Replace the readl_poll_timeout() call by readl_poll_timeout_atomic().

Fixes: ea31c0cf ("mfd: atmel-hlcdc: Implement config synchronization")
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6fb0ccbb
...@@ -50,8 +50,9 @@ static int regmap_atmel_hlcdc_reg_write(void *context, unsigned int reg, ...@@ -50,8 +50,9 @@ static int regmap_atmel_hlcdc_reg_write(void *context, unsigned int reg,
if (reg <= ATMEL_HLCDC_DIS) { if (reg <= ATMEL_HLCDC_DIS) {
u32 status; u32 status;
readl_poll_timeout(hregmap->regs + ATMEL_HLCDC_SR, status, readl_poll_timeout_atomic(hregmap->regs + ATMEL_HLCDC_SR,
!(status & ATMEL_HLCDC_SIP), 1, 100); status, !(status & ATMEL_HLCDC_SIP),
1, 100);
} }
writel(val, hregmap->regs + reg); writel(val, hregmap->regs + reg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment