For SR-IOV, vram_width can't be read from ATOM as
RAVEN, and DF related registers is not readable, so hardcord
is the only way to set the correct vram_width.

Signed-off-by: Trigger Huang <trigger.hu...@amd.com>
Signed-off-by: Yintian Tao <yt...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index 59c580bd5a3b..9750b632e9aa 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -835,8 +835,16 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
        int chansize, numchan;
        int r;
 
-       if (amdgpu_emu_mode != 1)
+       if (amdgpu_sriov_vf(adev)) {
+               /* For Vega10 SR-IOV, vram_width can't be read from ATOM as 
RAVEN,
+                * and DF related registers is not readable, seems hardcord is 
the
+                * only way to set the correct vram_width
+                */
+               adev->gmc.vram_width = 2048;
+       } else if (amdgpu_emu_mode != 1) {
                adev->gmc.vram_width = amdgpu_atomfirmware_get_vram_width(adev);
+       }
+
        if (!adev->gmc.vram_width) {
                /* hbm memory channel size */
                if (adev->flags & AMD_IS_APU)
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to