diff mbox series

[v2] drm/i915/display: Set TRANS_DDI_MODE_SELECT to default value when clearing DDI select

Message ID 20200203225549.152301-1-jose.souza@intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915/display: Set TRANS_DDI_MODE_SELECT to default value when clearing DDI select | expand

Commit Message

Souza, Jose Feb. 3, 2020, 10:55 p.m. UTC
TGL is suffering of timeouts and fifo underruns when disabling
transcoder in MST mode, this is fixed by set TRANS_DDI_MODE_SELECT to
0(HDMI mode) when clearing DDI select.

Although BSpec disable sequence don't require this step, it is a
harmless change and it is also done by Windows driver.
Anyhow HW team was notified about that but it can take some time to
documentation to be updated.

A case that always lead to those issues is:
- do a modeset enabling pipe A and pipe B in the same MST stream
leaving A as master
- disable pipe A, promote B as master doing a full modeset in A
- enable pipe A, changing the master transcoder back to A(doing a
full modeset in B)
- Pow: underruns and timeouts

The transcoders involved will only work again when complete disabled
and their power wells turned off causing a reset in their registers.

v2: Setting TRANS_DDI_MODE_SELECT to default when clearing DDI select
not anymore when disabling TRANS_DDI, both work but this one looks
more safe. (Ville comment)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Ville Syrjälä Feb. 4, 2020, 1:35 p.m. UTC | #1
On Mon, Feb 03, 2020 at 02:55:49PM -0800, José Roberto de Souza wrote:
> TGL is suffering of timeouts and fifo underruns when disabling
> transcoder in MST mode, this is fixed by set TRANS_DDI_MODE_SELECT to
> 0(HDMI mode) when clearing DDI select.
> 
> Although BSpec disable sequence don't require this step, it is a
> harmless change and it is also done by Windows driver.
> Anyhow HW team was notified about that but it can take some time to
> documentation to be updated.
> 
> A case that always lead to those issues is:
> - do a modeset enabling pipe A and pipe B in the same MST stream
> leaving A as master
> - disable pipe A, promote B as master doing a full modeset in A
> - enable pipe A, changing the master transcoder back to A(doing a
> full modeset in B)
> - Pow: underruns and timeouts
> 
> The transcoders involved will only work again when complete disabled
> and their power wells turned off causing a reset in their registers.
> 
> v2: Setting TRANS_DDI_MODE_SELECT to default when clearing DDI select
> not anymore when disabling TRANS_DDI, both work but this one looks
> more safe. (Ville comment)

I presume this still fixes the issue?

> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index aa066fb9eb00..45082e71262c 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -1988,10 +1988,12 @@ void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state
>  	val &= ~TRANS_DDI_FUNC_ENABLE;
>  
>  	if (INTEL_GEN(dev_priv) >= 12) {
> -		if (!intel_dp_mst_is_master_trans(crtc_state))
> +		if (!intel_dp_mst_is_master_trans(crtc_state)) {
>  			val &= ~TGL_TRANS_DDI_PORT_MASK;
> +			val &= ~TRANS_DDI_MODE_SELECT_MASK;

Two separate statements.

> +		}
>  	} else {
> -		val &= ~TRANS_DDI_PORT_MASK;
> +		val &= ~(TRANS_DDI_PORT_MASK | TRANS_DDI_MODE_SELECT_MASK);

One statement.

>  	}
>  	intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder), val);
>  
> @@ -3729,6 +3731,7 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
>  			val = intel_de_read(dev_priv,
>  					    TRANS_DDI_FUNC_CTL(cpu_transcoder));
>  			val &= ~TGL_TRANS_DDI_PORT_MASK;
> +			val &= ~TRANS_DDI_MODE_SELECT_MASK;

Two again.

A bit inconsistent, otherwise lgtm.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

