[PATCH] drm/amdgpu: limit the VM address space with older VCE FW versions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

________________________________
From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> on behalf of Christian König <ckoenig.leichtzumerken at gmail.com>
Sent: Monday, January 29, 2018 10:05 AM
To: amd-gfx at lists.freedesktop.org
Subject: [PATCH] drm/amdgpu: limit the VM address space with older VCE FW versions

Older VCE FW versions are buggy and can't work with 48bit address
spaces.

RFC: Should we limit the address space or just reject loading the older
VCE firmware?

Signed-off-by: Christian König <christian.koenig at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 5 +++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 431038885778..51a4b08546f2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -581,6 +581,11 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file

                 vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
                 vm_size -= AMDGPU_VA_RESERVED_SIZE;
+
+               /* Older VCE FW versions are buggy and can handle only 40bits */
+               if (adev->vce.fw_version < AMDGPU_VCE_FW_53_45)
+                       vm_size = min(vm_size, 1ULL << 40);
+
                 dev_info.virtual_address_offset = AMDGPU_VA_RESERVED_SIZE;
                 dev_info.virtual_address_max =
                         min(vm_size, AMDGPU_VA_HOLE_START);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h
index 0fd378ae92c3..71781267ee4c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h
@@ -30,6 +30,8 @@
 #define AMDGPU_VCE_HARVEST_VCE0 (1 << 0)
 #define AMDGPU_VCE_HARVEST_VCE1 (1 << 1)

+#define AMDGPU_VCE_FW_53_45    ((53 << 24) | (45 << 16))
+
 struct amdgpu_vce {
         struct amdgpu_bo        *vcpu_bo;
         uint64_t                gpu_addr;
--
2.14.1

_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180129/a8d029ac/attachment-0001.html>


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux