> -----Original Message-----
> From: Dibin Moolakadan Subrahmanian
> <[email protected]>
> Sent: Friday, June 5, 2026 2:14 PM
> To: [email protected]; [email protected]
> Cc: Manna, Animesh <[email protected]>; Shankar, Uma
> <[email protected]>; [email protected]
> Subject: [PATCH v5 06/14] drm/i915/display: Add DC3CO support check
>
> Add intel_display_power_dc3co_supported() helper to query DC3CO support from
> allowed_dc_mask.
>
> Changes in v5:
> - Add HAS_DC3CO() check to intel_display_power_dc3co_supported().
Looks Good to me.
Reviewed-by: Uma Shankar <[email protected]>
> Signed-off-by: Dibin Moolakadan Subrahmanian
> <[email protected]>
> ---
> drivers/gpu/drm/i915/display/intel_display_power.c | 10 ++++++++++
> drivers/gpu/drm/i915/display/intel_display_power.h | 1 +
> 2 files changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 271d50d5da3f..eadae8eb5709 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -358,6 +358,16 @@ u32 intel_display_power_get_current_dc_state(struct
> intel_display *display)
> return current_dc_state;
> }
>
> +bool intel_display_power_dc3co_supported(struct intel_display *display)
> +{
> + struct i915_power_domains *power_domains = &display->power.domains;
> +
> + if (!HAS_DC3CO(display))
> + return false;
> +
> + return (power_domains->allowed_dc_mask &
> DC_STATE_EN_UPTO_DC3CO) ==
> +DC_STATE_EN_UPTO_DC3CO; }
> +
> static void __async_put_domains_mask(struct i915_power_domains
> *power_domains,
> struct intel_power_domain_mask *mask) {
> diff
> --git a/drivers/gpu/drm/i915/display/intel_display_power.h
> b/drivers/gpu/drm/i915/display/intel_display_power.h
> index 56dc89eed3f8..06b3e49e5f8b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
> @@ -182,6 +182,7 @@ void intel_display_power_resume_early(struct
> intel_display *display); void intel_display_power_set_target_dc_state(struct
> intel_display *display,
> u32 state);
> u32 intel_display_power_get_current_dc_state(struct intel_display *display);
> +bool intel_display_power_dc3co_supported(struct intel_display
> +*display);
>
> void intel_display_power_runtime_suspend(struct intel_display *display);
> void
> intel_display_power_runtime_resume(struct intel_display *display);
> --
> 2.43.0