diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/atombios_crtc.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/atombios_crtc.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 87631fede1f8..2b97262e3ab1 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
| @@ -1107,9 +1107,40 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc, | |||
| 1107 | return -EINVAL; | 1107 | return -EINVAL; |
| 1108 | } | 1108 | } |
| 1109 | 1109 | ||
| 1110 | if (tiling_flags & RADEON_TILING_MACRO) | 1110 | if (tiling_flags & RADEON_TILING_MACRO) { |
| 1111 | if (rdev->family >= CHIP_CAYMAN) | ||
| 1112 | tmp = rdev->config.cayman.tile_config; | ||
| 1113 | else | ||
| 1114 | tmp = rdev->config.evergreen.tile_config; | ||
| 1115 | |||
| 1116 | switch ((tmp & 0xf0) >> 4) { | ||
| 1117 | case 0: /* 4 banks */ | ||
| 1118 | fb_format |= EVERGREEN_GRPH_NUM_BANKS(EVERGREEN_ADDR_SURF_4_BANK); | ||
| 1119 | break; | ||
| 1120 | case 1: /* 8 banks */ | ||
| 1121 | default: | ||
| 1122 | fb_format |= EVERGREEN_GRPH_NUM_BANKS(EVERGREEN_ADDR_SURF_8_BANK); | ||
| 1123 | break; | ||
| 1124 | case 2: /* 16 banks */ | ||
| 1125 | fb_format |= EVERGREEN_GRPH_NUM_BANKS(EVERGREEN_ADDR_SURF_16_BANK); | ||
| 1126 | break; | ||
| 1127 | } | ||
| 1128 | |||
| 1129 | switch ((tmp & 0xf000) >> 12) { | ||
| 1130 | case 0: /* 1KB rows */ | ||
| 1131 | default: | ||
| 1132 | fb_format |= EVERGREEN_GRPH_TILE_SPLIT(EVERGREEN_ADDR_SURF_TILE_SPLIT_1KB); | ||
| 1133 | break; | ||
| 1134 | case 1: /* 2KB rows */ | ||
| 1135 | fb_format |= EVERGREEN_GRPH_TILE_SPLIT(EVERGREEN_ADDR_SURF_TILE_SPLIT_2KB); | ||
| 1136 | break; | ||
| 1137 | case 2: /* 4KB rows */ | ||
| 1138 | fb_format |= EVERGREEN_GRPH_TILE_SPLIT(EVERGREEN_ADDR_SURF_TILE_SPLIT_4KB); | ||
| 1139 | break; | ||
| 1140 | } | ||
| 1141 | |||
| 1111 | fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_2D_TILED_THIN1); | 1142 | fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_2D_TILED_THIN1); |
| 1112 | else if (tiling_flags & RADEON_TILING_MICRO) | 1143 | } else if (tiling_flags & RADEON_TILING_MICRO) |
| 1113 | fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_1D_TILED_THIN1); | 1144 | fb_format |= EVERGREEN_GRPH_ARRAY_MODE(EVERGREEN_GRPH_ARRAY_1D_TILED_THIN1); |
| 1114 | 1145 | ||
| 1115 | switch (radeon_crtc->crtc_id) { | 1146 | switch (radeon_crtc->crtc_id) { |
