On Wed, 27 May 2026, Dibin Moolakadan Subrahmanian
<[email protected]> wrote:
> Add intel_display_power_dc3co_supported() helper to query DC3CO
> support from allowed_dc_mask.
>
> Changes in v2:
> - Squash "Add helper to check DC3CO support" patch into this patch
>
> Changes in v4:
> - Remove introduced dc state validation,as it may break
> fall back mechanism (sashiko)
>
> Signed-off-by: Dibin Moolakadan Subrahmanian
> <[email protected]>
> ---
> drivers/gpu/drm/i915/display/intel_display_power.c | 8 ++++++++
> drivers/gpu/drm/i915/display/intel_display_power.h | 1 +
> 2 files changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> b/drivers/gpu/drm/i915/display/intel_display_power.c
> index c70971ffd9f0..4b91747b38f1 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -302,6 +302,7 @@ void intel_display_power_set_target_dc_state(struct
> intel_display *display,
> struct i915_power_domains *power_domains = &display->power.domains;
>
> mutex_lock(&power_domains->lock);
> +
Superfluous.
> power_well = lookup_power_well(display, SKL_DISP_DC_OFF);
>
> if (drm_WARN_ON(display->drm, !power_well))
> @@ -358,6 +359,13 @@ 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)
This should probably be static. See my other replies in the thread.
> +{
> + struct i915_power_domains *power_domains = &display->power.domains;
> +
> + 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 d616d5d09cbe..05880e9da89f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
> @@ -186,6 +186,7 @@ void intel_display_power_resume(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);
>
> bool intel_display_power_is_enabled(struct intel_display *display,
> enum intel_display_power_domain domain);
--
Jani Nikula, Intel