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: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -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,
|
|||||||
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 @@
|
|||||||
#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 @@
|
|||||||
# 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)
|
||||||
|
Reference in New Issue
Block a user