>  			intel_de_write(dev_priv,
>  				       TRANS_DDI_FUNC_CTL(cpu_transcoder),
>  				       val);
> -- 
> 2.25.0
Souza, Jose Feb. 4, 2020, 5:48 p.m. UTC | #2
On Tue, 2020-02-04 at 15:35 +0200, Ville Syrjälä wrote:
> On Mon, Feb 03, 2020 at 02:55:49PM -0800, José Roberto de Souza
> wrote:
> > TGL is suffering of timeouts and fifo underruns when disabling
> > transcoder in MST mode, this is fixed by set TRANS_DDI_MODE_SELECT
> > to
> > 0(HDMI mode) when clearing DDI select.
> > 
> > Although BSpec disable sequence don't require this step, it is a
> > harmless change and it is also done by Windows driver.
> > Anyhow HW team was notified about that but it can take some time to
> > documentation to be updated.
> > 
> > A case that always lead to those issues is:
> > - do a modeset enabling pipe A and pipe B in the same MST stream
> > leaving A as master
> > - disable pipe A, promote B as master doing a full modeset in A
> > - enable pipe A, changing the master transcoder back to A(doing a
> > full modeset in B)
> > - Pow: underruns and timeouts
> > 
> > The transcoders involved will only work again when complete
> > disabled
> > and their power wells turned off causing a reset in their
> > registers.
> > 
> > v2: Setting TRANS_DDI_MODE_SELECT to default when clearing DDI
> > select
> > not anymore when disabling TRANS_DDI, both work but this one looks
> > more safe. (Ville comment)
> 
> I presume this still fixes the issue?

It does.

