mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
drm/amd/amdgpu: export vbios information (v2)
Allows userspace components to fetch information from the vbios image. v2: agd: fix warning Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Christian Koenig <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
a9f5db9ca7
commit
40ee5888fa
2 changed files with 37 additions and 0 deletions
|
@ -544,6 +544,32 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
|
|||
return copy_to_user(out, &vce_clk_table,
|
||||
min((size_t)size, sizeof(vce_clk_table))) ? -EFAULT : 0;
|
||||
}
|
||||
case AMDGPU_INFO_VBIOS: {
|
||||
uint32_t bios_size = adev->bios_size;
|
||||
|
||||
switch (info->vbios_info.type) {
|
||||
case AMDGPU_INFO_VBIOS_SIZE:
|
||||
return copy_to_user(out, &bios_size,
|
||||
min((size_t)size, sizeof(bios_size)))
|
||||
? -EFAULT : 0;
|
||||
case AMDGPU_INFO_VBIOS_IMAGE: {
|
||||
uint8_t *bios;
|
||||
uint32_t bios_offset = info->vbios_info.offset;
|
||||
|
||||
if (bios_offset >= bios_size)
|
||||
return -EINVAL;
|
||||
|
||||
bios = adev->bios + bios_offset;
|
||||
return copy_to_user(out, bios,
|
||||
min((size_t)size, (size_t)(bios_size - bios_offset)))
|
||||
? -EFAULT : 0;
|
||||
}
|
||||
default:
|
||||
DRM_DEBUG_KMS("Invalid request %d\n",
|
||||
info->vbios_info.type);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
default:
|
||||
DRM_DEBUG_KMS("Invalid request %d\n", info->query);
|
||||
return -EINVAL;
|
||||
|
|
|
@ -522,6 +522,12 @@ struct drm_amdgpu_cs_chunk_data {
|
|||
#define AMDGPU_INFO_MEMORY 0x19
|
||||
/* Query vce clock table */
|
||||
#define AMDGPU_INFO_VCE_CLOCK_TABLE 0x1A
|
||||
/* Query vbios related information */
|
||||
#define AMDGPU_INFO_VBIOS 0x1B
|
||||
/* Subquery id: Query vbios size */
|
||||
#define AMDGPU_INFO_VBIOS_SIZE 0x1
|
||||
/* Subquery id: Query vbios image */
|
||||
#define AMDGPU_INFO_VBIOS_IMAGE 0x2
|
||||
|
||||
#define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
|
||||
#define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
|
||||
|
@ -580,6 +586,11 @@ struct drm_amdgpu_info {
|
|||
} read_mmr_reg;
|
||||
|
||||
struct drm_amdgpu_query_fw query_fw;
|
||||
|
||||
struct {
|
||||
__u32 type;
|
||||
__u32 offset;
|
||||
} vbios_info;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue