<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Reviewed-by: Alex Deucher <alexander.deucher@amd.com><br>
</p>
<div style="color: rgb(0, 0, 0);">
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Christian König <ckoenig.leichtzumerken@gmail.com><br>
<b>Sent:</b> Monday, January 29, 2018 10:05 AM<br>
<b>To:</b> amd-gfx@lists.freedesktop.org<br>
<b>Subject:</b> [PATCH] drm/amdgpu: limit the VM address space with older VCE FW versions</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Older VCE FW versions are buggy and can't work with 48bit address<br>
spaces.<br>
<br>
RFC: Should we limit the address space or just reject loading the older<br>
VCE firmware?<br>
<br>
Signed-off-by: Christian König <christian.koenig@amd.com><br>
---<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 5 +++++<br>
 drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 2 ++<br>
 2 files changed, 7 insertions(+)<br>
<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c<br>
index 431038885778..51a4b08546f2 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c<br>
@@ -581,6 +581,11 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file<br>
 <br>
                 vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;<br>
                 vm_size -= AMDGPU_VA_RESERVED_SIZE;<br>
+<br>
+               /* Older VCE FW versions are buggy and can handle only 40bits */<br>
+               if (adev->vce.fw_version < AMDGPU_VCE_FW_53_45)<br>
+                       vm_size = min(vm_size, 1ULL << 40);<br>
+<br>
                 dev_info.virtual_address_offset = AMDGPU_VA_RESERVED_SIZE;<br>
                 dev_info.virtual_address_max =<br>
                         min(vm_size, AMDGPU_VA_HOLE_START);<br>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h<br>
index 0fd378ae92c3..71781267ee4c 100644<br>
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h<br>
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h<br>
@@ -30,6 +30,8 @@<br>
 #define AMDGPU_VCE_HARVEST_VCE0 (1 << 0)<br>
 #define AMDGPU_VCE_HARVEST_VCE1 (1 << 1)<br>
 <br>
+#define AMDGPU_VCE_FW_53_45    ((53 << 24) | (45 << 16))<br>
+<br>
 struct amdgpu_vce {<br>
         struct amdgpu_bo        *vcpu_bo;<br>
         uint64_t                gpu_addr;<br>
-- <br>
2.14.1<br>
<br>
_______________________________________________<br>
amd-gfx mailing list<br>
amd-gfx@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx" id="LPlnk441166" previewremoved="true">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
</div>
</span></font></div>
</div>
</div>
</body>
</html>