diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-03-20 17:18:37 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-03-21 02:55:57 -0400 |
commit | 05b3ef69e5626799cbe6784bae09ad49f963721f (patch) | |
tree | f5041a97bd0c0f65dc02e2882f13b1f6b6efc483 /drivers/gpu/drm/radeon/evergreen.c | |
parent | 7b76e479e0f9d2f106bdf0686eff075837a6429a (diff) |
drm/radeon/kms: Update evergreen functions for trinity
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 6c2b666c8ffc..cfa372cb1cb3 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -1328,7 +1328,10 @@ void evergreen_mc_program(struct radeon_device *rdev) | |||
1328 | rdev->mc.vram_end >> 12); | 1328 | rdev->mc.vram_end >> 12); |
1329 | } | 1329 | } |
1330 | WREG32(MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, rdev->vram_scratch.gpu_addr >> 12); | 1330 | WREG32(MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, rdev->vram_scratch.gpu_addr >> 12); |
1331 | if (rdev->flags & RADEON_IS_IGP) { | 1331 | /* llano/ontario only */ |
1332 | if ((rdev->family == CHIP_PALM) || | ||
1333 | (rdev->family == CHIP_SUMO) || | ||
1334 | (rdev->family == CHIP_SUMO2)) { | ||
1332 | tmp = RREG32(MC_FUS_VM_FB_OFFSET) & 0x000FFFFF; | 1335 | tmp = RREG32(MC_FUS_VM_FB_OFFSET) & 0x000FFFFF; |
1333 | tmp |= ((rdev->mc.vram_end >> 20) & 0xF) << 24; | 1336 | tmp |= ((rdev->mc.vram_end >> 20) & 0xF) << 24; |
1334 | tmp |= ((rdev->mc.vram_start >> 20) & 0xF) << 20; | 1337 | tmp |= ((rdev->mc.vram_start >> 20) & 0xF) << 20; |
@@ -1972,7 +1975,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev) | |||
1972 | 1975 | ||
1973 | 1976 | ||
1974 | mc_shared_chmap = RREG32(MC_SHARED_CHMAP); | 1977 | mc_shared_chmap = RREG32(MC_SHARED_CHMAP); |
1975 | if (rdev->flags & RADEON_IS_IGP) | 1978 | if ((rdev->family == CHIP_PALM) || |
1979 | (rdev->family == CHIP_SUMO) || | ||
1980 | (rdev->family == CHIP_SUMO2)) | ||
1976 | mc_arb_ramcfg = RREG32(FUS_MC_ARB_RAMCFG); | 1981 | mc_arb_ramcfg = RREG32(FUS_MC_ARB_RAMCFG); |
1977 | else | 1982 | else |
1978 | mc_arb_ramcfg = RREG32(MC_ARB_RAMCFG); | 1983 | mc_arb_ramcfg = RREG32(MC_ARB_RAMCFG); |
@@ -2362,7 +2367,9 @@ int evergreen_mc_init(struct radeon_device *rdev) | |||
2362 | 2367 | ||
2363 | /* Get VRAM informations */ | 2368 | /* Get VRAM informations */ |
2364 | rdev->mc.vram_is_ddr = true; | 2369 | rdev->mc.vram_is_ddr = true; |
2365 | if (rdev->flags & RADEON_IS_IGP) | 2370 | if ((rdev->family == CHIP_PALM) || |
2371 | (rdev->family == CHIP_SUMO) || | ||
2372 | (rdev->family == CHIP_SUMO2)) | ||
2366 | tmp = RREG32(FUS_MC_ARB_RAMCFG); | 2373 | tmp = RREG32(FUS_MC_ARB_RAMCFG); |
2367 | else | 2374 | else |
2368 | tmp = RREG32(MC_ARB_RAMCFG); | 2375 | tmp = RREG32(MC_ARB_RAMCFG); |
@@ -2394,12 +2401,14 @@ int evergreen_mc_init(struct radeon_device *rdev) | |||
2394 | rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0); | 2401 | rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0); |
2395 | rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0); | 2402 | rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0); |
2396 | /* Setup GPU memory space */ | 2403 | /* Setup GPU memory space */ |
2397 | if (rdev->flags & RADEON_IS_IGP) { | 2404 | if ((rdev->family == CHIP_PALM) || |
2405 | (rdev->family == CHIP_SUMO) || | ||
2406 | (rdev->family == CHIP_SUMO2)) { | ||
2398 | /* size in bytes on fusion */ | 2407 | /* size in bytes on fusion */ |
2399 | rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE); | 2408 | rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE); |
2400 | rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE); | 2409 | rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE); |
2401 | } else { | 2410 | } else { |
2402 | /* size in MB on evergreen */ | 2411 | /* size in MB on evergreen/cayman/tn */ |
2403 | rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; | 2412 | rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; |
2404 | rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; | 2413 | rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; |
2405 | } | 2414 | } |
@@ -2557,7 +2566,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev) | |||
2557 | WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); | 2566 | WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); |
2558 | } | 2567 | } |
2559 | 2568 | ||
2560 | WREG32(DACA_AUTODETECT_INT_CONTROL, 0); | 2569 | /* only one DAC on DCE6 */ |
2570 | if (!ASIC_IS_DCE6(rdev)) | ||
2571 | WREG32(DACA_AUTODETECT_INT_CONTROL, 0); | ||
2561 | WREG32(DACB_AUTODETECT_INT_CONTROL, 0); | 2572 | WREG32(DACB_AUTODETECT_INT_CONTROL, 0); |
2562 | 2573 | ||
2563 | tmp = RREG32(DC_HPD1_INT_CONTROL) & DC_HPDx_INT_POLARITY; | 2574 | tmp = RREG32(DC_HPD1_INT_CONTROL) & DC_HPDx_INT_POLARITY; |