drm/i915/vblank: use generic poll_timeout_us() instead of wait_for()

Prefer generic poll helpers over i915 custom helpers.

The functional change is losing the exponentially growing sleep of
wait_for(), which used to be 10, 20, 40, ..., 640, and 1280 us.

Use an arbitrary constant 500 us sleep instead. The timeout remains at
100 ms.

Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Link: https://lore.kernel.org/r/162dff5862d3213304491a6d2eb31a57346b523e.1756383233.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Jani Nikula
2025-08-28 15:20:56 +03:00
parent 476721f28e
commit 46013820f4

View File

@@ -3,6 +3,8 @@
* Copyright © 2022-2023 Intel Corporation
*/
#include <linux/iopoll.h>
#include <drm/drm_vblank.h>
#include "i915_drv.h"
@@ -493,9 +495,14 @@ static void wait_for_pipe_scanline_moving(struct intel_crtc *crtc, bool state)
{
struct intel_display *display = to_intel_display(crtc);
enum pipe pipe = crtc->pipe;
bool is_moving;
int ret;
/* Wait for the display line to settle/start moving */
if (wait_for(pipe_scanline_is_moving(display, pipe) == state, 100))
ret = poll_timeout_us(is_moving = pipe_scanline_is_moving(display, pipe),
is_moving == state,
500, 100 * 1000, false);
if (ret)
drm_err(display->drm,
"pipe %c scanline %s wait timed out\n",
pipe_name(pipe), str_on_off(state));