aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch
new file mode 100644
index 00000000..0ea88179
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch
@@ -0,0 +1,61 @@
+From d7a9cc8545ac48f5b8900a5984d99636b4da461d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Tue, 9 Jan 2018 19:49:21 +0100
+Subject: [PATCH 3148/4131] drm/amdgpu: print the PASID with VM faults on GMC
+ v7
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Print that extra information on GMC v7.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+index 1d5d1c5..754dd0c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+@@ -751,21 +751,21 @@ static void gmc_v7_0_gart_fini(struct amdgpu_device *adev)
+ *
+ * Print human readable fault information (CIK).
+ */
+-static void gmc_v7_0_vm_decode_fault(struct amdgpu_device *adev,
+- u32 status, u32 addr, u32 mc_client)
++static void gmc_v7_0_vm_decode_fault(struct amdgpu_device *adev, u32 status,
++ u32 addr, u32 mc_client, unsigned pasid)
+ {
+- u32 mc_id;
+ u32 vmid = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, VMID);
+ u32 protections = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
+ PROTECTIONS);
+ char block[5] = { mc_client >> 24, (mc_client >> 16) & 0xff,
+ (mc_client >> 8) & 0xff, mc_client & 0xff, 0 };
++ u32 mc_id;
+
+ mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
+ MEMORY_CLIENT_ID);
+
+- dev_err(adev->dev, "VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n",
+- protections, vmid, addr,
++ dev_err(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at page %u, %s from '%s' (0x%08x) (%d)\n",
++ protections, vmid, pasid, addr,
+ REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
+ MEMORY_CLIENT_RW) ?
+ "write" : "read", block, mc_client, mc_id);
+@@ -1266,7 +1266,8 @@ static int gmc_v7_0_process_interrupt(struct amdgpu_device *adev,
+ addr);
+ dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n",
+ status);
+- gmc_v7_0_vm_decode_fault(adev, status, addr, mc_client);
++ gmc_v7_0_vm_decode_fault(adev, status, addr, mc_client,
++ entry->pasid);
+ }
+
+ vmid = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS,
+--
+2.7.4
+