summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-07-29 15:40:46 -0400
committerMarek Olšák <marek.olsak@amd.com>2015-08-14 15:02:29 +0200
commit767ad50a10d01274b1d1a877add12b5552ba6984 (patch)
treeb8eafd5351d5f36dbb1a4d5131e9586ed3e60475
parent528a6ff5992e6710921d6e4157a8a51884bc277f (diff)
radeonsi: add support for FIJI (v4)
v2: incorporate comments from Marek v3: add missing fiji case in winsys init use tonga raster config (double check this) v4: rebase on harvest patch Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v3) Reviewed-by: Christian König <christian.koenig@amd.com> (v3) Reviewed-by: David Zhang <david1.zhang@amd.com> (v3) Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.c2
-rw-r--r--src/gallium/drivers/radeon/radeon_winsys.h1
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c5
-rw-r--r--src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c4
4 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index a08e841f11f..ed5d1dabdc3 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -411,6 +411,7 @@ static const char* r600_get_chip_name(struct r600_common_screen *rscreen)
case CHIP_TONGA: return "AMD TONGA";
case CHIP_ICELAND: return "AMD ICELAND";
case CHIP_CARRIZO: return "AMD CARRIZO";
+ case CHIP_FIJI: return "AMD FIJI";
default: return "AMD unknown";
}
}
@@ -538,6 +539,7 @@ const char *r600_get_llvm_processor_name(enum radeon_family family)
case CHIP_TONGA: return "tonga";
case CHIP_ICELAND: return "iceland";
case CHIP_CARRIZO: return "carrizo";
+ case CHIP_FIJI: return "fiji";
default: return "";
}
}
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h
index 616816ebcea..d7424eef27e 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -136,6 +136,7 @@ enum radeon_family {
CHIP_TONGA,
CHIP_ICELAND,
CHIP_CARRIZO,
+ CHIP_FIJI,
CHIP_LAST,
};
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 34ef9e49d5c..21689e71b8b 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3226,6 +3226,11 @@ static void si_init_config(struct si_context *sctx)
raster_config = 0x3a00161a;
raster_config_1 = 0x0000002e;
break;
+ case CHIP_FIJI:
+ /* Fiji should be same as Hawaii, but that causes corruption in some cases */
+ raster_config = 0x16000012; /* 0x3a00161a */
+ raster_config_1 = 0x0000002a; /* 0x0000002e */
+ break;
case CHIP_TONGA:
raster_config = 0x16000012;
raster_config_1 = 0x0000002a;
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index 9020b1cefc7..f57f45b618f 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -227,6 +227,10 @@ static boolean do_winsys_init(struct amdgpu_winsys *ws)
ws->family = FAMILY_CZ;
ws->rev_id = CZ_CARRIZO_A0;
break;
+ case CHIP_FIJI:
+ ws->family = FAMILY_VI;
+ ws->rev_id = VI_FIJI_P_A0;
+ break;
default:
fprintf(stderr, "amdgpu: Unknown family.\n");
goto fail;