mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-21 12:36:21 -04:00
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:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user