diff options
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c index 1c8c0f536aed..72ab2d04f048 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | |||
@@ -428,7 +428,6 @@ static void gmc_v8_0_vram_gtt_location(struct amdgpu_device *adev, | |||
428 | */ | 428 | */ |
429 | static void gmc_v8_0_mc_program(struct amdgpu_device *adev) | 429 | static void gmc_v8_0_mc_program(struct amdgpu_device *adev) |
430 | { | 430 | { |
431 | struct amdgpu_mode_mc_save save; | ||
432 | u32 tmp; | 431 | u32 tmp; |
433 | int i, j; | 432 | int i, j; |
434 | 433 | ||
@@ -442,10 +441,6 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev) | |||
442 | } | 441 | } |
443 | WREG32(mmHDP_REG_COHERENCY_FLUSH_CNTL, 0); | 442 | WREG32(mmHDP_REG_COHERENCY_FLUSH_CNTL, 0); |
444 | 443 | ||
445 | if (adev->mode_info.num_crtc) | ||
446 | amdgpu_display_set_vga_render_state(adev, false); | ||
447 | |||
448 | gmc_v8_0_mc_stop(adev, &save); | ||
449 | if (gmc_v8_0_wait_for_idle((void *)adev)) { | 444 | if (gmc_v8_0_wait_for_idle((void *)adev)) { |
450 | dev_warn(adev->dev, "Wait for MC idle timedout !\n"); | 445 | dev_warn(adev->dev, "Wait for MC idle timedout !\n"); |
451 | } | 446 | } |
@@ -456,20 +451,12 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev) | |||
456 | adev->mc.vram_end >> 12); | 451 | adev->mc.vram_end >> 12); |
457 | WREG32(mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, | 452 | WREG32(mmMC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, |
458 | adev->vram_scratch.gpu_addr >> 12); | 453 | adev->vram_scratch.gpu_addr >> 12); |
459 | tmp = ((adev->mc.vram_end >> 24) & 0xFFFF) << 16; | ||
460 | tmp |= ((adev->mc.vram_start >> 24) & 0xFFFF); | ||
461 | WREG32(mmMC_VM_FB_LOCATION, tmp); | ||
462 | /* XXX double check these! */ | ||
463 | WREG32(mmHDP_NONSURFACE_BASE, (adev->mc.vram_start >> 8)); | ||
464 | WREG32(mmHDP_NONSURFACE_INFO, (2 << 7) | (1 << 30)); | ||
465 | WREG32(mmHDP_NONSURFACE_SIZE, 0x3FFFFFFF); | ||
466 | WREG32(mmMC_VM_AGP_BASE, 0); | 454 | WREG32(mmMC_VM_AGP_BASE, 0); |
467 | WREG32(mmMC_VM_AGP_TOP, 0x0FFFFFFF); | 455 | WREG32(mmMC_VM_AGP_TOP, 0x0FFFFFFF); |
468 | WREG32(mmMC_VM_AGP_BOT, 0x0FFFFFFF); | 456 | WREG32(mmMC_VM_AGP_BOT, 0x0FFFFFFF); |
469 | if (gmc_v8_0_wait_for_idle((void *)adev)) { | 457 | if (gmc_v8_0_wait_for_idle((void *)adev)) { |
470 | dev_warn(adev->dev, "Wait for MC idle timedout !\n"); | 458 | dev_warn(adev->dev, "Wait for MC idle timedout !\n"); |
471 | } | 459 | } |
472 | gmc_v8_0_mc_resume(adev, &save); | ||
473 | 460 | ||
474 | WREG32(mmBIF_FB_EN, BIF_FB_EN__FB_READ_EN_MASK | BIF_FB_EN__FB_WRITE_EN_MASK); | 461 | WREG32(mmBIF_FB_EN, BIF_FB_EN__FB_READ_EN_MASK | BIF_FB_EN__FB_WRITE_EN_MASK); |
475 | 462 | ||