* [PATCH] media: sun8i-di: Don't sleep while waiting for coefficient access
@ 2026-11-04 18:59 Jernej Skrabec
0 siblings, 0 replies; only message in thread
From: Jernej Skrabec @ 2026-11-04 18:59 UTC (permalink / raw)
To: Mauro Carvalho Chehab, Chen-Yu Tsai, Samuel Holland,
Hans Verkuil, Maxime Ripard
Cc: linux-media, linux-arm-kernel, linux-sunxi, linux-kernel, Jernej Skrabec
deinterlace_irq() calls deinterlace_device_run() to start processing
the second field, so it runs in hard interrupt context. However,
deinterlace_device_run() waits for coefficient access with
readl_poll_timeout(), which may sleep.
Use readl_poll_timeout_atomic() instead.
Fixes: a4260ea49547 ("media: sun4i: Add H3 deinterlace driver")
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c
index 65bc426e5aac..bb90e0efa4d1 100644
--- a/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c
+++ b/drivers/media/platform/sunxi/sun8i-di/sun8i-di.c
@@ -163,8 +163,8 @@ static void deinterlace_device_run(void *priv)
/* neutral filter coefficients */
deinterlace_set_bits(dev, DEINTERLACE_FRM_CTRL,
DEINTERLACE_FRM_CTRL_COEF_ACCESS);
- readl_poll_timeout(dev->base + DEINTERLACE_STATUS, val,
- val & DEINTERLACE_STATUS_COEF_STATUS, 2, 40);
+ readl_poll_timeout_atomic(dev->base + DEINTERLACE_STATUS, val,
+ val & DEINTERLACE_STATUS_COEF_STATUS, 2, 40);
for (i = 0; i < 32; i++) {
deinterlace_write(dev, DEINTERLACE_CH0_HORZ_COEF0 + i * 4,
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
--
2.43.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-04 18:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-04 18:59 [PATCH] media: sun8i-di: Don't sleep while waiting for coefficient access Jernej Skrabec
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®