drm/amdgpu: limit block size to one page
authorChunming Zhou <David1.Zhou@amd.com>
Mon, 27 Mar 2017 03:43:35 +0000 (11:43 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 30 Mar 2017 03:55:29 +0000 (23:55 -0400)
Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index 4bf9805b7028a512bf110377d8a46324edfe092c..abb51bd77ca776c31fd3663fe92bfebd00a94bfd 100644 (file)
@@ -1042,6 +1042,14 @@ static bool amdgpu_check_pot_argument(int arg)
 
 static void amdgpu_get_block_size(struct amdgpu_device *adev)
 {
+       /* from AI, asic starts to support multiple level VMPT */
+       if (adev->family >= AMDGPU_FAMILY_AI) {
+               if (amdgpu_vm_block_size != 9)
+                       dev_warn(adev->dev, "Multi-VMPT limits block size to"
+                                "one page!\n");
+               amdgpu_vm_block_size = 9;
+               return;
+       }
        /* defines number of bits in page table versus page directory,
         * a page is 4KB so we have 12 bits offset, minimum 9 bits in the
         * page table and the remaining bits are in the page directory */