[Intel-gfx] [PATCH 12/28] drm/i915/tgl: Add TRANSCODER_A_VDSC power domain

Souza, Jose jose.souza at intel.com
Thu Jun 27 19:30:27 UTC 2019


On Thu, 2019-06-27 at 12:28 -0700, José Roberto de Souza wrote:
> On Tue, 2019-06-25 at 10:54 -0700, Lucas De Marchi wrote:
> > From: José Roberto de Souza <jose.souza at intel.com>
> > 
> > On TGL the special EDP transcoder is gone and it should be handled
> > by
> > transcoder A. Add POWER_DOMAIN_TRANSCODER_A_VDSC to make this
> > distinction clear and update vdsc code path.
> > 
> > Cc: Imre Deak <imre.deak at intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> > Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display_power.c |  2 ++
> >  drivers/gpu/drm/i915/display/intel_display_power.h |  1 +
> >  drivers/gpu/drm/i915/display/intel_vdsc.c          | 11 ++++++++
> > ---
> >  3 files changed, 11 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > index 0c7d4a363deb..15582841fefc 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > @@ -58,6 +58,8 @@ intel_display_power_domain_str(struct
> > drm_i915_private *i915,
> >  		return "TRANSCODER_EDP";
> >  	case POWER_DOMAIN_TRANSCODER_EDP_VDSC:
> >  		return "TRANSCODER_EDP_VDSC";
> > +	case POWER_DOMAIN_TRANSCODER_A_VDSC:
> > +		return "TRANSCODER_A_VDSC";
> >  	case POWER_DOMAIN_TRANSCODER_DSI_A:
> >  		return "TRANSCODER_DSI_A";
> >  	case POWER_DOMAIN_TRANSCODER_DSI_C:
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h
> > b/drivers/gpu/drm/i915/display/intel_display_power.h
> > index 79262a5bceb4..7761b493608a 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
> > @@ -29,6 +29,7 @@ enum intel_display_power_domain {
> >  	POWER_DOMAIN_TRANSCODER_D,
> >  	POWER_DOMAIN_TRANSCODER_EDP,
> >  	POWER_DOMAIN_TRANSCODER_EDP_VDSC,
> > +	POWER_DOMAIN_TRANSCODER_A_VDSC,
> >  	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..0c75b408d6ba 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> > @@ -459,16 +459,21 @@ 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 *dev_priv = to_i915(crtc_state-
> > > base.state->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/A transcoder uses a separate
> > power well
> > +	 * PW2. This requires
> > +	 *
> > POWER_DOMAIN_TRANSCODER_EDP_VDSC/POWER_DOMAIN_TRANSCODER_A_VDSC
> > 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.
> >  	 */
> > -	if (cpu_transcoder == TRANSCODER_EDP)
> > +	if (INTEL_GEN(dev_priv) >= 12 && cpu_transcoder ==
> > TRANSCODER_A)
> > +		return POWER_DOMAIN_TRANSCODER_A_VDSC;
> > +	else if (cpu_transcoder == TRANSCODER_EDP)
> >  		return POWER_DOMAIN_TRANSCODER_EDP_VDSC;
> >  	else
> >  		return POWER_DOMAIN_TRANSCODER(cpu_transcoder);
> 
> This is missing the change adding POWER_DOMAIN_TRANSCODER_EDP_VDSC to
> TGL_PW_2_POWER_DOMAINS.


* TRANSCODER_A_VDSC *
Missing the change adding TRANSCODER_A_VDSC to TGL_PW_2_POWER_DOMAINS


More information about the Intel-gfx mailing list