On Thu, 2025-08-28 at 15:20 +0300, Jani Nikula wrote: > 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. > > Signed-off-by: Jani Nikula <jani.nik...@intel.com>
Reviewed-by: Jouni Högander <jouni.hogan...@intel.com> > --- > drivers/gpu/drm/i915/display/intel_vblank.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c > b/drivers/gpu/drm/i915/display/intel_vblank.c > index 46d6db5fed11..c15234c1d96e 100644 > --- a/drivers/gpu/drm/i915/display/intel_vblank.c > +++ b/drivers/gpu/drm/i915/display/intel_vblank.c > @@ -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));