Re: [PATCH v3 4/5] drm/i915/display: add a way to restore only display/pch registers in clock_gating

[email protected]
Newsgroups org.freedesktop.lists.intel-xe,org.freedesktop.lists.intel-gfx
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Replacing `intel_clock_gating_init()` with `intel_display_restore_clock_gating()` in `hsw_disable_pc8()` causes GT and uncore clock gating workarounds to be permanently lost after runtime suspend on Haswell and Broadwell.
--

--- Patch [4]: [PATCH v3 4/5] drm/i915/display: add a way to restore only display/pch registers in clock_gating ---
commit d0464f11c51adf2ddadf337dda54d674de543139
Author: Luca Coelho <[email protected]>
drm/i915/display: add a way to restore only display/pch registers in clock_gating

This commit introduces intel_display_restore_clock_gating() to isolate display
and PCH register restoration from core i915 clock gating initialization. It
updates hsw_disable_pc8() to use this new function instead of the broader
intel_clock_gating_init().

> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 0ebec6e0c2400..aab934f435308 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c

[ ... ]

> @@ -1588,7 +1588,7 @@ static void hsw_disable_pc8(struct intel_display *display)
>  	intel_init_pch_refclk(display);
>  
>  	/* Many display registers don't survive PC8+ */
> -	intel_clock_gating_init(display->drm);
> +	intel_display_restore_clock_gating(display);
>  }

[Severity: High]
Does replacing intel_clock_gating_init() with
intel_display_restore_clock_gating() here cause GT and uncore clock gating
workarounds to be permanently lost after runtime suspend on Haswell and
Broadwell?

When the hardware enters PC8 during runtime suspend, it loses uncore and GT
register state. Upon system wake, hsw_disable_pc8() is called in the resume
path. Bypassing the core intel_clock_gating_init() seems to leave the GT
workarounds unrestored.

Could this lead to subsequent GPU workloads executing with missing
workarounds, potentially causing GPU hangs or system instability under load?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=4
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.