diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/cik.c')
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index 6ca1f87af87a..24d96cbb1f03 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
@@ -3042,7 +3042,10 @@ static void cik_setup_rb(struct radeon_device *rdev, | |||
3042 | for (j = 0; j < sh_per_se; j++) { | 3042 | for (j = 0; j < sh_per_se; j++) { |
3043 | cik_select_se_sh(rdev, i, j); | 3043 | cik_select_se_sh(rdev, i, j); |
3044 | data = cik_get_rb_disabled(rdev, max_rb_num, se_num, sh_per_se); | 3044 | data = cik_get_rb_disabled(rdev, max_rb_num, se_num, sh_per_se); |
3045 | disabled_rbs |= data << ((i * sh_per_se + j) * CIK_RB_BITMAP_WIDTH_PER_SH); | 3045 | if (rdev->family == CHIP_HAWAII) |
3046 | disabled_rbs |= data << ((i * sh_per_se + j) * HAWAII_RB_BITMAP_WIDTH_PER_SH); | ||
3047 | else | ||
3048 | disabled_rbs |= data << ((i * sh_per_se + j) * CIK_RB_BITMAP_WIDTH_PER_SH); | ||
3046 | } | 3049 | } |
3047 | } | 3050 | } |
3048 | cik_select_se_sh(rdev, 0xffffffff, 0xffffffff); | 3051 | cik_select_se_sh(rdev, 0xffffffff, 0xffffffff); |
@@ -3059,6 +3062,12 @@ static void cik_setup_rb(struct radeon_device *rdev, | |||
3059 | data = 0; | 3062 | data = 0; |
3060 | for (j = 0; j < sh_per_se; j++) { | 3063 | for (j = 0; j < sh_per_se; j++) { |
3061 | switch (enabled_rbs & 3) { | 3064 | switch (enabled_rbs & 3) { |
3065 | case 0: | ||
3066 | if (j == 0) | ||
3067 | data |= PKR_MAP(RASTER_CONFIG_RB_MAP_3); | ||
3068 | else | ||
3069 | data |= PKR_MAP(RASTER_CONFIG_RB_MAP_0); | ||
3070 | break; | ||
3062 | case 1: | 3071 | case 1: |
3063 | data |= (RASTER_CONFIG_RB_MAP_0 << (i * sh_per_se + j) * 2); | 3072 | data |= (RASTER_CONFIG_RB_MAP_0 << (i * sh_per_se + j) * 2); |
3064 | break; | 3073 | break; |