diff options
author | Frank Min <Frank.Min@amd.com> | 2018-04-27 03:44:11 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-09-19 22:32:21 -0500 |
commit | a2045ee6692be2c50502d966089e5df4d799d236 (patch) | |
tree | f9b9a65f2595312cdc401bddf4a7b2a48d0e9148 | |
parent | fd395547924dad66dbe21c01e1a646f3215742ef (diff) | |
download | linux-a2045ee6692be2c50502d966089e5df4d799d236.tar.bz2 |
drm/amdgpu: add vega20 sriov capability detection
Add sriov capability detection for vega20, then can check if device is
virtual device.
Signed-off-by: Frank Min <Frank.Min@amd.com>
Signed-off-by: Xiangliang Yu <Xiangliang.Yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c index 2e65447637c6..f8cee95d61cc 100644 --- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c +++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c @@ -205,8 +205,19 @@ static const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg = { static void nbio_v7_4_detect_hw_virt(struct amdgpu_device *adev) { - if (is_virtual_machine()) /* passthrough mode exclus sriov mod */ - adev->virt.caps |= AMDGPU_PASSTHROUGH_MODE; + uint32_t reg; + + reg = RREG32_SOC15(NBIO, 0, mmRCC_IOV_FUNC_IDENTIFIER); + if (reg & 1) + adev->virt.caps |= AMDGPU_SRIOV_CAPS_IS_VF; + + if (reg & 0x80000000) + adev->virt.caps |= AMDGPU_SRIOV_CAPS_ENABLE_IOV; + + if (!reg) { + if (is_virtual_machine()) /* passthrough mode exclus sriov mod */ + adev->virt.caps |= AMDGPU_PASSTHROUGH_MODE; + } } static void nbio_v7_4_init_registers(struct amdgpu_device *adev) |