drm/amdgpu: add amdgpu_virt_get_vf_mode helper function
the swsmu or powerplay(hwmgr) need to handle task according to different VF mode, this function to help query vf mode. vf mode: 1. SRIOV_VF_MODE_BARE_METAL: the driver work on host OS (PF) 2. SRIOV_VF_MODE_ONE_VF : the driver work on guest OS with one VF 3. SRIOV_VF_MODE_MULTI_VF : the driver work on guest OS with multi VF Signed-off-by: Kevin Wang <kevin1.wang@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
728e7e0cd6
commit
a7f2810337
@ -370,3 +370,19 @@ void amdgpu_virt_disable_access_debugfs(struct amdgpu_device *adev)
|
||||
if (amdgpu_sriov_vf(adev))
|
||||
adev->virt.caps |= AMDGPU_SRIOV_CAPS_RUNTIME;
|
||||
}
|
||||
|
||||
enum amdgpu_sriov_vf_mode amdgpu_virt_get_sriov_vf_mode(struct amdgpu_device *adev)
|
||||
{
|
||||
enum amdgpu_sriov_vf_mode mode;
|
||||
|
||||
if (amdgpu_sriov_vf(adev)) {
|
||||
if (amdgpu_sriov_is_pp_one_vf(adev))
|
||||
mode = SRIOV_VF_MODE_ONE_VF;
|
||||
else
|
||||
mode = SRIOV_VF_MODE_MULTI_VF;
|
||||
} else {
|
||||
mode = SRIOV_VF_MODE_BARE_METAL;
|
||||
}
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
@ -35,6 +35,12 @@
|
||||
/* tonga/fiji use this offset */
|
||||
#define mmBIF_IOV_FUNC_IDENTIFIER 0x1503
|
||||
|
||||
enum amdgpu_sriov_vf_mode {
|
||||
SRIOV_VF_MODE_BARE_METAL = 0,
|
||||
SRIOV_VF_MODE_ONE_VF,
|
||||
SRIOV_VF_MODE_MULTI_VF,
|
||||
};
|
||||
|
||||
struct amdgpu_mm_table {
|
||||
struct amdgpu_bo *bo;
|
||||
uint32_t *cpu_addr;
|
||||
@ -323,4 +329,6 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev);
|
||||
bool amdgpu_virt_can_access_debugfs(struct amdgpu_device *adev);
|
||||
int amdgpu_virt_enable_access_debugfs(struct amdgpu_device *adev);
|
||||
void amdgpu_virt_disable_access_debugfs(struct amdgpu_device *adev);
|
||||
|
||||
enum amdgpu_sriov_vf_mode amdgpu_virt_get_sriov_vf_mode(struct amdgpu_device *adev);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user