Commit fc821b70 authored by Alex Deucher's avatar Alex Deucher

drm/radeon: update rb setup for hawaii

The formula needs to be adjusted since there are 4 RBs
per SH rather than 2 as on previous asics.
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 8efff337
...@@ -3042,7 +3042,10 @@ static void cik_setup_rb(struct radeon_device *rdev, ...@@ -3042,7 +3042,10 @@ static void cik_setup_rb(struct radeon_device *rdev,
for (j = 0; j < sh_per_se; j++) { for (j = 0; j < sh_per_se; j++) {
cik_select_se_sh(rdev, i, j); cik_select_se_sh(rdev, i, j);
data = cik_get_rb_disabled(rdev, max_rb_num, se_num, sh_per_se); data = cik_get_rb_disabled(rdev, max_rb_num, se_num, sh_per_se);
disabled_rbs |= data << ((i * sh_per_se + j) * CIK_RB_BITMAP_WIDTH_PER_SH); if (rdev->family == CHIP_HAWAII)
disabled_rbs |= data << ((i * sh_per_se + j) * HAWAII_RB_BITMAP_WIDTH_PER_SH);
else
disabled_rbs |= data << ((i * sh_per_se + j) * CIK_RB_BITMAP_WIDTH_PER_SH);
} }
} }
cik_select_se_sh(rdev, 0xffffffff, 0xffffffff); cik_select_se_sh(rdev, 0xffffffff, 0xffffffff);
...@@ -3059,6 +3062,12 @@ static void cik_setup_rb(struct radeon_device *rdev, ...@@ -3059,6 +3062,12 @@ static void cik_setup_rb(struct radeon_device *rdev,
data = 0; data = 0;
for (j = 0; j < sh_per_se; j++) { for (j = 0; j < sh_per_se; j++) {
switch (enabled_rbs & 3) { switch (enabled_rbs & 3) {
case 0:
if (j == 0)
data |= PKR_MAP(RASTER_CONFIG_RB_MAP_3);
else
data |= PKR_MAP(RASTER_CONFIG_RB_MAP_0);
break;
case 1: case 1:
data |= (RASTER_CONFIG_RB_MAP_0 << (i * sh_per_se + j) * 2); data |= (RASTER_CONFIG_RB_MAP_0 << (i * sh_per_se + j) * 2);
break; break;
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
#define BONAIRE_GB_ADDR_CONFIG_GOLDEN 0x12010001 #define BONAIRE_GB_ADDR_CONFIG_GOLDEN 0x12010001
#define HAWAII_GB_ADDR_CONFIG_GOLDEN 0x12011003 #define HAWAII_GB_ADDR_CONFIG_GOLDEN 0x12011003
#define CIK_RB_BITMAP_WIDTH_PER_SH 2 #define CIK_RB_BITMAP_WIDTH_PER_SH 2
#define HAWAII_RB_BITMAP_WIDTH_PER_SH 4
/* DIDT IND registers */ /* DIDT IND registers */
#define DIDT_SQ_CTRL0 0x0 #define DIDT_SQ_CTRL0 0x0
...@@ -1459,6 +1460,7 @@ ...@@ -1459,6 +1460,7 @@
# define RASTER_CONFIG_RB_MAP_1 1 # define RASTER_CONFIG_RB_MAP_1 1
# define RASTER_CONFIG_RB_MAP_2 2 # define RASTER_CONFIG_RB_MAP_2 2
# define RASTER_CONFIG_RB_MAP_3 3 # define RASTER_CONFIG_RB_MAP_3 3
#define PKR_MAP(x) ((x) << 8)
#define VGT_EVENT_INITIATOR 0x28a90 #define VGT_EVENT_INITIATOR 0x28a90
# define SAMPLE_STREAMOUTSTATS1 (1 << 0) # define SAMPLE_STREAMOUTSTATS1 (1 << 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment