diff mbox series

[v2] drm/i915: Fix PSR2 selective update corruption after PSR1 setup

Message ID 20190314230113.6571-1-jose.souza@intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915: Fix PSR2 selective update corruption after PSR1 setup | expand

Commit Message

Souza, Jose March 14, 2019, 11:01 p.m. UTC
There is probably a issue in DMC firmwares(icl_dmc_ver1_07.bin and
kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to fail after
exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so for now
lets workaround the issue by cleaning PSR_CTL before enable PSR2.

v2:
- Updated commit description and comment to state that it may be
a DMC firmware issue (Rodrigo)
- No need to RMW, let's write 0 to PSR_CTL(Dhinakaran)

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Rodrigo Vivi March 15, 2019, 4:37 p.m. UTC | #1
On Thu, Mar 14, 2019 at 04:01:13PM -0700, José Roberto de Souza wrote:
> There is probably a issue in DMC firmwares(icl_dmc_ver1_07.bin and
> kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to fail after
> exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so for now
> lets workaround the issue by cleaning PSR_CTL before enable PSR2.
> 
> v2:
> - Updated commit description and comment to state that it may be
> a DMC firmware issue (Rodrigo)
> - No need to RMW, let's write 0 to PSR_CTL(Dhinakaran)
> 
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_psr.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> index 7d570a45fc17..10bf70e521b6 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -531,6 +531,14 @@ static void hsw_activate_psr2(struct intel_dp *intel_dp)
>  	else
>  		val |= EDP_PSR2_TP2_TIME_2500us;
>  
> +	/*
> +	 * FIXME: There is probably a issue in DMC firmwares(icl_dmc_ver1_07.bin
> +	 * and kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to fail after
> +	 * exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so for now
> +	 * lets workaround the issue by cleaning PSR_CTL before enable PSR2.
> +	 */
> +	I915_WRITE(EDP_PSR_CTL, 0);
> +
>  	I915_WRITE(EDP_PSR2_CTL, val);
>  }
>  
> -- 
> 2.21.0
>
Dhinakaran Pandiyan March 15, 2019, 9:56 p.m. UTC | #2
On Thu, 2019-03-14 at 16:01 -0700, José Roberto de Souza wrote:
> There is probably a issue in DMC firmwares(icl_dmc_ver1_07.bin and
> kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to fail
nit: instead of "fail", it is better to document what you see visually
- freeze, flicker, corruption etc.

>  after
> exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so for now
> lets workaround the issue by cleaning PSR_CTL before enable PSR2.
> 
> v2:
> - Updated commit description and comment to state that it may be
> a DMC firmware issue (Rodrigo)
> - No need to RMW, let's write 0 to PSR_CTL(Dhinakaran)

Based on the discussion with José offline, this work around sounds
reasonable to have until we have answers to whether this is a DMC
issue.
 
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> 
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_psr.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_psr.c
> b/drivers/gpu/drm/i915/intel_psr.c
> index 7d570a45fc17..10bf70e521b6 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -531,6 +531,14 @@ static void hsw_activate_psr2(struct intel_dp
> *intel_dp)
>  	else
>  		val |= EDP_PSR2_TP2_TIME_2500us;
>  
> +	/*
> +	 * FIXME: There is probably a issue in DMC
> firmwares(icl_dmc_ver1_07.bin
> +	 * and kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to 
nit: Expand SU to selective update, I am not sure how familiar others
with these acronyms.

> fail after
> +	 * exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so
> for now
> +	 * lets workaround the issue by cleaning PSR_CTL before enable 
clearing*
> PSR2.
> +	 */
> +	I915_WRITE(EDP_PSR_CTL, 0);
> +
>  	I915_WRITE(EDP_PSR2_CTL, val);
>  }
>
Souza, Jose March 19, 2019, 7:55 p.m. UTC | #3
On Tue, 2019-03-19 at 14:06 +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Fix PSR2 selective update corruption after PSR1
> setup (rev5)
> URL   : https://patchwork.freedesktop.org/series/57900/
> State : success

Pushed to drm-intel-next-queued, thanks for the reviews Rodrigo and
Dhinakaran.

> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_5770_full -> Patchwork_12504_full
> ====================================================
> 
> Summary
> -------
> 
>   **SUCCESS**
> 
>   No regressions found.
> 
>   
> 
> Known issues
> ------------
> 
>   Here are the changes found in Patchwork_12504_full that come from
> known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@gem_exec_params@no-vebox:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109283]
> 
>   * igt@gem_mmap_gtt@hang:
>     - shard-iclb:         PASS -> FAIL [fdo#109677]
> 
>   * igt@gem_ppgtt@blt-vs-render-ctx0:
>     - shard-iclb:         PASS -> INCOMPLETE [fdo#109766] /
> [fdo#109801]
> 
>   * igt@gem_pwrite@stolen-uncached:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109277] +1
> 
>   * igt@gem_tiled_swapping@non-threaded:
>     - shard-apl:          PASS -> DMESG-WARN [fdo#108686]
> 
>   * igt@gem_userptr_blits@coherency-sync:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109290]
> 
>   * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109308]
> 
>   * igt@i915_pm_rps@reset:
>     - shard-iclb:         NOTRUN -> FAIL [fdo#108059]
> 
>   * igt@i915_suspend@forcewake:
>     - shard-skl:          PASS -> INCOMPLETE [fdo#104108] /
> [fdo#107773]
> 
>   * igt@kms_busy@extended-modeset-hang-newfb-render-c:
>     - shard-skl:          NOTRUN -> DMESG-WARN [fdo#107956] +1
> 
>   * igt@kms_busy@extended-modeset-hang-newfb-render-f:
>     - shard-kbl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]
> +1
> 
>   * igt@kms_busy@extended-pageflip-hang-newfb-render-b:
>     - shard-glk:          PASS -> DMESG-WARN [fdo#107956]
> 
>   * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
>     - shard-iclb:         PASS -> FAIL [fdo#107725]
> 
>   * igt@kms_chamelium@vga-edid-read:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109284] +9
> 
>   * igt@kms_color@pipe-b-ctm-0-75:
>     - shard-skl:          PASS -> FAIL [fdo#108682]
> 
>   * igt@kms_color@pipe-b-gamma:
>     - shard-iclb:         NOTRUN -> FAIL [fdo#104782] +1
> 
>   * igt@kms_cursor_crc@cursor-128x128-onscreen:
>     - shard-apl:          PASS -> FAIL [fdo#103232]
> 
>   * igt@kms_cursor_crc@cursor-128x128-suspend:
>     - shard-skl:          PASS -> INCOMPLETE [fdo#104108]
> 
>   * igt@kms_cursor_crc@cursor-128x42-offscreen:
>     - shard-skl:          PASS -> FAIL [fdo#103232]
> 
>   * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109274] +7
> 
>   * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
>     - shard-iclb:         PASS -> FAIL [fdo#103355]
> 
>   * igt@kms_flip@flip-vs-expired-vblank:
>     - shard-skl:          NOTRUN -> FAIL [fdo#105363]
> 
>   * igt@kms_flip_tiling@flip-y-tiled:
>     - shard-skl:          NOTRUN -> FAIL [fdo#108303]
> 
>   * igt@kms_force_connector_basic@force-connector-state:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109285]
> 
>   * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109280] +24
> 
>   * igt@kms
> _frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
>     - shard-glk:          PASS -> FAIL [fdo#103167] +2
> 
>   * igt@kms
> _frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-blt:
>     - shard-iclb:         PASS -> FAIL [fdo#109247] +16
> 
>   * igt@kms
> _frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
>     - shard-iclb:         PASS -> FAIL [fdo#103167] +4
> 
>   * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
>     - shard-iclb:         PASS -> FAIL [fdo#105682] / [fdo#109247]
> 
>   * igt@kms_pipe_b_c_ivb@enable-pipe-c-while-b-has-3-lanes:
>     - shard-kbl:          NOTRUN -> SKIP [fdo#109271] +18
> 
>   * igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109289] +1
> 
>   * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-f:
>     - shard-skl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]
> +7
> 
>   * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
>     - shard-kbl:          NOTRUN -> INCOMPLETE [fdo#103665]
> 
>   * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-f:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109278] +10
> 
>   * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
>     - shard-skl:          NOTRUN -> FAIL [fdo#107815] / [fdo#108145]
> 
>   * igt@kms_plane_scaling@2x-scaler-multi-pipe:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109274] / [fdo#109278]
> 
>   * igt@kms_psr@no_drrs:
>     - shard-iclb:         PASS -> FAIL [fdo#108341]
> 
>   * igt@kms_psr@psr2_cursor_mmap_cpu:
>     - shard-iclb:         PASS -> SKIP [fdo#109441]
> 
>   * igt@kms_psr@psr2_cursor_render:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109441] +2
> 
>   * igt@kms_psr@sprite_mmap_cpu:
>     - shard-iclb:         PASS -> FAIL [fdo#107383] +2
> 
>   * igt@kms_setmode@basic:
>     - shard-skl:          NOTRUN -> FAIL [fdo#99912]
>     - shard-iclb:         NOTRUN -> FAIL [fdo#99912]
>     - shard-hsw:          PASS -> FAIL [fdo#99912]
> 
>   * igt@kms_vblank@pipe-a-ts-continuation-suspend:
>     - shard-iclb:         PASS -> FAIL [fdo#103375] +1
> 
>   * igt@perf_pmu@busy-accuracy-98-vcs1:
>     - shard-skl:          NOTRUN -> SKIP [fdo#109271] +86
> 
>   * igt@prime_nv_test@i915_import_pread_pwrite:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109291] +3
> 
>   * igt@prime_vgem@fence-flip-hang:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109295]
> 
>   * igt@prime_vgem@fence-wait-bsd1:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109276] +10
> 
>   * igt@sw_sync@sync_busy_fork_unixsocket:
>     - shard-skl:          NOTRUN -> FAIL [fdo#110150 ]
> 
>   * igt@testdisplay:
>     - shard-apl:          PASS -> INCOMPLETE [fdo#103927]
> 
>   * igt@v3d_get_param@get-bad-param:
>     - shard-iclb:         NOTRUN -> SKIP [fdo#109315]
> 
>   
> #### Possible fixes ####
> 
>   * igt@gem_linear_blits@interruptible:
>     - shard-iclb:         TIMEOUT [fdo#109673] -> PASS +1
> 
>   * igt@gem_ppgtt@blt-vs-render-ctxn:
>     - shard-iclb:         INCOMPLETE [fdo#109766] / [fdo#109801] ->
> PASS
> 
>   * igt@gem_tiled_swapping@non-threaded:
>     - shard-iclb:         INCOMPLETE -> PASS
> 
>   * igt@i915_pm_rpm@system-suspend:
>     - shard-iclb:         DMESG-WARN -> PASS
> 
>   * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
>     - shard-glk:          FAIL [fdo#108145] -> PASS
> 
>   * igt@kms_chv_cursor_fail@pipe-a-128x128-top-edge:
>     - shard-snb:          SKIP [fdo#109271] / [fdo#109278] -> PASS
> 
>   * igt@kms_cursor_crc@cursor-size-change:
>     - shard-apl:          FAIL [fdo#103232] -> PASS
> 
>   * igt@kms_cursor_legacy@cursor-vs-flip-atomic:
>     - shard-iclb:         FAIL [fdo#103355] -> PASS
> 
>   * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
>     - shard-glk:          FAIL [fdo#105363] -> PASS +1
> 
>   * igt@kms
> _frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
>     - shard-apl:          FAIL [fdo#103167] -> PASS
> 
>   * igt@kms
> _frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
>     - shard-iclb:         FAIL [fdo#103167] -> PASS +7
> 
>   * igt@kms
> _frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu:
>     - shard-glk:          FAIL [fdo#103167] -> PASS +2
> 
>   * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
>     - shard-iclb:         FAIL [fdo#105682] / [fdo#109247] -> PASS +1
> 
>   * igt@kms
> _frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite:
>     - shard-iclb:         FAIL [fdo#109247] -> PASS +14
> 
>   * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
>     - shard-apl:          FAIL [fdo#108145] -> PASS
> 
>   * {igt@kms_plane_multiple@atomic-pipe-b-tiling-none}:
>     - shard-glk:          FAIL [fdo#110037] -> PASS +1
> 
>   * {igt@kms_plane_multiple@atomic-pipe-b-tiling-x}:
>     - shard-iclb:         FAIL [fdo#110037] -> PASS +3
> 
>   * {igt@kms_plane_multiple@atomic-pipe-c-tiling-yf}:
>     - shard-apl:          FAIL [fdo#110037] -> PASS +1
> 
>   * igt@kms_psr2_su@frontbuffer:
>     - shard-iclb:         SKIP [fdo#109642] -> PASS
> 
>   * igt@kms_psr@cursor_plane_onoff:
>     - shard-iclb:         FAIL [fdo#107383] -> PASS
> 
>   * igt@kms_psr@psr2_sprite_render:
>     - shard-iclb:         SKIP [fdo#109441] -> PASS +1
> 
>   * igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
>     - shard-skl:          INCOMPLETE [fdo#104108] / [fdo#107773] ->
> PASS
> 
>   * igt@kms_vblank@pipe-b-wait-idle-hang:
>     - shard-snb:          SKIP [fdo#109271] -> PASS
> 
>   
> #### Warnings ####
> 
>   * igt@i915_selftest@live_contexts:
>     - shard-iclb:         DMESG-FAIL [fdo#108569] -> INCOMPLETE
> [fdo#108569]
> 
>   * igt@kms_plane_scaling@pipe-a-scaler-with-rotation:
>     - shard-glk:          FAIL [fdo#110098] -> SKIP [fdo#109271] /
> [fdo#109278]
> 
>   * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
>     - shard-glk:          SKIP [fdo#109271] / [fdo#109278] -> FAIL
> [fdo#110098]
> 
>   
>   {name}: This element is suppressed. This means it is ignored when
> computing
>           the status of the difference (SUCCESS, WARNING, or
> FAILURE).
> 
>   [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
>   [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
>   [fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355
>   [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
>   [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
>   [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
>   [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
>   [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
>   [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
>   [fdo#105682]: https://bugs.freedesktop.org/show_bug.cgi?id=105682
>   [fdo#107383]: https://bugs.freedesktop.org/show_bug.cgi?id=107383
>   [fdo#107725]: https://bugs.freedesktop.org/show_bug.cgi?id=107725
>   [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
>   [fdo#107815]: https://bugs.freedesktop.org/show_bug.cgi?id=107815
>   [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
>   [fdo#108059]: https://bugs.freedesktop.org/show_bug.cgi?id=108059
>   [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
>   [fdo#108303]: https://bugs.freedesktop.org/show_bug.cgi?id=108303
>   [fdo#108341]: https://bugs.freedesktop.org/show_bug.cgi?id=108341
>   [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
>   [fdo#108682]: https://bugs.freedesktop.org/show_bug.cgi?id=108682
>   [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
>   [fdo#109247]: https://bugs.freedesktop.org/show_bug.cgi?id=109247
>   [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
>   [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
>   [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
>   [fdo#109277]: https://bugs.freedesktop.org/show_bug.cgi?id=109277
>   [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
>   [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
>   [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
>   [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
>   [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
>   [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
>   [fdo#109290]: https://bugs.freedesktop.org/show_bug.cgi?id=109290
>   [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
>   [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
>   [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
>   [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
>   [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
>   [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
>   [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
>   [fdo#109677]: https://bugs.freedesktop.org/show_bug.cgi?id=109677
>   [fdo#109766]: https://bugs.freedesktop.org/show_bug.cgi?id=109766
>   [fdo#109801]: https://bugs.freedesktop.org/show_bug.cgi?id=109801
>   [fdo#110033]: https://bugs.freedesktop.org/show_bug.cgi?id=110033
>   [fdo#110037]: https://bugs.freedesktop.org/show_bug.cgi?id=110037
>   [fdo#110098]: https://bugs.freedesktop.org/show_bug.cgi?id=110098
>   [fdo#110150 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110150 
>   [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
> 
> 
> Participating hosts (10 -> 10)
> ------------------------------
> 
>   No changes in participating hosts
> 
> 
> Build changes
> -------------
> 
>     * Linux: CI_DRM_5770 -> Patchwork_12504
> 
>   CI_DRM_5770: 7f60fa0ec6f20661a49a3eeed6e4b0a175783cf6 @
> git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_4888: 71ad19eb8fe4f0eecae3bf063e107293b90b9abc @
> git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>   Patchwork_12504: 2abec274cd4755be4d19eaf0195f5c629d9fbe11 @
> git://anongit.freedesktop.org/gfx-ci/linux
>   piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @
> git://anongit.freedesktop.org/piglit
> 
> == Logs ==
> 
> For more details see: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12504/
Dhinakaran Pandiyan March 19, 2019, 8:50 p.m. UTC | #4
On Tue, 2019-03-19 at 19:55 +0000, Souza, Jose wrote:
> On Tue, 2019-03-19 at 14:06 +0000, Patchwork wrote:
> > == Series Details ==
> > 
> > Series: drm/i915: Fix PSR2 selective update corruption after PSR1
> > setup (rev5)
> > URL   : https://patchwork.freedesktop.org/series/57900/
> > State : success
> 
> Pushed to drm-intel-next-queued, thanks for the reviews Rodrigo and
> Dhinakaran.
> 
btw, is this something an IGT Selective Update test can detect?
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 7d570a45fc17..10bf70e521b6 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -531,6 +531,14 @@  static void hsw_activate_psr2(struct intel_dp *intel_dp)
 	else
 		val |= EDP_PSR2_TP2_TIME_2500us;
 
+	/*
+	 * FIXME: There is probably a issue in DMC firmwares(icl_dmc_ver1_07.bin
+	 * and kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to fail after
+	 * exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so for now
+	 * lets workaround the issue by cleaning PSR_CTL before enable PSR2.
+	 */
+	I915_WRITE(EDP_PSR_CTL, 0);
+
 	I915_WRITE(EDP_PSR2_CTL, val);
 }