On Wed, 2019-07-10 at 12:49 -0700, Lucas De Marchi wrote: > From: José Roberto de Souza <jose.souza@xxxxxxxxx> > > 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) > Acked-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > Cc: Imre Deak <imre.deak@xxxxxxxxx> > Signed-off-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_display_power.c | 6 +++--- > drivers/gpu/drm/i915/display/intel_display_power.h | 3 ++- > drivers/gpu/drm/i915/display/intel_vdsc.c | 14 ++++++++++ > ---- > 3 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c > b/drivers/gpu/drm/i915/display/intel_display_power.c > index 7437fc71d289..4f4c35a5ef2a 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.c > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c > @@ -48,8 +48,8 @@ intel_display_power_domain_str(enum > intel_display_power_domain domain) > return "TRANSCODER_C"; > case POWER_DOMAIN_TRANSCODER_EDP: > return "TRANSCODER_EDP"; > - case POWER_DOMAIN_TRANSCODER_EDP_VDSC: > - return "TRANSCODER_EDP_VDSC"; > + case POWER_DOMAIN_TRANSCODER_VDSC_PW2: > + return "TRANSCODER_VDSC_PW2"; > case POWER_DOMAIN_TRANSCODER_DSI_A: > return "TRANSCODER_DSI_A"; > case POWER_DOMAIN_TRANSCODER_DSI_C: > @@ -2448,7 +2448,7 @@ void intel_display_power_put(struct > drm_i915_private *dev_priv, > */ > #define ICL_PW_2_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)) > /* > * - KVMR (HW control) > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h > b/drivers/gpu/drm/i915/display/intel_display_power.h > index 8f43f7051a16..cc6956132ebc 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_power.h > +++ b/drivers/gpu/drm/i915/display/intel_display_power.h > @@ -25,7 +25,8 @@ enum intel_display_power_domain { > POWER_DOMAIN_TRANSCODER_B, > POWER_DOMAIN_TRANSCODER_C, > 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_C, > POWER_DOMAIN_PORT_DDI_A_LANES, > diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c > b/drivers/gpu/drm/i915/display/intel_vdsc.c > index ffec807b8960..4ab19c432ef5 100644 > --- a/drivers/gpu/drm/i915/display/intel_vdsc.c > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c > @@ -459,17 +459,23 @@ int intel_dp_compute_dsc_params(struct intel_dp > *intel_dp, > enum intel_display_power_domain > 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; > > /* > - * On ICL VDSC/joining for eDP transcoder uses a separate power > well PW2 > - * This requires POWER_DOMAIN_TRANSCODER_EDP_VDSC power domain. > + * On ICL VDSC/joining for eDP transcoder uses a separate power > well, > + * PW2. This requires POWER_DOMAIN_TRANSCODER_VDSC_PW2 power > domain. > * For any other transcoder, VDSC/joining uses the power well > associated > * with the pipe/transcoder in use. Hence another reference on > the > * 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) > - return POWER_DOMAIN_TRANSCODER_EDP_VDSC; > + if (INTEL_GEN(i915) >= 12 && cpu_transcoder == TRANSCODER_A) > + return POWER_DOMAIN_TRANSCODER_VDSC_PW2; > + else if (cpu_transcoder == TRANSCODER_EDP) > + return POWER_DOMAIN_TRANSCODER_VDSC_PW2; > else > return POWER_DOMAIN_TRANSCODER(cpu_transcoder); > } _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx