Re: [PATCH 2/2] drm/i915: Use single set of AUX powerwell ops for gen11+

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 20, 2020 at 01:09:05PM -0700, Souza, Jose wrote:
> On Wed, 2020-04-15 at 16:34 -0700, Matt Roper wrote:
> > AUX power wells sometimes need additional handling besides just
> > programming the specific power well registers:
> >  * Type-C PHY's also require additional Type-C register programming
> >  * ICL combo PHY's require additional workarounds
> >  * TGL & EHL combo PHY's can be treated like any other power well
> > 
> > Today we have dedicated aux ops for the ICL combo PHY and Type-C
> > cases.
> > This works fine, but means that when a new platform shows up with
> > identical general power well handling, but different types of PHYs on
> > its outputs, we have to define an entire new power well table for
> > that
> > platform and can't just re-use the table from the earlier platform --
> > as
> > an example, see ehl_power_wells[], which is a subset of
> > icl_power_wells[], *except* that we need to specify different AUX ops
> > for the third display.
> > 
> > If we instead create a single set of top-level aux ops that will
> > check
> > the PHY type and then dispatch to the appropriate handlers, we can
> > get
> > more reuse out of our power well definitions.  This allows us to
> > immediately eliminate ehl_power_wells[] and simply reuse the ICL
> > table;
> > if future platforms follow the same general power well assignments as
> > either ICL or TGL, we'll be able to re-use those tables in the same
> > way.
> > 
> > Note that I've only changed ICL+ platforms over to using the new
> > icl_aux
> > ops; at this point it's unlikely that we'll have any new platforms
> > that
> > re-use gen9 or earlier power well configurations.
> > 
> > v2:
> >  - ICL_AUX_PW_TO_PHY() won't return the proper PHY for TBT AUX power
> >    wells.  But we know those wells will only used on Type-C outputs
> >    anyway, so we can just check is is_tc_tbt flag in the condition.
> >    (Jose).
> > 
> 
> Reviewed-by: José Roberto de Souza <jose.souza@xxxxxxxxx>

Applied to dinq.  Thanks for the review.


Matt

