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

Lucas De Marchi lucas.demarchi at intel.com
Thu Aug 8 01:00:42 UTC 2019


On Wed, Aug 07, 2019 at 05:49:35PM -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.
>
>To make it consisntent adding a macro for the older gens too.
>
>v2:
>Adding TGL_PORT_TRANS_DDI_SELECT() so all future users can reuse it
>(Lucas)
>
>v3:
>Missed parentheses arround val (Jose)
>
>v4:
>Renamed TGL_PORT_TRANS_DDI_SELECT to TGL_TRANS_DDI_FUNC_CTL_VAL_TO_PORT
>(Lucas)
>Added TRANS_DDI_FUNC_CTL_VAL_TO_PORT (Lucas)
>
>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>Signed-off-by: José Roberto de Souza <jose.souza at intel.com>


Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

Lucas De Marchi

>---
> drivers/gpu/drm/i915/display/intel_display.c | 5 ++---
> drivers/gpu/drm/i915/i915_reg.h              | 2 ++
> 2 files changed, 4 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>index 935aec7660af..0a31d9113699 100644
>--- a/drivers/gpu/drm/i915/display/intel_display.c
>+++ b/drivers/gpu/drm/i915/display/intel_display.c
>@@ -10354,10 +10354,9 @@ 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)
>-		port = (tmp & TGL_TRANS_DDI_PORT_MASK) >>
>-			TGL_TRANS_DDI_PORT_SHIFT;
>+		port = TGL_TRANS_DDI_FUNC_CTL_VAL_TO_PORT(tmp);
> 	else
>-		port = (tmp & TRANS_DDI_PORT_MASK) >> TRANS_DDI_PORT_SHIFT;
>+		port = TRANS_DDI_FUNC_CTL_VAL_TO_PORT(tmp);
>
> 	if (INTEL_GEN(dev_priv) >= 11)
> 		icelake_get_ddi_pll(dev_priv, port, pipe_config);
>diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>index d760830cfd7b..3d1c30a82302 100644
>--- a/drivers/gpu/drm/i915/i915_reg.h
>+++ b/drivers/gpu/drm/i915/i915_reg.h
>@@ -9432,6 +9432,8 @@ enum skl_power_gate {
> #define  TGL_TRANS_DDI_PORT_MASK	(0xf << TGL_TRANS_DDI_PORT_SHIFT)
> #define  TRANS_DDI_SELECT_PORT(x)	((x) << TRANS_DDI_PORT_SHIFT)
> #define  TGL_TRANS_DDI_SELECT_PORT(x)	(((x) + 1) << TGL_TRANS_DDI_PORT_SHIFT)
>+#define  TRANS_DDI_FUNC_CTL_VAL_TO_PORT(val)	 (((val) & TRANS_DDI_PORT_MASK) >> TRANS_DDI_PORT_SHIFT)
>+#define  TGL_TRANS_DDI_FUNC_CTL_VAL_TO_PORT(val) (((val) & TGL_TRANS_DDI_PORT_MASK >> TGL_TRANS_DDI_PORT_SHIFT) - 1)
> #define  TRANS_DDI_MODE_SELECT_MASK	(7 << 24)
> #define  TRANS_DDI_MODE_SELECT_HDMI	(0 << 24)
> #define  TRANS_DDI_MODE_SELECT_DVI	(1 << 24)
>-- 
>2.22.0
>


More information about the Intel-gfx mailing list