On Thu, Feb 12, 2026 at 08:27:31AM +0200, Jouni Högander wrote:
> PORT_ALPM_CTL is supposed to be written only before link training. Remove
> writing it from ALPM disable.
> 
> Also clearing ALPM_CTL_ALPM_AUX_LESS_ENABLE and is not about disabling ALPM
> but switching to AUX-Wake ALPM. Stop touching this bit on ALPM disable.

There's another open coded variant of this in intel_alpm_lobf_disable(),
and that thing also gets passed the wrong crtc_state (new instead of
old).

Also LOBF enable is now being done from two places (intel_alpm_lobf_enable()
and intel_psr_enable_source()). How those two interact is anyone's guess.

> 
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/7153
> Fixes: 1ccbf135862b ("drm/i915/psr: Enable ALPM on source side for eDP Panel 
> replay")
> Cc: Animesh Manna <[email protected]>
> Cc: Jani Nikula <[email protected]>
> Cc: <[email protected]> # v6.10+
> Signed-off-by: Jouni Högander <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_alpm.c | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c 
> b/drivers/gpu/drm/i915/display/intel_alpm.c
> index e0a4a59dc025..b3334bc4d0f9 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
> @@ -604,12 +604,7 @@ void intel_alpm_disable(struct intel_dp *intel_dp)
>       mutex_lock(&intel_dp->alpm.lock);
>  
>       intel_de_rmw(display, ALPM_CTL(display, cpu_transcoder),
> -                  ALPM_CTL_ALPM_ENABLE | ALPM_CTL_LOBF_ENABLE |
> -                  ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
> -
> -     intel_de_rmw(display,
> -                  PORT_ALPM_CTL(cpu_transcoder),
> -                  PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
> +                  ALPM_CTL_ALPM_ENABLE | ALPM_CTL_LOBF_ENABLE, 0);
>  
>       drm_dbg_kms(display->drm, "Disabling ALPM\n");
>       mutex_unlock(&intel_dp->alpm.lock);
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

Reply via email to