[Intel-gfx] [PATCH 2/2] drm/i915/tgl: Fix the read of the DDI that transcoder is attached to

Lucas De Marchi lucas.demarchi at intel.com
Fri Aug 2 00:50:53 UTC 2019


On Thu, Aug 01, 2019 at 04:28:12PM -0700, Jose Souza wrote:
>On TGL this register do not map directly to port, it was already
>handled when setting it(TGL_TRANS_DDI_SELECT_PORT()) but not when
>reading it.
>
>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
>---
> drivers/gpu/drm/i915/display/intel_display.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>index 9e4ee29fd0fc..b9526aa402f9 100644
>--- a/drivers/gpu/drm/i915/display/intel_display.c
>+++ b/drivers/gpu/drm/i915/display/intel_display.c
>@@ -10353,11 +10353,17 @@ static void haswell_get_ddi_port_state(struct intel_crtc *crtc,
>
> 	tmp = I915_READ(TRANS_DDI_FUNC_CTL(pipe_config->cpu_transcoder));
>
>-	if (INTEL_GEN(dev_priv) >= 12)
>+	if (INTEL_GEN(dev_priv) >= 12) {
> 		port = (tmp & TGL_TRANS_DDI_PORT_MASK) >>
> 			TGL_TRANS_DDI_PORT_SHIFT;
>-	else
>+		/*
>+		 * Register values: none = 0, DDIA = 1... while PORT_A = 0...
>+		 * so subtract one
>+		 */
>+		port--;

port = TGL_PORT_TRANS_DDI_SELECT(tmp)

and put the macro right below the TGL_TRANS_DDI_SELECT_PORT() so the
intent is explicit and we don't forget again. Then you can remove the
comment.

any chance of tmp being none and the -1 underflow?

Lucas De Marchi


>+	} else {
> 		port = (tmp & TRANS_DDI_PORT_MASK) >> TRANS_DDI_PORT_SHIFT;
>+	}
>
> 	if (INTEL_GEN(dev_priv) >= 11)
> 		icelake_get_ddi_pll(dev_priv, port, pipe_config);
>-- 
>2.22.0
>


More information about the Intel-gfx mailing list