Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc821b70 authored by Alex Deucher's avatar Alex Deucher
Browse files

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
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -3042,6 +3042,9 @@ static void cik_setup_rb(struct radeon_device *rdev,
		for (j = 0; j < sh_per_se; j++) {
			cik_select_se_sh(rdev, i, j);
			data = cik_get_rb_disabled(rdev, max_rb_num, se_num, sh_per_se);
			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);
		}
	}
@@ -3059,6 +3062,12 @@ static void cik_setup_rb(struct radeon_device *rdev,
		data = 0;
		for (j = 0; j < sh_per_se; j++) {
			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:
				data |= (RASTER_CONFIG_RB_MAP_0 << (i * sh_per_se + j) * 2);
				break;
+3 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#define HAWAII_GB_ADDR_CONFIG_GOLDEN         0x12011003

#define CIK_RB_BITMAP_WIDTH_PER_SH     2
#define HAWAII_RB_BITMAP_WIDTH_PER_SH  4

/* DIDT IND registers */
#define DIDT_SQ_CTRL0                                     0x0
@@ -1459,6 +1460,7 @@
#       define RASTER_CONFIG_RB_MAP_1                   1
#       define RASTER_CONFIG_RB_MAP_2                   2
#       define RASTER_CONFIG_RB_MAP_3                   3
#define		PKR_MAP(x)				((x) << 8)

#define VGT_EVENT_INITIATOR                             0x28a90
#       define SAMPLE_STREAMOUTSTATS1                   (1 << 0)