gpu: ipu-v3: pre: don't use fixed timeout when waiting for safe window
authorLucas Stach <l.stach@pengutronix.de>
Fri, 17 May 2024 10:45:49 +0000 (12:45 +0200)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 26 Jun 2024 15:43:54 +0000 (17:43 +0200)
commitd5316cdd15da9b37ddaa531f0739e4886ecd6faa
tree07cbe4d3a4fdb5e8a20f823f5f09921f0bcdd3a1
parent4dbc7d5d61d5212bcfef794f47562ace58ac390b
gpu: ipu-v3: pre: don't use fixed timeout when waiting for safe window

The timeout when waiting for the PRE safe window is rather short, as
normally we would only need to wait a few dozen usecs for the problematic
scanline region to pass and we don't want to spin too long in case
something goes wrong. This however mixes badly with preemption, as we
can easily get scheduled away from the CPU for a longer time than our
timeout, in which case we would hit a spurious timeout and wrongly skip
the PRE update.

Instead of disabling preemption across the wait loop, potentially
impacting the overall system latency, use a wait loop with a fixed
max number of iterations, so time spent away from the CPU is not
accounted against the timeout budget.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://lore.kernel.org/r/20240517104549.3648939-3-l.stach@pengutronix.de
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20240517104549.3648939-3-l.stach@pengutronix.de
drivers/gpu/ipu-v3/ipu-pre.c