drm/vblank: Allow dynamic per-crtc max_vblank_count
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 27 Nov 2018 18:20:04 +0000 (20:20 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 14 Jan 2019 19:23:55 +0000 (21:23 +0200)
commited20151a7699bb2c77eba3610199789a126940c4
tree0f627cdb8cad46a5b9d620b7d4262b3b9a2d2cbc
parente3de0aa6c9afdca053389a4721d6a7d65126dfb8
drm/vblank: Allow dynamic per-crtc max_vblank_count

On i965gm we need to adjust max_vblank_count dynamically
depending on whether the TV encoder is used or not. To
that end add a per-crtc max_vblank_count that takes
precedence over its device wide counterpart. The driver
can now call drm_crtc_set_max_vblank_count() to configure
the per-crtc value before calling drm_vblank_on().

Also looks like there was some discussion about exynos needing
similar treatment.

v2: Drop the extra max_vblank_count!=0 check for the
    WARN(last!=current), will take care of it in i915 code (Daniel)
    WARN_ON(!inmodeset) (Daniel)
    WARN_ON(dev->max_vblank_count)
    Pimp up the docs (Daniel)

Cc: stable@vger.kernel.org
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181127182004.28885-1-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_vblank.c
include/drm/drm_device.h
include/drm/drm_vblank.h