aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/cik.c10
-rw-r--r--drivers/gpu/drm/radeon/cikd.h1
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index a2a30061172f..e91a2403b125 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -3494,7 +3494,8 @@ static int cik_cp_gfx_resume(struct radeon_device *rdev)
3494 int r; 3494 int r;
3495 3495
3496 WREG32(CP_SEM_WAIT_TIMER, 0x0); 3496 WREG32(CP_SEM_WAIT_TIMER, 0x0);
3497 WREG32(CP_SEM_INCOMPLETE_TIMER_CNTL, 0x0); 3497 if (rdev->family != CHIP_HAWAII)
3498 WREG32(CP_SEM_INCOMPLETE_TIMER_CNTL, 0x0);
3498 3499
3499 /* Set the write pointer delay */ 3500 /* Set the write pointer delay */
3500 WREG32(CP_RB_WPTR_DELAY, 0); 3501 WREG32(CP_RB_WPTR_DELAY, 0);
@@ -4831,12 +4832,17 @@ void cik_vm_fini(struct radeon_device *rdev)
4831static void cik_vm_decode_fault(struct radeon_device *rdev, 4832static void cik_vm_decode_fault(struct radeon_device *rdev,
4832 u32 status, u32 addr, u32 mc_client) 4833 u32 status, u32 addr, u32 mc_client)
4833{ 4834{
4834 u32 mc_id = (status & MEMORY_CLIENT_ID_MASK) >> MEMORY_CLIENT_ID_SHIFT; 4835 u32 mc_id;
4835 u32 vmid = (status & FAULT_VMID_MASK) >> FAULT_VMID_SHIFT; 4836 u32 vmid = (status & FAULT_VMID_MASK) >> FAULT_VMID_SHIFT;
4836 u32 protections = (status & PROTECTIONS_MASK) >> PROTECTIONS_SHIFT; 4837 u32 protections = (status & PROTECTIONS_MASK) >> PROTECTIONS_SHIFT;
4837 char block[5] = { mc_client >> 24, (mc_client >> 16) & 0xff, 4838 char block[5] = { mc_client >> 24, (mc_client >> 16) & 0xff,
4838 (mc_client >> 8) & 0xff, mc_client & 0xff, 0 }; 4839 (mc_client >> 8) & 0xff, mc_client & 0xff, 0 };
4839 4840
4841 if (rdev->family == CHIP_HAWAII)
4842 mc_id = (status & HAWAII_MEMORY_CLIENT_ID_MASK) >> MEMORY_CLIENT_ID_SHIFT;
4843 else
4844 mc_id = (status & MEMORY_CLIENT_ID_MASK) >> MEMORY_CLIENT_ID_SHIFT;
4845
4840 printk("VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", 4846 printk("VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n",
4841 protections, vmid, addr, 4847 protections, vmid, addr,
4842 (status & MEMORY_CLIENT_RW_MASK) ? "write" : "read", 4848 (status & MEMORY_CLIENT_RW_MASK) ? "write" : "read",
diff --git a/drivers/gpu/drm/radeon/cikd.h b/drivers/gpu/drm/radeon/cikd.h
index aeb3d004431d..28cbcc1baa07 100644
--- a/drivers/gpu/drm/radeon/cikd.h
+++ b/drivers/gpu/drm/radeon/cikd.h
@@ -500,6 +500,7 @@
500 * bit 4: write 500 * bit 4: write
501 */ 501 */
502#define MEMORY_CLIENT_ID_MASK (0xff << 12) 502#define MEMORY_CLIENT_ID_MASK (0xff << 12)
503#define HAWAII_MEMORY_CLIENT_ID_MASK (0x1ff << 12)
503#define MEMORY_CLIENT_ID_SHIFT 12 504#define MEMORY_CLIENT_ID_SHIFT 12
504#define MEMORY_CLIENT_RW_MASK (1 << 24) 505#define MEMORY_CLIENT_RW_MASK (1 << 24)
505#define MEMORY_CLIENT_RW_SHIFT 24 506#define MEMORY_CLIENT_RW_SHIFT 24