diff options
| author | Lijo Lazar <lijo.lazar@amd.com> | 2025-08-28 10:20:09 +0300 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2025-09-06 00:38:40 +0300 | 
| commit | d6fa8026617896c23cb165f09f1c1d32fe22a3df (patch) | |
| tree | 658fe646f48c934abea5b740d3478d1750701fab /drivers/gpu/drm/amd/amdgpu/atom.c | |
| parent | c5f4fb40584ee591da9fa090c6f265d11cbb1acf (diff) | |
| download | linux-d6fa8026617896c23cb165f09f1c1d32fe22a3df.tar.xz | |
drm/amdgpu: Add vbios build number interface
Fetch VBIOS build number from atom rom image. Add a sysfs interface to
read the build number.
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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/atom.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/atom.c | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c index 427b073de2fc..1c994d0cc50b 100644 --- a/drivers/gpu/drm/amd/amdgpu/atom.c +++ b/drivers/gpu/drm/amd/amdgpu/atom.c @@ -1494,6 +1494,27 @@ static void atom_get_vbios_version(struct atom_context *ctx)  	}  } +static void atom_get_vbios_build(struct atom_context *ctx) +{ +	unsigned char *atom_rom_hdr; +	unsigned char *str; +	uint16_t base; + +	base = CU16(ATOM_ROM_TABLE_PTR); +	atom_rom_hdr = CSTR(base); + +	str = CSTR(CU16(base + ATOM_ROM_CFG_PTR)); +	/* Skip config string */ +	while (str < atom_rom_hdr && *str++) +		; +	/* Skip change list string */ +	while (str < atom_rom_hdr && *str++) +		; + +	if ((str + STRLEN_NORMAL) < atom_rom_hdr) +		strscpy(ctx->build_num, str, STRLEN_NORMAL); +} +  struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)  {  	int base; @@ -1554,6 +1575,7 @@ struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)  	atom_get_vbios_pn(ctx);  	atom_get_vbios_date(ctx);  	atom_get_vbios_version(ctx); +	atom_get_vbios_build(ctx);  	return ctx;  } | 
