diff options
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 10 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/cikd.h | 1 |
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) | |||
4831 | static void cik_vm_decode_fault(struct radeon_device *rdev, | 4832 | static 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 |