> 
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_ddi.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index aa066fb9eb00..45082e71262c 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -1988,10 +1988,12 @@ void
> > intel_ddi_disable_transcoder_func(const struct intel_crtc_state
> > *crtc_state
> >  	val &= ~TRANS_DDI_FUNC_ENABLE;
> >  
> >  	if (INTEL_GEN(dev_priv) >= 12) {
> > -		if (!intel_dp_mst_is_master_trans(crtc_state))
> > +		if (!intel_dp_mst_is_master_trans(crtc_state)) {
> >  			val &= ~TGL_TRANS_DDI_PORT_MASK;
> > +			val &= ~TRANS_DDI_MODE_SELECT_MASK;
> 
> Two separate statements.
> 
> > +		}
> >  	} else {
> > -		val &= ~TRANS_DDI_PORT_MASK;
> > +		val &= ~(TRANS_DDI_PORT_MASK |
> > TRANS_DDI_MODE_SELECT_MASK);
> 
> One statement.

Here was the only place that fitted in 80 cols.

> 
> >  	}
> >  	intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder),
> > val);
> >  
> > @@ -3729,6 +3731,7 @@ static void intel_ddi_post_disable_dp(struct
> > intel_encoder *encoder,
> >  			val = intel_de_read(dev_priv,
> >  					    TRANS_DDI_FUNC_CTL(cpu_tran
> > scoder));
> >  			val &= ~TGL_TRANS_DDI_PORT_MASK;
> > +			val &= ~TRANS_DDI_MODE_SELECT_MASK;
> 
> Two again.
> 
> A bit inconsistent, otherwise lgtm.
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Thanks

> 
> >  			intel_de_write(dev_priv,
> >  				       TRANS_DDI_FUNC_CTL(cpu_transcode
> > r),
> >  				       val);
> > -- 
> > 2.25.0
Ville Syrjälä Feb. 4, 2020, 6:19 p.m. UTC | #3
On Tue, Feb 04, 2020 at 05:48:24PM +0000, Souza, Jose wrote:
> On Tue, 2020-02-04 at 15:35 +0200, Ville Syrjälä wrote:
> > On Mon, Feb 03, 2020 at 02:55:49PM -0800, José Roberto de Souza
> > wrote:
> > > TGL is suffering of timeouts and fifo underruns when disabling
> > > transcoder in MST mode, this is fixed by set TRANS_DDI_MODE_SELECT
> > > to
> > > 0(HDMI mode) when clearing DDI select.
> > > 
> > > Although BSpec disable sequence don't require this step, it is a
> > > harmless change and it is also done by Windows driver.
> > > Anyhow HW team was notified about that but it can take some time to
> > > documentation to be updated.
> > > 
> > > A case that always lead to those issues is:
> > > - do a modeset enabling pipe A and pipe B in the same MST stream
> > > leaving A as master
> > > - disable pipe A, promote B as master doing a full modeset in A
> > > - enable pipe A, changing the master transcoder back to A(doing a
> > > full modeset in B)
> > > - Pow: underruns and timeouts
> > > 
> > > The transcoders involved will only work again when complete
> > > disabled
> > > and their power wells turned off causing a reset in their
> > > registers.
> > > 
> > > v2: Setting TRANS_DDI_MODE_SELECT to default when clearing DDI
> > > select
> > > not anymore when disabling TRANS_DDI, both work but this one looks
> > > more safe. (Ville comment)
> > 
> > I presume this still fixes the issue?
> 
> It does.
> 
> > 
> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_ddi.c | 7 +++++--
> > >  1 file changed, 5 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > > index aa066fb9eb00..45082e71262c 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > > @@ -1988,10 +1988,12 @@ void
> > > intel_ddi_disable_transcoder_func(const struct intel_crtc_state
> > > *crtc_state
> > >  	val &= ~TRANS_DDI_FUNC_ENABLE;
> > >  
> > >  	if (INTEL_GEN(dev_priv) >= 12) {
> > > -		if (!intel_dp_mst_is_master_trans(crtc_state))
> > > +		if (!intel_dp_mst_is_master_trans(crtc_state)) {
> > >  			val &= ~TGL_TRANS_DDI_PORT_MASK;
> > > +			val &= ~TRANS_DDI_MODE_SELECT_MASK;
> > 
> > Two separate statements.
> > 
> > > +		}
> > >  	} else {
> > > -		val &= ~TRANS_DDI_PORT_MASK;
> > > +		val &= ~(TRANS_DDI_PORT_MASK |
> > > TRANS_DDI_MODE_SELECT_MASK);
> > 
> > One statement.
> 
> Here was the only place that fitted in 80 cols.

'\n' is a thing.

val &= ~(A |
         B);

> 
> > 
> > >  	}
> > >  	intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder),
> > > val);
> > >  
> > > @@ -3729,6 +3731,7 @@ static void intel_ddi_post_disable_dp(struct
> > > intel_encoder *encoder,
> > >  			val = intel_de_read(dev_priv,
> > >  					    TRANS_DDI_FUNC_CTL(cpu_tran
> > > scoder));
> > >  			val &= ~TGL_TRANS_DDI_PORT_MASK;
> > > +			val &= ~TRANS_DDI_MODE_SELECT_MASK;
> > 
> > Two again.
> > 
> > A bit inconsistent, otherwise lgtm.
> > 
> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Thanks
> 
> > 
> > >  			intel_de_write(dev_priv,
> > >  				       TRANS_DDI_FUNC_CTL(cpu_transcode
> > > r),
> > >  				       val);
> > > -- 
> > > 2.25.0
Souza, Jose Feb. 6, 2020, 9:20 p.m. UTC | #4
On Thu, 2020-02-06 at 19:28 +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/display: Set TRANS_DDI_MODE_SELECT to default value
> when clearing DDI select
> URL   : https://patchwork.freedesktop.org/series/72943/
> State : success
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_7864_full -> Patchwork_16403_full
> ====================================================
> 
> Summary
> -------
> 
>   **SUCCESS**
> 
>   No regressions found.

Pushed to dinq with minor style changed that was requested by Ville,
thanks for the review.

> 
>   
> 
> Known issues
> ------------
> 
>   Here are the changes found in Patchwork_16403_full that come from
> known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@gem_busy@busy-vcs1:
>     - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#112080]) +12
> similar issues
>    [1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb4/igt@gem_busy@busy-vcs1.html
>    [2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb8/igt@gem_busy@busy-vcs1.html
> 
>   * igt@gem_exec_schedule@preempt-queue-bsd:
>     - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#112146]) +4
> similar issues
>    [3]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@gem_exec_schedule@preempt-queue-bsd.html
>    [4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb2/igt@gem_exec_schedule@preempt-queue-bsd.html
> 
>   * igt@gem_exec_schedule@promotion-bsd1:
>     - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#109276]) +18
> similar issues
>    [5]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb1/igt@gem_exec_schedule@promotion-bsd1.html
>    [6]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb3/igt@gem_exec_schedule@promotion-bsd1.html
> 
>   * igt@gem_partial_pwrite_pread@reads-display:
>     - shard-hsw:          [PASS][7] -> [FAIL][8] ([i915#694])
>    [7]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw1/igt@gem_partial_pwrite_pread@reads-display.html
>    [8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-hsw4/igt@gem_partial_pwrite_pread@reads-display.html
> 
>   * igt@gem_ppgtt@flink-and-close-vma-leak:
>     - shard-glk:          [PASS][9] -> [FAIL][10] ([i915#644])
>    [9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html
>    [10]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html
> 
>   * igt@i915_pm_rps@min-max-config-loaded:
>     - shard-iclb:         [PASS][11] -> [FAIL][12] ([i915#370])
>    [11]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb8/igt@i915_pm_rps@min-max-config-loaded.html
>    [12]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb7/igt@i915_pm_rps@min-max-config-loaded.html
> 
>   * igt@kms_cursor_legacy@pipe-c-torture-move:
>     - shard-glk:          [PASS][13] -> [DMESG-WARN][14] ([i915#128])
>    [13]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk3/igt@kms_cursor_legacy@pipe-c-torture-move.html
>    [14]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-glk9/igt@kms_cursor_legacy@pipe-c-torture-move.html
> 
>   * igt@kms_flip@flip-vs-expired-vblank:
>     - shard-skl:          [PASS][15] -> [FAIL][16] ([i915#79])
>    [15]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-skl1/igt@kms_flip@flip-vs-expired-vblank.html
>    [16]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-skl6/igt@kms_flip@flip-vs-expired-vblank.html
> 
>   * igt@kms_frontbuffer_tracking@fbc-suspend:
>     - shard-apl:          [PASS][17] -> [DMESG-WARN][18] ([i915#180])
> +4 similar issues
>    [17]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-apl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
>    [18]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-apl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
> 
>   * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c-frame-sequence:
>     - shard-skl:          [PASS][19] -> [FAIL][20] ([i915#53])
>    [19]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-skl7/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c-frame-sequence.html
>    [20]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-skl3/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c-frame-sequence.html
> 
>   * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
>     - shard-kbl:          [PASS][21] -> [DMESG-WARN][22] ([i915#180])
> +7 similar issues
>    [21]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-kbl1/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
>    [22]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
> 
>   * igt@kms_psr2_su@page_flip:
>     - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109642] /
> [fdo#111068])
>    [23]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb2/igt@kms_psr2_su@page_flip.html
>    [24]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb5/igt@kms_psr2_su@page_flip.html
> 
>   * igt@kms_psr@psr2_primary_page_flip:
>     - shard-iclb:         [PASS][25] -> [SKIP][26] ([fdo#109441]) +1
> similar issue
>    [25]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
>    [26]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
> 
>   * igt@kms_vblank@pipe-b-query-forked-busy-hang:
>     - shard-snb:          [PASS][27] -> [INCOMPLETE][28] ([CI#80] /
> [i915#82])
>    [27]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-snb5/igt@kms_vblank@pipe-b-query-forked-busy-hang.html
>    [28]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-snb4/igt@kms_vblank@pipe-b-query-forked-busy-hang.html
> 
>   
> #### Possible fixes ####
> 
>   * igt@gem_exec_balancer@smoke:
>     - shard-iclb:         [SKIP][29] ([fdo#110854]) -> [PASS][30]
>    [29]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb3/igt@gem_exec_balancer@smoke.html
>    [30]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb4/igt@gem_exec_balancer@smoke.html
> 
>   * igt@gem_exec_parallel@vcs1-fds:
>     - shard-iclb:         [SKIP][31] ([fdo#112080]) -> [PASS][32] +18
> similar issues
>    [31]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb6/igt@gem_exec_parallel@vcs1-fds.html
>    [32]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb2/igt@gem_exec_parallel@vcs1-fds.html
> 
>   * igt@gem_exec_schedule@independent-bsd2:
>     - shard-iclb:         [SKIP][33] ([fdo#109276]) -> [PASS][34] +23
> similar issues
>    [33]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb6/igt@gem_exec_schedule@independent-bsd2.html
>    [34]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb2/igt@gem_exec_schedule@independent-bsd2.html
> 
>   * igt@gem_exec_schedule@pi-common-bsd:
>     - shard-iclb:         [SKIP][35] ([i915#677]) -> [PASS][36] +1
> similar issue
>    [35]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb4/igt@gem_exec_schedule@pi-common-bsd.html
>    [36]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb8/igt@gem_exec_schedule@pi-common-bsd.html
> 
>   * igt@gem_exec_schedule@preempt-other-chain-bsd:
>     - shard-iclb:         [SKIP][37] ([fdo#112146]) -> [PASS][38] +7
> similar issues
>    [37]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html
>    [38]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb5/igt@gem_exec_schedule@preempt-other-chain-bsd.html
> 
>   * igt@gem_partial_pwrite_pread@writes-after-reads-display:
>     - shard-hsw:          [FAIL][39] ([i915#694]) -> [PASS][40]
>    [39]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw7/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
>    [40]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-hsw6/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
> 
>   * igt@gem_tiled_blits@normal:
>     - shard-hsw:          [FAIL][41] ([i915#818]) -> [PASS][42]
>    [41]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw7/igt@gem_tiled_blits@normal.html
>    [42]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-hsw6/igt@gem_tiled_blits@normal.html
> 
>   * igt@gem_workarounds@suspend-resume:
>     - shard-apl:          [DMESG-WARN][43] ([i915#180]) -> [PASS][44]
>    [43]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-apl1/igt@gem_workarounds@suspend-resume.html
>    [44]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-apl3/igt@gem_workarounds@suspend-resume.html
> 
>   * igt@i915_pm_dc@dc6-psr:
>     - shard-skl:          [FAIL][45] ([i915#454]) -> [PASS][46]
>    [45]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-skl8/igt@i915_pm_dc@dc6-psr.html
>    [46]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-skl1/igt@i915_pm_dc@dc6-psr.html
> 
>   * igt@i915_selftest@live_blt:
>     - shard-hsw:          [DMESG-FAIL][47] ([i915#725]) -> [PASS][48]
>    [47]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw7/igt@i915_selftest@live_blt.html
>    [48]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-hsw7/igt@i915_selftest@live_blt.html
> 
>   * igt@kms_cursor_crc@pipe-c-cursor-suspend:
>     - shard-kbl:          [DMESG-WARN][49] ([i915#180]) -> [PASS][50]
> +3 similar issues
>    [49]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-kbl3/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
>    [50]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> 
>   * igt@kms_flip@2x-flip-vs-expired-vblank:
>     - shard-glk:          [FAIL][51] ([i915#79]) -> [PASS][52]
>    [51]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank.html
>    [52]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank.html
> 
>   * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
>     - shard-skl:          [FAIL][53] ([fdo#108145]) -> [PASS][54]
>    [53]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
>    [54]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-skl3/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
> 
>   * igt@kms_plane_lowres@pipe-a-tiling-x:
>     - shard-glk:          [FAIL][55] ([i915#899]) -> [PASS][56] +1
> similar issue
>    [55]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-glk9/igt@kms_plane_lowres@pipe-a-tiling-x.html
>    [56]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-glk2/igt@kms_plane_lowres@pipe-a-tiling-x.html
> 
>   * igt@kms_psr@psr2_cursor_plane_onoff:
>     - shard-iclb:         [SKIP][57] ([fdo#109441]) -> [PASS][58] +3
> similar issues
>    [57]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb6/igt@kms_psr@psr2_cursor_plane_onoff.html
>    [58]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html
> 
>   * igt@prime_mmap_coherency@ioctl-errors:
>     - shard-hsw:          [FAIL][59] ([i915#831]) -> [PASS][60]
>    [59]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-hsw5/igt@prime_mmap_coherency@ioctl-errors.html
>    [60]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-hsw1/igt@prime_mmap_coherency@ioctl-errors.html
> 
>   
> #### Warnings ####
> 
>   * igt@gem_ctx_isolation@vcs1-nonpriv:
>     - shard-iclb:         [SKIP][61] ([fdo#112080]) -> [FAIL][62]
> ([IGT#28])
>    [61]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb6/igt@gem_ctx_isolation@vcs1-nonpriv.html
>    [62]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv.html
> 
>   * igt@kms_dp_dsc@basic-dsc-enable-edp:
>     - shard-iclb:         [SKIP][63] ([fdo#109349]) -> [DMESG-
> WARN][64] ([fdo#107724])
>    [63]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7864/shard-iclb6/igt@kms_dp_dsc@basic-dsc-enable-edp.html
>    [64]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16403/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
> 
>   
>   [CI#80]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/80
>   [IGT#28]: 
> https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28
>   [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
>   [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
>   [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
>   [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
>   [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
>   [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
>   [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
>   [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
>   [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
>   [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
>   [i915#128]: https://gitlab.freedesktop.org/drm/intel/issues/128
>   [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
>   [i915#370]: https://gitlab.freedesktop.org/drm/intel/issues/370
>   [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
>   [i915#53]: https://gitlab.freedesktop.org/drm/intel/issues/53
>   [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
>   [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
>   [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
>   [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
>   [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
>   [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
>   [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
>   [i915#831]: https://gitlab.freedesktop.org/drm/intel/issues/831
>   [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899
> 
> 
> Participating hosts (10 -> 10)
> ------------------------------
> 
>   No changes in participating hosts
> 
> 
> Build changes
> -------------
> 
>   * CI: CI-20190529 -> None
>   * Linux: CI_DRM_7864 -> Patchwork_16403
> 
>   CI-20190529: 20190529
>   CI_DRM_7864: 5a140e2fc771e4c8b10d14e2db7bfb4996ee9d8a @
> git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_5417: 33cc93c8ba5daa0b7498f297a4f626844d895d06 @
> git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>   Patchwork_16403: 2efd2652094cf1f8a14a2b0eab9c8cfaa50d5be9 @
> 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_16403/index.html
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index aa066fb9eb00..45082e71262c 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1988,10 +1988,12 @@  void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state
 	val &= ~TRANS_DDI_FUNC_ENABLE;
 
 	if (INTEL_GEN(dev_priv) >= 12) {
-		if (!intel_dp_mst_is_master_trans(crtc_state))
+		if (!intel_dp_mst_is_master_trans(crtc_state)) {
 			val &= ~TGL_TRANS_DDI_PORT_MASK;
+			val &= ~TRANS_DDI_MODE_SELECT_MASK;
+		}
 	} else {
-		val &= ~TRANS_DDI_PORT_MASK;
+		val &= ~(TRANS_DDI_PORT_MASK | TRANS_DDI_MODE_SELECT_MASK);
 	}
 	intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(cpu_transcoder), val);
 
@@ -3729,6 +3731,7 @@  static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
 			val = intel_de_read(dev_priv,
 					    TRANS_DDI_FUNC_CTL(cpu_transcoder));
 			val &= ~TGL_TRANS_DDI_PORT_MASK;
+			val &= ~TRANS_DDI_MODE_SELECT_MASK;
 			intel_de_write(dev_priv,
 				       TRANS_DDI_FUNC_CTL(cpu_transcoder),
 				       val);