summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2026-03-16 14:14:59 +0200
committerJani Nikula <jani.nikula@intel.com>2026-03-17 17:50:46 +0200
commit2ca0e7657f6f18838e396febaf8ca93a762e486a (patch)
treee96645fb52bebdfc032e526e2dd2d4a72e05f9aa /drivers/gpu
parent902d174c6fd30d428337e90ed769a3aa81951983 (diff)
downloadlinux-2ca0e7657f6f18838e396febaf8ca93a762e486a.tar.gz
linux-2ca0e7657f6f18838e396febaf8ca93a762e486a.zip
drm/i915/display: add step name in display runtime info
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. Reviewed-by: Luca Coelho <luciano.coelho@intel.com> Link: https://patch.msgid.link/aab445dedb8235d9fdddfe2ee5bb624cdf453a18.1773663208.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/display/intel_display_device.c28
-rw-r--r--drivers/gpu/drm/i915/display/intel_display_device.h1
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 55689111c5d7..30d734a43211 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;