mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +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,
|
return copy_to_user(out, &vce_clk_table,
|
||||||
min((size_t)size, sizeof(vce_clk_table))) ? -EFAULT : 0;
|
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:
|
default:
|
||||||
DRM_DEBUG_KMS("Invalid request %d\n", info->query);
|
DRM_DEBUG_KMS("Invalid request %d\n", info->query);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
|
@ -522,6 +522,12 @@ struct drm_amdgpu_cs_chunk_data {
|
||||||
#define AMDGPU_INFO_MEMORY 0x19
|
#define AMDGPU_INFO_MEMORY 0x19
|
||||||
/* Query vce clock table */
|
/* Query vce clock table */
|
||||||
#define AMDGPU_INFO_VCE_CLOCK_TABLE 0x1A
|
#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_SHIFT 0
|
||||||
#define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
|
#define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
|
||||||
|
@ -580,6 +586,11 @@ struct drm_amdgpu_info {
|
||||||
} read_mmr_reg;
|
} read_mmr_reg;
|
||||||
|
|
||||||
struct drm_amdgpu_query_fw query_fw;
|
struct drm_amdgpu_query_fw query_fw;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
__u32 type;
|
||||||
|
__u32 offset;
|
||||||
|
} vbios_info;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue