drm/amd/powerplay: no memory activity support on Vega10
[sfrench/cifs-2.6.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_vm.c
index 4f10f5aba00b80ee2e5507323f55a0f28a51d157..24c3c05e2fb7d70121b03f7ec111de018c67e96a 100644 (file)
@@ -28,7 +28,7 @@
 #include <linux/dma-fence-array.h>
 #include <linux/interval_tree_generic.h>
 #include <linux/idr.h>
-#include <drm/drmP.h>
+
 #include <drm/amdgpu_drm.h>
 #include "amdgpu.h"
 #include "amdgpu_trace.h"
@@ -1574,12 +1574,22 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
        flags &= ~AMDGPU_PTE_EXECUTABLE;
        flags |= mapping->flags & AMDGPU_PTE_EXECUTABLE;
 
-       flags &= ~AMDGPU_PTE_MTYPE_MASK;
-       flags |= (mapping->flags & AMDGPU_PTE_MTYPE_MASK);
+       if (adev->asic_type == CHIP_NAVI10) {
+               flags &= ~AMDGPU_PTE_MTYPE_NV10_MASK;
+               flags |= (mapping->flags & AMDGPU_PTE_MTYPE_NV10_MASK);
+       } else {
+               flags &= ~AMDGPU_PTE_MTYPE_VG10_MASK;
+               flags |= (mapping->flags & AMDGPU_PTE_MTYPE_VG10_MASK);
+       }
 
        if ((mapping->flags & AMDGPU_PTE_PRT) &&
            (adev->asic_type >= CHIP_VEGA10)) {
                flags |= AMDGPU_PTE_PRT;
+               if (adev->asic_type >= CHIP_NAVI10) {
+                       flags |= AMDGPU_PTE_SNOOPED;
+                       flags |= AMDGPU_PTE_LOG;
+                       flags |= AMDGPU_PTE_SYSTEM;
+               }
                flags &= ~AMDGPU_PTE_VALID;
        }