aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index 7d484fad3909..1f0bd4d16475 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -426,3 +426,47 @@ uint32_t amdgpu_virt_get_mclk(struct amdgpu_device *adev, bool lowest)
426 return clk; 426 return clk;
427} 427}
428 428
429void amdgpu_virt_init_reg_access_mode(struct amdgpu_device *adev)
430{
431 struct amdgpu_virt *virt = &adev->virt;
432
433 if (virt->ops && virt->ops->init_reg_access_mode)
434 virt->ops->init_reg_access_mode(adev);
435}
436
437bool amdgpu_virt_support_psp_prg_ih_reg(struct amdgpu_device *adev)
438{
439 bool ret = false;
440 struct amdgpu_virt *virt = &adev->virt;
441
442 if (amdgpu_sriov_vf(adev)
443 && (virt->reg_access_mode & AMDGPU_VIRT_REG_ACCESS_PSP_PRG_IH))
444 ret = true;
445
446 return ret;
447}
448
449bool amdgpu_virt_support_rlc_prg_reg(struct amdgpu_device *adev)
450{
451 bool ret = false;
452 struct amdgpu_virt *virt = &adev->virt;
453
454 if (amdgpu_sriov_vf(adev)
455 && (virt->reg_access_mode & AMDGPU_VIRT_REG_ACCESS_RLC)
456 && !(amdgpu_sriov_runtime(adev)))
457 ret = true;
458
459 return ret;
460}
461
462bool amdgpu_virt_support_skip_setting(struct amdgpu_device *adev)
463{
464 bool ret = false;
465 struct amdgpu_virt *virt = &adev->virt;
466
467 if (amdgpu_sriov_vf(adev)
468 && (virt->reg_access_mode & AMDGPU_VIRT_REG_SKIP_SEETING))
469 ret = true;
470
471 return ret;
472}