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; >
