diff options
author | Tom St Denis <tom.stdenis@amd.com> | 2016-09-22 12:29:40 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-09-28 16:16:25 -0400 |
commit | 3d5f4d4770a4084ccfc5ed2fff4b2a0017e7d558 (patch) | |
tree | 7b76d323e6977385c5c77267a36df9de19dea5a4 /drivers/gpu/drm/amd/amdgpu | |
parent | ad78069c333b6d80958794d073d85f7c428a2213 (diff) |
drm/amd/amdgpu: Various cleanups for DCEv6
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 46 |
1 files changed, 10 insertions, 36 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c index 42a4e7e745da..b948d6cb1399 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | |||
@@ -1505,10 +1505,7 @@ static void dce_v6_0_vga_enable(struct drm_crtc *crtc, bool enable) | |||
1505 | u32 vga_control; | 1505 | u32 vga_control; |
1506 | 1506 | ||
1507 | vga_control = RREG32(vga_control_regs[amdgpu_crtc->crtc_id]) & ~1; | 1507 | vga_control = RREG32(vga_control_regs[amdgpu_crtc->crtc_id]) & ~1; |
1508 | if (enable) | 1508 | WREG32(vga_control_regs[amdgpu_crtc->crtc_id], vga_control | (enable ? 1 : 0)); |
1509 | WREG32(vga_control_regs[amdgpu_crtc->crtc_id], vga_control | 1); | ||
1510 | else | ||
1511 | WREG32(vga_control_regs[amdgpu_crtc->crtc_id], vga_control); | ||
1512 | } | 1509 | } |
1513 | 1510 | ||
1514 | static void dce_v6_0_grph_enable(struct drm_crtc *crtc, bool enable) | 1511 | static void dce_v6_0_grph_enable(struct drm_crtc *crtc, bool enable) |
@@ -1517,10 +1514,7 @@ static void dce_v6_0_grph_enable(struct drm_crtc *crtc, bool enable) | |||
1517 | struct drm_device *dev = crtc->dev; | 1514 | struct drm_device *dev = crtc->dev; |
1518 | struct amdgpu_device *adev = dev->dev_private; | 1515 | struct amdgpu_device *adev = dev->dev_private; |
1519 | 1516 | ||
1520 | if (enable) | 1517 | WREG32(EVERGREEN_GRPH_ENABLE + amdgpu_crtc->crtc_offset, enable ? 1 : 0); |
1521 | WREG32(EVERGREEN_GRPH_ENABLE + amdgpu_crtc->crtc_offset, 1); | ||
1522 | else | ||
1523 | WREG32(EVERGREEN_GRPH_ENABLE + amdgpu_crtc->crtc_offset, 0); | ||
1524 | } | 1518 | } |
1525 | 1519 | ||
1526 | static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, | 1520 | static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, |
@@ -1550,8 +1544,7 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
1550 | if (atomic) { | 1544 | if (atomic) { |
1551 | amdgpu_fb = to_amdgpu_framebuffer(fb); | 1545 | amdgpu_fb = to_amdgpu_framebuffer(fb); |
1552 | target_fb = fb; | 1546 | target_fb = fb; |
1553 | } | 1547 | } else { |
1554 | else { | ||
1555 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); | 1548 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); |
1556 | target_fb = crtc->primary->fb; | 1549 | target_fb = crtc->primary->fb; |
1557 | } | 1550 | } |
@@ -1565,9 +1558,9 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
1565 | if (unlikely(r != 0)) | 1558 | if (unlikely(r != 0)) |
1566 | return r; | 1559 | return r; |
1567 | 1560 | ||
1568 | if (atomic) | 1561 | if (atomic) { |
1569 | fb_location = amdgpu_bo_gpu_offset(abo); | 1562 | fb_location = amdgpu_bo_gpu_offset(abo); |
1570 | else { | 1563 | } else { |
1571 | r = amdgpu_bo_pin(abo, AMDGPU_GEM_DOMAIN_VRAM, &fb_location); | 1564 | r = amdgpu_bo_pin(abo, AMDGPU_GEM_DOMAIN_VRAM, &fb_location); |
1572 | if (unlikely(r != 0)) { | 1565 | if (unlikely(r != 0)) { |
1573 | amdgpu_bo_unreserve(abo); | 1566 | amdgpu_bo_unreserve(abo); |
@@ -1663,8 +1656,9 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
1663 | fb_format |= EVERGREEN_GRPH_BANK_WIDTH(bankw); | 1656 | fb_format |= EVERGREEN_GRPH_BANK_WIDTH(bankw); |
1664 | fb_format |= EVERGREEN_GRPH_BANK_HEIGHT(bankh); | 1657 | fb_format |= EVERGREEN_GRPH_BANK_HEIGHT(bankh); |
1665 | fb_format |= EVERGREEN_GRPH_MACRO_TILE_ASPECT(mtaspect); | 1658 | fb_format |= EVERGREEN_GRPH_MACRO_TILE_ASPECT(mtaspect); |
1666 | } else if (AMDGPU_TILING_GET(tiling_flags, ARRAY_MODE) == ARRAY_1D_TILED_THIN1) | 1659 | } else if (AMDGPU_TILING_GET(tiling_flags, ARRAY_MODE) == ARRAY_1D_TILED_THIN1) { |
1667 | fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_1D_TILED_THIN1); | 1660 | fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_1D_TILED_THIN1); |
1661 | } | ||
1668 | 1662 | ||
1669 | pipe_config = AMDGPU_TILING_GET(tiling_flags, PIPE_CONFIG); | 1663 | pipe_config = AMDGPU_TILING_GET(tiling_flags, PIPE_CONFIG); |
1670 | fb_format |= SI_GRPH_PIPE_CONFIG(pipe_config); | 1664 | fb_format |= SI_GRPH_PIPE_CONFIG(pipe_config); |
@@ -1828,26 +1822,13 @@ static int dce_v6_0_pick_dig_encoder(struct drm_encoder *encoder) | |||
1828 | 1822 | ||
1829 | switch (amdgpu_encoder->encoder_id) { | 1823 | switch (amdgpu_encoder->encoder_id) { |
1830 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | 1824 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: |
1831 | if (dig->linkb) | 1825 | return dig->linkb ? 1 : 0; |
1832 | return 1; | ||
1833 | else | ||
1834 | return 0; | ||
1835 | break; | ||
1836 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: | 1826 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: |
1837 | if (dig->linkb) | 1827 | return dig->linkb ? 3 : 2; |
1838 | return 3; | ||
1839 | else | ||
1840 | return 2; | ||
1841 | break; | ||
1842 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: | 1828 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: |
1843 | if (dig->linkb) | 1829 | return dig->linkb ? 5 : 4; |
1844 | return 5; | ||
1845 | else | ||
1846 | return 4; | ||
1847 | break; | ||
1848 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: | 1830 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: |
1849 | return 6; | 1831 | return 6; |
1850 | break; | ||
1851 | default: | 1832 | default: |
1852 | DRM_ERROR("invalid encoder_id: 0x%x\n", amdgpu_encoder->encoder_id); | 1833 | DRM_ERROR("invalid encoder_id: 0x%x\n", amdgpu_encoder->encoder_id); |
1853 | return 0; | 1834 | return 0; |
@@ -2082,7 +2063,6 @@ static void dce_v6_0_cursor_reset(struct drm_crtc *crtc) | |||
2082 | amdgpu_crtc->cursor_y); | 2063 | amdgpu_crtc->cursor_y); |
2083 | 2064 | ||
2084 | dce_v6_0_show_cursor(crtc); | 2065 | dce_v6_0_show_cursor(crtc); |
2085 | |||
2086 | dce_v6_0_lock_cursor(crtc, false); | 2066 | dce_v6_0_lock_cursor(crtc, false); |
2087 | } | 2067 | } |
2088 | } | 2068 | } |
@@ -2405,15 +2385,11 @@ static int dce_v6_0_sw_init(void *handle) | |||
2405 | adev->mode_info.mode_config_initialized = true; | 2385 | adev->mode_info.mode_config_initialized = true; |
2406 | 2386 | ||
2407 | adev->ddev->mode_config.funcs = &amdgpu_mode_funcs; | 2387 | adev->ddev->mode_config.funcs = &amdgpu_mode_funcs; |
2408 | |||
2409 | adev->ddev->mode_config.async_page_flip = true; | 2388 | adev->ddev->mode_config.async_page_flip = true; |
2410 | |||
2411 | adev->ddev->mode_config.max_width = 16384; | 2389 | adev->ddev->mode_config.max_width = 16384; |
2412 | adev->ddev->mode_config.max_height = 16384; | 2390 | adev->ddev->mode_config.max_height = 16384; |
2413 | |||
2414 | adev->ddev->mode_config.preferred_depth = 24; | 2391 | adev->ddev->mode_config.preferred_depth = 24; |
2415 | adev->ddev->mode_config.prefer_shadow = 1; | 2392 | adev->ddev->mode_config.prefer_shadow = 1; |
2416 | |||
2417 | adev->ddev->mode_config.fb_base = adev->mc.aper_base; | 2393 | adev->ddev->mode_config.fb_base = adev->mc.aper_base; |
2418 | 2394 | ||
2419 | r = amdgpu_modeset_create_props(adev); | 2395 | r = amdgpu_modeset_create_props(adev); |
@@ -2459,7 +2435,6 @@ static int dce_v6_0_sw_fini(void *handle) | |||
2459 | drm_kms_helper_poll_fini(adev->ddev); | 2435 | drm_kms_helper_poll_fini(adev->ddev); |
2460 | 2436 | ||
2461 | dce_v6_0_audio_fini(adev); | 2437 | dce_v6_0_audio_fini(adev); |
2462 | |||
2463 | dce_v6_0_afmt_fini(adev); | 2438 | dce_v6_0_afmt_fini(adev); |
2464 | 2439 | ||
2465 | drm_mode_config_cleanup(adev->ddev); | 2440 | drm_mode_config_cleanup(adev->ddev); |
@@ -3087,7 +3062,6 @@ static void dce_v6_0_encoder_add(struct amdgpu_device *adev, | |||
3087 | } | 3062 | } |
3088 | 3063 | ||
3089 | amdgpu_encoder->enc_priv = NULL; | 3064 | amdgpu_encoder->enc_priv = NULL; |
3090 | |||
3091 | amdgpu_encoder->encoder_enum = encoder_enum; | 3065 | amdgpu_encoder->encoder_enum = encoder_enum; |
3092 | amdgpu_encoder->encoder_id = (encoder_enum & OBJECT_ID_MASK) >> OBJECT_ID_SHIFT; | 3066 | amdgpu_encoder->encoder_id = (encoder_enum & OBJECT_ID_MASK) >> OBJECT_ID_SHIFT; |
3093 | amdgpu_encoder->devices = supported_device; | 3067 | amdgpu_encoder->devices = supported_device; |