Skip to content

Commit 4e29234

Browse files
hoganderrodrigovivi
authored andcommitted
drm/i915/psr: Move writing early transport pipe src
Currently PIPE_SRCSZ_ERLY_TPT is written in intel_display.c:intel_set_pipe_src_size. This doesn't work as intel_set_pipe_src_size is called only on modeset. Bspec: 68927 Fixes: 3291bbb ("drm/i915/psr: Configure PIPE_SRCSZ_ERLY_TPT for psr2 early transport") Signed-off-by: Jouni Högander <[email protected]> Reviewed-by: Mika Kahola <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit b52c409) Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent 64d845f commit 4e29234

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

drivers/gpu/drm/i915/display/intel_display.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2709,15 +2709,6 @@ static void intel_set_pipe_src_size(const struct intel_crtc_state *crtc_state)
27092709
*/
27102710
intel_de_write(dev_priv, PIPESRC(pipe),
27112711
PIPESRC_WIDTH(width - 1) | PIPESRC_HEIGHT(height - 1));
2712-
2713-
if (!crtc_state->enable_psr2_su_region_et)
2714-
return;
2715-
2716-
width = drm_rect_width(&crtc_state->psr2_su_area);
2717-
height = drm_rect_height(&crtc_state->psr2_su_area);
2718-
2719-
intel_de_write(dev_priv, PIPE_SRCSZ_ERLY_TPT(pipe),
2720-
PIPESRC_WIDTH(width - 1) | PIPESRC_HEIGHT(height - 1));
27212712
}
27222713

27232714
static bool intel_pipe_is_interlaced(const struct intel_crtc_state *crtc_state)

drivers/gpu/drm/i915/display/intel_psr.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,6 +1994,7 @@ static void psr_force_hw_tracking_exit(struct intel_dp *intel_dp)
19941994

19951995
void intel_psr2_program_trans_man_trk_ctl(const struct intel_crtc_state *crtc_state)
19961996
{
1997+
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
19971998
struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
19981999
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
19992000
struct intel_encoder *encoder;
@@ -2013,6 +2014,12 @@ void intel_psr2_program_trans_man_trk_ctl(const struct intel_crtc_state *crtc_st
20132014

20142015
intel_de_write(dev_priv, PSR2_MAN_TRK_CTL(cpu_transcoder),
20152016
crtc_state->psr2_man_track_ctl);
2017+
2018+
if (!crtc_state->enable_psr2_su_region_et)
2019+
return;
2020+
2021+
intel_de_write(dev_priv, PIPE_SRCSZ_ERLY_TPT(crtc->pipe),
2022+
crtc_state->pipe_srcsz_early_tpt);
20162023
}
20172024

20182025
static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,

0 commit comments

Comments
 (0)