On Wed, 10 Jun 2026, Ville Syrjala <[email protected]> wrote:
> From: Ville Syrjälä <[email protected]>
>
> Extract the BSW pcode notify stuff to a few small helpers. The
> plan is to unify these between all the platforms and turn them
> into vfuncs.
>
> Signed-off-by: Ville Syrjälä <[email protected]>

Reviewed-by: Jani Nikula <[email protected]>

> ---
>  drivers/gpu/drm/i915/display/intel_cdclk.c | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c 
> b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index 542724256d0f..041b1fc8b3ee 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -872,6 +872,19 @@ static u32 bdw_cdclk_freq_sel(int cdclk)
>       }
>  }
>  
> +static int bdw_cdclk_pcode_pre_notify(struct intel_display *display)
> +{
> +     return intel_parent_pcode_write(display, 
> BDW_PCODE_DISPLAY_FREQ_CHANGE_REQ,
> +                                     0x0);
> +}
> +
> +static int bdw_cdclk_pcode_post_notify(struct intel_display *display,
> +                                    const struct intel_cdclk_config 
> *cdclk_config)
> +{
> +     return intel_parent_pcode_write(display, HSW_PCODE_DE_WRITE_FREQ_REQ,
> +                                     cdclk_config->voltage_level);
> +}
> +
>  static void bdw_set_cdclk(struct intel_display *display,
>                         const struct intel_cdclk_config *cdclk_config,
>                         enum pipe pipe)
> @@ -888,7 +901,7 @@ static void bdw_set_cdclk(struct intel_display *display,
>                    "trying to change cdclk frequency with cdclk not 
> enabled\n"))
>               return;
>  
> -     ret = intel_parent_pcode_write(display, 
> BDW_PCODE_DISPLAY_FREQ_CHANGE_REQ, 0x0);
> +     ret = bdw_cdclk_pcode_pre_notify(display);
>       if (ret) {
>               drm_err(display->drm,
>                       "Failed to inform PCODE about start of CDCLK change 
> (%d)\n", ret);
> @@ -918,8 +931,7 @@ static void bdw_set_cdclk(struct intel_display *display,
>       if (ret)
>               drm_err(display->drm, "Switching back to LCPLL failed\n");
>  
> -     ret = intel_parent_pcode_write(display, HSW_PCODE_DE_WRITE_FREQ_REQ,
> -                                    cdclk_config->voltage_level);
> +     ret = bdw_cdclk_pcode_post_notify(display, cdclk_config);
>       if (ret)
>               drm_err(display->drm,
>                       "Failed to inform PCODE about end of CDCLK change 
> (%d)\n", ret);

-- 
Jani Nikula, Intel

Reply via email to