On Wed, 2026-03-04 at 12:08 +0530, Arun R Murthy wrote:
> For eDP read the ALPM DPCD caps after DPCD initalization and just
> before
> the PSR init.
> 
> v2: Move intel_alpm_init to intel_edp_init_dpcd (Jouni)
> v3: Add Fixes with commit-id (Jouni)
> v4: Separated the alpm dpcd read caps from alpm_init and moved to
> intel_edp_init_dpcd.
> v5: Read alpm_caps always for eDP irrespective of the eDP version
> (Jouni)
> 
> Fixes: 15438b325987 ("drm/i915/alpm: Add compute config for lobf")
> Signed-off-by: Arun R Murthy <[email protected]>
> Reviewed-by: Animesh Manna <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_alpm.c | 6 ------
>  drivers/gpu/drm/i915/display/intel_dp.c   | 7 +++++++
>  2 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c
> b/drivers/gpu/drm/i915/display/intel_alpm.c
> index b3334bc4d0f9..a7350ce8e716 100644
> --- a/drivers/gpu/drm/i915/display/intel_alpm.c
> +++ b/drivers/gpu/drm/i915/display/intel_alpm.c
> @@ -44,12 +44,6 @@ bool intel_alpm_is_alpm_aux_less(struct intel_dp
> *intel_dp,
>  
>  void intel_alpm_init(struct intel_dp *intel_dp)
>  {
> -     u8 dpcd;
> -
> -     if (drm_dp_dpcd_readb(&intel_dp->aux, DP_RECEIVER_ALPM_CAP,
> &dpcd) < 0)
> -             return;
> -
> -     intel_dp->alpm_dpcd = dpcd;
>       mutex_init(&intel_dp->alpm.lock);
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 025e906b63a9..37783b7e3bed 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -4709,6 +4709,7 @@ static bool
>  intel_edp_init_dpcd(struct intel_dp *intel_dp, struct
> intel_connector *connector)
>  {
>       struct intel_display *display = to_intel_display(intel_dp);
> +     int ret;
>  
>       /* this function is meant to be called only once */
>       drm_WARN_ON(display->drm, intel_dp->dpcd[DP_DPCD_REV] != 0);
> @@ -4748,6 +4749,12 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp,
> struct intel_connector *connector
>        */
>       intel_dp_init_source_oui(intel_dp);
>  
> +     /* Read the ALPM DPCD caps */
> +     ret = drm_dp_dpcd_readb(&intel_dp->aux,
> DP_RECEIVER_ALPM_CAP,
> +                             &intel_dp->alpm_dpcd);

Sorry for late notice. There is this comment in
include/drm/display/drm_dp_helper.h:

 * In most of the cases you should be using
 * drm_dp_dpcd_read_byte() instead.

w/wo that changed:

Reviewed-by: Jouni Högander <[email protected]>

> +     if (ret < 0)
> +             return false;
> +
>       /*
>        * This has to be called after intel_dp->edp_dpcd is filled,
> PSR checks
>        * for SET_POWER_CAPABLE bit in intel_dp->edp_dpcd[1]

Reply via email to