]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Print full vbios info
authorLijo Lazar <lijo.lazar@amd.com>
Wed, 18 Feb 2026 10:51:23 +0000 (16:21 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 23 Feb 2026 19:33:16 +0000 (14:33 -0500)
Add build number, version and date to the existing part number print.

Example:

[drm] ATOM BIOS: 113-PN000108-103, build: 00159017, ver: 022.040.003.043.000001, 2025/07/27

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/atom.c

index e4ce3029d3fb7e839a12d634599157de28d842db..6e37961f6be53b37f9a3dac450650b771c3745bb 100644 (file)
@@ -1462,8 +1462,6 @@ static void atom_get_vbios_pn(struct atom_context *ctx)
 
                ctx->vbios_pn[count] = 0;
        }
-
-       drm_info(ctx->card->dev, "ATOM BIOS: %s\n", ctx->vbios_pn);
 }
 
 static void atom_get_vbios_version(struct atom_context *ctx)
@@ -1520,6 +1518,30 @@ static void atom_get_vbios_build(struct atom_context *ctx)
                strscpy(ctx->build_num, str, len);
 }
 
+static inline void atom_print_vbios_info(struct atom_context *ctx)
+{
+       char vbios_info[256];
+       int off = 0;
+
+       if (ctx->vbios_pn[0])
+               off += scnprintf(vbios_info + off, sizeof(vbios_info) - off,
+                                "%s", ctx->vbios_pn);
+       if (ctx->build_num[0])
+               off += scnprintf(vbios_info + off, sizeof(vbios_info) - off,
+                                "%sbuild: %s", off ? ", " : "",
+                                ctx->build_num);
+       if (ctx->vbios_ver_str[0])
+               off += scnprintf(vbios_info + off, sizeof(vbios_info) - off,
+                                "%sver: %s", off ? ", " : "",
+                                ctx->vbios_ver_str);
+       if (ctx->date[0])
+               off += scnprintf(vbios_info + off, sizeof(vbios_info) - off,
+                                "%s%.10s", off ? ", " : "",
+                                ctx->date);
+       if (off)
+               drm_info(ctx->card->dev, "ATOM BIOS: %s\n", vbios_info);
+}
+
 struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)
 {
        int base;
@@ -1582,6 +1604,8 @@ struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)
        atom_get_vbios_version(ctx);
        atom_get_vbios_build(ctx);
 
+       atom_print_vbios_info(ctx);
+
        return ctx;
 }