On Wed, 2026-03-04 at 16:40 +0200, Jani Nikula wrote:
> Initialize the stepping name in display runtime info. This avoids having
> to use intel_step_name().
> 
> For display device info print at boot, debugfs and snapshot this changes
> the unknown step name from ** to N/A, which is more user friendly
> anyway.
> 
> Signed-off-by: Jani Nikula <[email protected]>
> ---

Reviewed-by: Luca Coelho <[email protected]>

--
Cheers,
Luca.


>  .../drm/i915/display/intel_display_device.c   | 28 +++++++++++++++++--
>  .../drm/i915/display/intel_display_device.h   |  1 +
>  2 files changed, 26 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c 
> b/drivers/gpu/drm/i915/display/intel_display_device.c
> index 0241603470a2..f716e9a51532 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.c
> @@ -1653,6 +1653,28 @@ static void display_platforms_or(struct 
> intel_display_platforms *dst,
>       bitmap_or(dst->bitmap, dst->bitmap, src->bitmap, 
> display_platforms_num_bits());
>  }
>  
> +#define __STEP_NAME(name) [STEP_##name] = #name,
> +
> +static void initialize_step(struct intel_display *display, enum intel_step 
> step)
> +{
> +     static const char step_names[][3] = {
> +             STEP_NAME_LIST(__STEP_NAME)
> +     };
> +
> +     DISPLAY_RUNTIME_INFO(display)->step = step;
> +
> +     /* Step name will remain an empty string if not applicable */
> +     if (step >= 0 && step < ARRAY_SIZE(step_names))
> +             strscpy(DISPLAY_RUNTIME_INFO(display)->step_name, 
> step_names[step]);
> +}
> +
> +#undef __STEP_NAME
> +
> +static const char *step_name(const struct intel_display_runtime_info 
> *runtime)
> +{
> +     return strlen(runtime->step_name) ? runtime->step_name : "N/A";
> +}
> +
>  struct intel_display *intel_display_device_probe(struct pci_dev *pdev,
>                                                const struct 
> intel_display_parent_interface *parent)
>  {
> @@ -1730,14 +1752,14 @@ struct intel_display 
> *intel_display_device_probe(struct pci_dev *pdev,
>                                         subdesc ? &subdesc->step_info : NULL);
>       }
>  
> -     DISPLAY_RUNTIME_INFO(display)->step = step;
> +     initialize_step(display, step);
>  
>       drm_info(display->drm, "Found %s%s%s (device ID %04x) %s display 
> version %u.%02u stepping %s\n",
>                desc->name, subdesc ? "/" : "", subdesc ? subdesc->name : "",
>                pdev->device, display->platform.dgfx ? "discrete" : 
> "integrated",
>                DISPLAY_RUNTIME_INFO(display)->ip.ver,
>                DISPLAY_RUNTIME_INFO(display)->ip.rel,
> -              step != STEP_NONE ? intel_step_name(step) : "N/A");
> +              step_name(DISPLAY_RUNTIME_INFO(display)));
>  
>       return display;
>  
> @@ -1953,7 +1975,7 @@ void intel_display_device_info_print(const struct 
> intel_display_device_info *inf
>               drm_printf(p, "display version: %u\n",
>                          runtime->ip.ver);
>  
> -     drm_printf(p, "display stepping: %s\n", intel_step_name(runtime->step));
> +     drm_printf(p, "display stepping: %s\n", step_name(runtime));
>  
>  #define PRINT_FLAG(name) drm_printf(p, "%s: %s\n", #name, 
> str_yes_no(info->name))
>       DEV_INFO_DISPLAY_FOR_EACH_FLAG(PRINT_FLAG);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h 
> b/drivers/gpu/drm/i915/display/intel_display_device.h
> index e84c190dcc4f..1170ac346615 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.h
> @@ -287,6 +287,7 @@ struct intel_display_runtime_info {
>               u16 step; /* hardware */
>       } ip;
>       int step; /* symbolic */
> +     char step_name[3]; /* empty string if not applicable */
>  
>       u32 rawclk_freq;
>  

Reply via email to