mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
drm/i915/dsb: Fix dewake scanline
Currently we calculate the DEwake scanline based on the delayed vblank start, while in reality it should be computed based on the undelayed vblank start (as that is where the DSB actually starts). Currently it doesn't really matter as we don't have any vblank delay configured, but that may change in the future so let's be accurate in what we do. We can also remove the max() as intel_crtc_scanline_to_hw() can deal with negative numbers, which there really shouldn't be anyway. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240624191032.27333-7-ville.syrjala@linux.intel.com Reviewed-by: Animesh Manna <animesh.manna@intel.com>
This commit is contained in:
parent
70a65a5de2
commit
eb4556f25f
@ -86,16 +86,10 @@ struct intel_dsb {
|
||||
static int dsb_dewake_scanline(const struct intel_crtc_state *crtc_state)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev);
|
||||
const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
|
||||
unsigned int latency = skl_watermark_max_latency(i915, 0);
|
||||
int vblank_start;
|
||||
|
||||
if (crtc_state->vrr.enable)
|
||||
vblank_start = intel_vrr_vmin_vblank_start(crtc_state);
|
||||
else
|
||||
vblank_start = intel_mode_vblank_start(adjusted_mode);
|
||||
|
||||
return max(0, vblank_start - intel_usecs_to_scanlines(adjusted_mode, latency));
|
||||
return intel_mode_vdisplay(&crtc_state->hw.adjusted_mode) -
|
||||
intel_usecs_to_scanlines(&crtc_state->hw.adjusted_mode, latency);
|
||||
}
|
||||
|
||||
static u32 dsb_chicken(struct intel_crtc *crtc)
|
||||
|
Loading…
Reference in New Issue
Block a user