[Intel-gfx] [PATCH 1/2] drm/i915/display: Group DC9 mask set

Lucas De Marchi lucas.demarchi at intel.com
Wed Nov 11 21:12:32 UTC 2020


On Wed, Nov 11, 2020 at 08:24:07AM -0800, Jose Souza wrote:
>DC9 has a separate HW flow from the rest of the DC states and it is
>available in GEN9 LP platforms and on GEN11 and newer, so here
>moving the assignment of the mask to a single conditional block to
>simplifly code.
>
>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
>Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
>---
> .../gpu/drm/i915/display/intel_display_power.c | 18 ++++++++----------
> 1 file changed, 8 insertions(+), 10 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
>index 689922480661..48d41a43fbb2 100644
>--- a/drivers/gpu/drm/i915/display/intel_display_power.c
>+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
>@@ -4497,26 +4497,24 @@ static u32 get_allowed_dc_mask(const struct drm_i915_private *dev_priv,
> 			max_dc = 3;
> 		else
> 			max_dc = 4;
>-		/*
>-		 * DC9 has a separate HW flow from the rest of the DC states,
>-		 * not depending on the DMC firmware. It's needed by system
>-		 * suspend/resume, so allow it unconditionally.
>-		 */
>-		mask = DC_STATE_EN_DC9;
> 	} else if (IS_GEN(dev_priv, 11)) {
> 		max_dc = 2;
>-		mask = DC_STATE_EN_DC9;
> 	} else if (IS_GEN(dev_priv, 10) || IS_GEN9_BC(dev_priv)) {
> 		max_dc = 2;
>-		mask = 0;
> 	} else if (IS_GEN9_LP(dev_priv)) {
> 		max_dc = 1;
>-		mask = DC_STATE_EN_DC9;
> 	} else {
> 		max_dc = 0;
>-		mask = 0;
> 	}
>
>+	/*
>+	 * DC9 has a separate HW flow from the rest of the DC states,
>+	 * not depending on the DMC firmware. It's needed by system
>+	 * suspend/resume, so allow it unconditionally.
>+	 */
>+	mask = IS_GEN9_LP(dev_priv) || INTEL_GEN(dev_priv) >= 11 ?
>+	       DC_STATE_EN_DC9 : 0;

humn... these 2 conditions here in a ternary operator is something that
will probably get even harder to read if we have to add more conditions.
Maybe just move the default value to the declaration (mask = 0) and here
you do:

if (IS_GEN9_LP(dev_priv) || INTEL_GEN(dev_priv) >= 11)
	mask = DC_STATE_EN_DC9;

?

Up to you. Change looks correct


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

Lucas De Marchi

>+
> 	if (!dev_priv->params.disable_power_well)
> 		max_dc = 0;
>
>-- 
>2.29.2
>


More information about the Intel-gfx mailing list