> 
> > Cc: José Roberto de Souza <jose.souza@xxxxxxxxx>
> > Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx>
> > ---
> >  .../drm/i915/display/intel_display_power.c    | 244 +++++-----------
> > --
> >  1 file changed, 62 insertions(+), 182 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > index 03bdde19c8c9..f72935146778 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > @@ -593,6 +593,40 @@ icl_tc_phy_aux_power_well_disable(struct
> > drm_i915_private *dev_priv,
> >  	hsw_power_well_disable(dev_priv, power_well);
> >  }
> >  
> > +static void
> > +icl_aux_power_well_enable(struct drm_i915_private *dev_priv,
> > +			  struct i915_power_well *power_well)
> > +{
> > +	int pw_idx = power_well->desc->hsw.idx;
> > +	enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);  /* non-TBT only */
> > +	bool is_tbt = power_well->desc->hsw.is_tc_tbt;
> > +
> > +	if (is_tbt || intel_phy_is_tc(dev_priv, phy))
> > +		return icl_tc_phy_aux_power_well_enable(dev_priv,
> > power_well);
> > +	else if (IS_ICELAKE(dev_priv))
> > +		return icl_combo_phy_aux_power_well_enable(dev_priv,
> > +							   power_well);
> > +	else
> > +		return hsw_power_well_enable(dev_priv, power_well);
> > +}
> > +
> > +static void
> > +icl_aux_power_well_disable(struct drm_i915_private *dev_priv,
> > +			   struct i915_power_well *power_well)
> > +{
> > +	int pw_idx = power_well->desc->hsw.idx;
> > +	enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);  /* non-TBT only */
> > +	bool is_tbt = power_well->desc->hsw.is_tc_tbt;
> > +
> > +	if (is_tbt || intel_phy_is_tc(dev_priv, phy))
> > +		return icl_tc_phy_aux_power_well_disable(dev_priv,
> > power_well);
> > +	else if (IS_ICELAKE(dev_priv))
> > +		return icl_combo_phy_aux_power_well_disable(dev_priv,
> > +							    power_well)
> > ;
> > +	else
> > +		return hsw_power_well_disable(dev_priv, power_well);
> > +}
> > +
> >  /*
> >   * We should only use the power well if we explicitly asked the
> > hardware to
> >   * enable it, so check if it's enabled and also check if we've
> > requested it to
> > @@ -3503,17 +3537,10 @@ static const struct i915_power_well_desc
> > cnl_power_wells[] = {
> >  	},
> >  };
> >  
> > -static const struct i915_power_well_ops
> > icl_combo_phy_aux_power_well_ops = {
> > -	.sync_hw = hsw_power_well_sync_hw,
> > -	.enable = icl_combo_phy_aux_power_well_enable,
> > -	.disable = icl_combo_phy_aux_power_well_disable,
> > -	.is_enabled = hsw_power_well_enabled,
> > -};
> > -
> > -static const struct i915_power_well_ops
> > icl_tc_phy_aux_power_well_ops = {
> > +static const struct i915_power_well_ops icl_aux_power_well_ops = {
> >  	.sync_hw = hsw_power_well_sync_hw,
> > -	.enable = icl_tc_phy_aux_power_well_enable,
> > -	.disable = icl_tc_phy_aux_power_well_disable,
> > +	.enable = icl_aux_power_well_enable,
> > +	.disable = icl_aux_power_well_disable,
> >  	.is_enabled = hsw_power_well_enabled,
> >  };
> >  
> > @@ -3643,7 +3670,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX A",
> >  		.domains = ICL_AUX_A_IO_POWER_DOMAINS,
> > -		.ops = &icl_combo_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3653,7 +3680,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX B",
> >  		.domains = ICL_AUX_B_IO_POWER_DOMAINS,
> > -		.ops = &icl_combo_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3663,7 +3690,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX C TC1",
> >  		.domains = ICL_AUX_C_TC1_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3674,7 +3701,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX D TC2",
> >  		.domains = ICL_AUX_D_TC2_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3685,7 +3712,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX E TC3",
> >  		.domains = ICL_AUX_E_TC3_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3696,7 +3723,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX F TC4",
> >  		.domains = ICL_AUX_F_TC4_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3707,7 +3734,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX C TBT1",
> >  		.domains = ICL_AUX_C_TBT1_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3718,7 +3745,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX D TBT2",
> >  		.domains = ICL_AUX_D_TBT2_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3729,7 +3756,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX E TBT3",
> >  		.domains = ICL_AUX_E_TBT3_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3740,7 +3767,7 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	{
> >  		.name = "AUX F TBT4",
> >  		.domains = ICL_AUX_F_TBT4_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -3762,151 +3789,6 @@ static const struct i915_power_well_desc
> > icl_power_wells[] = {
> >  	},
> >  };
> >  
> > -static const struct i915_power_well_desc ehl_power_wells[] = {
> > -	{
> > -		.name = "always-on",
> > -		.always_on = true,
> > -		.domains = POWER_DOMAIN_MASK,
> > -		.ops = &i9xx_always_on_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -	},
> > -	{
> > -		.name = "power well 1",
> > -		/* Handled by the DMC firmware */
> > -		.always_on = true,
> > -		.domains = 0,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = SKL_DISP_PW_1,
> > -		{
> > -			.hsw.regs = &hsw_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_PW_1,
> > -			.hsw.has_fuses = true,
> > -		},
> > -	},
> > -	{
> > -		.name = "DC off",
> > -		.domains = ICL_DISPLAY_DC_OFF_POWER_DOMAINS,
> > -		.ops = &gen9_dc_off_power_well_ops,
> > -		.id = SKL_DISP_DC_OFF,
> > -	},
> > -	{
> > -		.name = "power well 2",
> > -		.domains = ICL_PW_2_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = SKL_DISP_PW_2,
> > -		{
> > -			.hsw.regs = &hsw_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_PW_2,
> > -			.hsw.has_fuses = true,
> > -		},
> > -	},
> > -	{
> > -		.name = "power well 3",
> > -		.domains = ICL_PW_3_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &hsw_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_PW_3,
> > -			.hsw.irq_pipe_mask = BIT(PIPE_B),
> > -			.hsw.has_vga = true,
> > -			.hsw.has_fuses = true,
> > -		},
> > -	},
> > -	{
> > -		.name = "DDI A IO",
> > -		.domains = ICL_DDI_IO_A_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_ddi_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_DDI_A,
> > -		},
> > -	},
> > -	{
> > -		.name = "DDI B IO",
> > -		.domains = ICL_DDI_IO_B_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_ddi_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_DDI_B,
> > -		},
> > -	},
> > -	{
> > -		.name = "DDI C IO",
> > -		.domains = ICL_DDI_IO_C_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_ddi_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_DDI_C,
> > -		},
> > -	},
> > -	{
> > -		.name = "DDI D IO",
> > -		.domains = ICL_DDI_IO_D_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_ddi_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_DDI_D,
> > -		},
> > -	},
> > -	{
> > -		.name = "AUX A",
> > -		.domains = ICL_AUX_A_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_aux_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_AUX_A,
> > -		},
> > -	},
> > -	{
> > -		.name = "AUX B",
> > -		.domains = ICL_AUX_B_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_aux_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_AUX_B,
> > -		},
> > -	},
> > -	{
> > -		.name = "AUX C",
> > -		.domains = ICL_AUX_C_TC1_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_aux_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_AUX_C,
> > -		},
> > -	},
> > -	{
> > -		.name = "AUX D",
> > -		.domains = ICL_AUX_D_TC2_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &icl_aux_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_AUX_D,
> > -		},
> > -	},
> > -	{
> > -		.name = "power well 4",
> > -		.domains = ICL_PW_4_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > -		.id = DISP_PW_ID_NONE,
> > -		{
> > -			.hsw.regs = &hsw_power_well_regs,
> > -			.hsw.idx = ICL_PW_CTL_IDX_PW_4,
> > -			.hsw.has_fuses = true,
> > -			.hsw.irq_pipe_mask = BIT(PIPE_C),
> > -		},
> > -	},
> > -};
> > -
> >  static const struct i915_power_well_desc tgl_power_wells[] = {
> >  	{
> >  		.name = "always-on",
> > @@ -4051,7 +3933,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX A",
> >  		.domains = TGL_AUX_A_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4061,7 +3943,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX B",
> >  		.domains = TGL_AUX_B_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4071,7 +3953,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX C",
> >  		.domains = TGL_AUX_C_IO_POWER_DOMAINS,
> > -		.ops = &hsw_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4081,7 +3963,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX D TC1",
> >  		.domains = TGL_AUX_D_TC1_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4092,7 +3974,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX E TC2",
> >  		.domains = TGL_AUX_E_TC2_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4103,7 +3985,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX F TC3",
> >  		.domains = TGL_AUX_F_TC3_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4114,7 +3996,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX G TC4",
> >  		.domains = TGL_AUX_G_TC4_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4125,7 +4007,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX H TC5",
> >  		.domains = TGL_AUX_H_TC5_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4136,7 +4018,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX I TC6",
> >  		.domains = TGL_AUX_I_TC6_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4147,7 +4029,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX D TBT1",
> >  		.domains = TGL_AUX_D_TBT1_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4158,7 +4040,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX E TBT2",
> >  		.domains = TGL_AUX_E_TBT2_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4169,7 +4051,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX F TBT3",
> >  		.domains = TGL_AUX_F_TBT3_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4180,7 +4062,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX G TBT4",
> >  		.domains = TGL_AUX_G_TBT4_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4191,7 +4073,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX H TBT5",
> >  		.domains = TGL_AUX_H_TBT5_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4202,7 +4084,7 @@ static const struct i915_power_well_desc
> > tgl_power_wells[] = {
> >  	{
> >  		.name = "AUX I TBT6",
> >  		.domains = TGL_AUX_I_TBT6_IO_POWER_DOMAINS,
> > -		.ops = &icl_tc_phy_aux_power_well_ops,
> > +		.ops = &icl_aux_power_well_ops,
> >  		.id = DISP_PW_ID_NONE,
> >  		{
> >  			.hsw.regs = &icl_aux_power_well_regs,
> > @@ -4383,8 +4265,6 @@ int intel_power_domains_init(struct
> > drm_i915_private *dev_priv)
> >  	 */
> >  	if (IS_GEN(dev_priv, 12)) {
> >  		err = set_power_wells(power_domains, tgl_power_wells);
> > -	} else if (IS_ELKHARTLAKE(dev_priv)) {
> > -		err = set_power_wells(power_domains, ehl_power_wells);
> >  	} else if (IS_GEN(dev_priv, 11)) {
> >  		err = set_power_wells(power_domains, icl_power_wells);
> >  	} else if (IS_CANNONLAKE(dev_priv)) {

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux