]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/i915/prefill: Introduce skl_prefill.c
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 14 Oct 2025 19:18:07 +0000 (22:18 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 16 Oct 2025 15:22:05 +0000 (18:22 +0300)
commitba470a99f228a5bbc39d53f52d52a98ba97eed03
treeab8153d818aba6f198ebb57eeeaf0c983e5641f4
parent9704c1cbedfd05a6a29017d580a2819964420511
drm/i915/prefill: Introduce skl_prefill.c

Add a new helper thingy to deal with the pipe prefill latency.

We get three potentially useful thigns out of this:
- skl_prefill_vblank_too_short() used for checking the
  actual vblank/guardband length
- skl_prefill_min_guardband() to calculate a suitable guardband
  size based on some worst case scaling/etc. estimates
- skl_prefill_min_cdclk() used to calculate a minimum cdclk
  frequency required for very small vblank lengths (in case the
  otherwise computed minimum cdclk doesn't result in fast enough
  prefill).

The internal arithmetic is done terms of scanlines using .16
binary fixed point representation.

v2: Add the missing <<16 for framestart_delay
    Drop the cdclk_state stuff in favor of crtc_state->min_cdclk
    Rename to skl_prefill since this is skl+ only
    Use intel_crtc_vblank_length() instead of hand rolling it
    memset(0) in prefill_init()

Reviewed-by: Uma Shankar <uma.shankar@intel.com> #v1
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20251014191808.12326-9-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/display/skl_prefill.c [new file with mode: 0644]
drivers/gpu/drm/i915/display/skl_prefill.h [new file with mode: 0644]
drivers/gpu/drm/xe/Makefile