> -----Original Message-----
> From: Intel-gfx <[email protected]> On Behalf Of Imre 
> Deak
> Sent: Monday, 1 June 2026 12.39
> To: [email protected]; [email protected]
> Subject: [PATCH v2 19/22] drm/i915/dp_link_training: Allocate atomic state 
> for autoretrain modeset
> 
> Allocate a local atomic state for the autoretrain modeset. This
> prepares for a follow-up change that needs to access the state after
> the modeset for sending userspace notifications.
> 
> v2: Rebase on upstream drm_atomic_state -> drm_atomic_commit rename.
> 

Reviewed-by: Mika Kahola <[email protected]>

> Signed-off-by: Imre Deak <[email protected]>
> ---
>  .../gpu/drm/i915/display/intel_dp_link_training.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c 
> b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> index ad67f9df46d7b..0231ca0cea30c 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
> @@ -27,6 +27,7 @@
>  #include <drm/display/drm_dp_helper.h>
>  #include <drm/drm_print.h>
> 
> +#include "intel_display.h"
>  #include "intel_display_core.h"
>  #include "intel_display_jiffies.h"
>  #include "intel_display_types.h"
> @@ -2165,6 +2166,8 @@ static int intel_dp_retrain_link(struct intel_encoder 
> *encoder,
>       struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>       struct intel_dp_link_training *link_training =
>               intel_dp->link.training;
> +     struct intel_atomic_state *state;
> +     struct drm_atomic_commit *_state;
>       u8 pipe_mask;
>       int ret;
> 
> @@ -2194,9 +2197,15 @@ static int intel_dp_retrain_link(struct intel_encoder 
> *encoder,
>                   encoder->base.base.id, encoder->base.name,
>                   
> str_yes_no(intel_dp_link_training_get_force_retrain(link_training)));
> 
> -     ret = intel_modeset_commit_pipes(display, pipe_mask, ctx);
> +     _state = drm_atomic_commit_alloc(display->drm);
> +     if (!_state)
> +             return -ENOMEM;
> +
> +     state = to_intel_atomic_state(_state);
> +
> +     ret = intel_modeset_commit_pipes_for_atomic_state(state, pipe_mask, 
> ctx);
>       if (ret == -EDEADLK)
> -             return ret;
> +             goto out;
> 
>       intel_dp_link_training_set_force_retrain(link_training, false);
> 
> @@ -2205,6 +2214,8 @@ static int intel_dp_retrain_link(struct intel_encoder 
> *encoder,
>                           "[ENCODER:%d:%s] link retraining failed: %pe\n",
>                           encoder->base.base.id, encoder->base.name,
>                           ERR_PTR(ret));
> +out:
> +     drm_atomic_commit_put(&state->base);
> 
>       return ret;
>  }
> --
> 2.49.1

Reply via email to