Commit 276199e6 authored by José Roberto de Souza's avatar José Roberto de Souza Committed by Lucas De Marchi

drm/i915/tgl: rename TRANSCODER_EDP_VDSC to use on transcoder A

On TGL the special EDP transcoder is gone and it should be handled by
transcoder A.

v2 (Lucas):
  - Reuse POWER_DOMAIN_TRANSCODER_EDP_VDSC (suggested by Ville)
  - Use crtc->dev since new_crtc_state->state may be NULL on atomic
    commit (suggested by Maarten)
v3 (Lucas):
  - Rename power domain so it's clear it can also be used for transcoder
    A in TGL (requested by José and Manasi)

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Acked-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
Reviewed-by: default avatarManasi Navare <manasi.d.navare@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190711173115.28296-8-lucas.demarchi@intel.com
parent 7ff0fca4
...@@ -48,8 +48,8 @@ intel_display_power_domain_str(enum intel_display_power_domain domain) ...@@ -48,8 +48,8 @@ intel_display_power_domain_str(enum intel_display_power_domain domain)
return "TRANSCODER_C"; return "TRANSCODER_C";
case POWER_DOMAIN_TRANSCODER_EDP: case POWER_DOMAIN_TRANSCODER_EDP:
return "TRANSCODER_EDP"; return "TRANSCODER_EDP";
case POWER_DOMAIN_TRANSCODER_EDP_VDSC: case POWER_DOMAIN_TRANSCODER_VDSC_PW2:
return "TRANSCODER_EDP_VDSC"; return "TRANSCODER_VDSC_PW2";
case POWER_DOMAIN_TRANSCODER_DSI_A: case POWER_DOMAIN_TRANSCODER_DSI_A:
return "TRANSCODER_DSI_A"; return "TRANSCODER_DSI_A";
case POWER_DOMAIN_TRANSCODER_DSI_C: case POWER_DOMAIN_TRANSCODER_DSI_C:
...@@ -2450,7 +2450,7 @@ void intel_display_power_put(struct drm_i915_private *dev_priv, ...@@ -2450,7 +2450,7 @@ void intel_display_power_put(struct drm_i915_private *dev_priv,
*/ */
#define ICL_PW_2_POWER_DOMAINS ( \ #define ICL_PW_2_POWER_DOMAINS ( \
ICL_PW_3_POWER_DOMAINS | \ ICL_PW_3_POWER_DOMAINS | \
BIT_ULL(POWER_DOMAIN_TRANSCODER_EDP_VDSC) | \ BIT_ULL(POWER_DOMAIN_TRANSCODER_VDSC_PW2) | \
BIT_ULL(POWER_DOMAIN_INIT)) BIT_ULL(POWER_DOMAIN_INIT))
/* /*
* - KVMR (HW control) * - KVMR (HW control)
......
...@@ -25,7 +25,8 @@ enum intel_display_power_domain { ...@@ -25,7 +25,8 @@ enum intel_display_power_domain {
POWER_DOMAIN_TRANSCODER_B, POWER_DOMAIN_TRANSCODER_B,
POWER_DOMAIN_TRANSCODER_C, POWER_DOMAIN_TRANSCODER_C,
POWER_DOMAIN_TRANSCODER_EDP, POWER_DOMAIN_TRANSCODER_EDP,
POWER_DOMAIN_TRANSCODER_EDP_VDSC, /* VDSC/joining for TRANSCODER_EDP (ICL) or TRANSCODER_A (TGL) */
POWER_DOMAIN_TRANSCODER_VDSC_PW2,
POWER_DOMAIN_TRANSCODER_DSI_A, POWER_DOMAIN_TRANSCODER_DSI_A,
POWER_DOMAIN_TRANSCODER_DSI_C, POWER_DOMAIN_TRANSCODER_DSI_C,
POWER_DOMAIN_PORT_DDI_A_LANES, POWER_DOMAIN_PORT_DDI_A_LANES,
......
...@@ -459,17 +459,23 @@ int intel_dp_compute_dsc_params(struct intel_dp *intel_dp, ...@@ -459,17 +459,23 @@ int intel_dp_compute_dsc_params(struct intel_dp *intel_dp,
enum intel_display_power_domain enum intel_display_power_domain
intel_dsc_power_domain(const struct intel_crtc_state *crtc_state) intel_dsc_power_domain(const struct intel_crtc_state *crtc_state)
{ {
struct drm_i915_private *i915 = to_i915(crtc_state->base.crtc->dev);
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder; enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
/* /*
* On ICL VDSC/joining for eDP transcoder uses a separate power well PW2 * On ICL VDSC/joining for eDP transcoder uses a separate power well,
* This requires POWER_DOMAIN_TRANSCODER_EDP_VDSC power domain. * PW2. This requires POWER_DOMAIN_TRANSCODER_VDSC_PW2 power domain.
* For any other transcoder, VDSC/joining uses the power well associated * For any other transcoder, VDSC/joining uses the power well associated
* with the pipe/transcoder in use. Hence another reference on the * with the pipe/transcoder in use. Hence another reference on the
* transcoder power domain will suffice. * transcoder power domain will suffice.
*
* On TGL we have the same mapping, but for transcoder A (the special
* TRANSCODER_EDP is gone).
*/ */
if (cpu_transcoder == TRANSCODER_EDP) if (INTEL_GEN(i915) >= 12 && cpu_transcoder == TRANSCODER_A)
return POWER_DOMAIN_TRANSCODER_EDP_VDSC; return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
else if (cpu_transcoder == TRANSCODER_EDP)
return POWER_DOMAIN_TRANSCODER_VDSC_PW2;
else else
return POWER_DOMAIN_TRANSCODER(cpu_transcoder); return POWER_DOMAIN_TRANSCODER(cpu_transcoder);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment