From: Alex Deucher Date: Tue, 24 Sep 2013 16:12:29 +0000 (-0400) Subject: radeonsi: add support for Hawaii asics (v2) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f5778f152b250cb233f4bee021baae916e504afe;p=mesa.git radeonsi: add support for Hawaii asics (v2) Update additional register fields. Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher --- diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.c b/src/gallium/drivers/radeonsi/radeonsi_pipe.c index b79a58ebb3e..1f9279159dc 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pipe.c +++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.c @@ -258,6 +258,7 @@ const char *r600_get_llvm_processor_name(enum radeon_family family) case CHIP_BONAIRE: return "bonaire"; case CHIP_KABINI: return "kabini"; case CHIP_KAVERI: return "kaveri"; + case CHIP_HAWAII: return "hawaii"; default: return ""; #endif } @@ -274,6 +275,7 @@ static const char *r600_get_family_name(enum radeon_family family) case CHIP_BONAIRE: return "AMD BONAIRE"; case CHIP_KAVERI: return "AMD KAVERI"; case CHIP_KABINI: return "AMD KABINI"; + case CHIP_HAWAII: return "AMD HAWAII"; default: return "AMD unknown"; } } diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 72368d85d9b..27428366cfe 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -3136,6 +3136,10 @@ void si_init_config(struct r600_context *rctx) si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x16000012); si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 0x00000000); break; + case CHIP_HAWAII: + si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 0x3a00161a); + si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 0x0000002e); + break; case CHIP_KAVERI: /* XXX todo */ case CHIP_KABINI: diff --git a/src/gallium/drivers/radeonsi/sid.h b/src/gallium/drivers/radeonsi/sid.h index 021f4ebee35..aab39fcfc87 100644 --- a/src/gallium/drivers/radeonsi/sid.h +++ b/src/gallium/drivers/radeonsi/sid.h @@ -5403,6 +5403,8 @@ #define V_02803C_X_ADDR_SURF_P8_32X32_16X16 0x0C #define V_02803C_X_ADDR_SURF_P8_32X32_16X32 0x0D #define V_02803C_X_ADDR_SURF_P8_32X64_32X32 0x0E +#define V_02803C_X_ADDR_SURF_P16_32X32_8X16 0x10 +#define V_02803C_X_ADDR_SURF_P16_32X32_16X16 0x11 #define S_02803C_BANK_WIDTH(x) (((x) & 0x03) << 13) #define G_02803C_BANK_WIDTH(x) (((x) >> 13) & 0x03) #define C_02803C_BANK_WIDTH 0xFFFF9FFF @@ -5731,6 +5733,13 @@ #define V_028350_RASTER_CONFIG_PKR_YSEL_1 0x01 #define V_028350_RASTER_CONFIG_PKR_YSEL_2 0x02 #define V_028350_RASTER_CONFIG_PKR_YSEL_3 0x03 +#define S_028350_PKR_XSEL2(x) (((x) & 0x03) << 14) +#define G_028350_PKR_XSEL2(x) (((x) >> 14) & 0x03) +#define C_028350_PKR_XSEL2 0xFFFF3FFF +#define V_028350_RASTER_CONFIG_PKR_XSEL2_0 0x00 +#define V_028350_RASTER_CONFIG_PKR_XSEL2_1 0x01 +#define V_028350_RASTER_CONFIG_PKR_XSEL2_2 0x02 +#define V_028350_RASTER_CONFIG_PKR_XSEL2_3 0x03 #define S_028350_SC_MAP(x) (((x) & 0x03) << 16) #define G_028350_SC_MAP(x) (((x) >> 16) & 0x03) #define C_028350_SC_MAP 0xFFFCFFFF diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c index 8a8f180d872..18608109e72 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -330,6 +330,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws) case CHIP_BONAIRE: case CHIP_KAVERI: case CHIP_KABINI: + case CHIP_HAWAII: ws->info.chip_class = CIK; break; } diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h b/src/gallium/winsys/radeon/drm/radeon_winsys.h index c0003711bee..d59f48ff3f4 100644 --- a/src/gallium/winsys/radeon/drm/radeon_winsys.h +++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h @@ -128,6 +128,7 @@ enum radeon_family { CHIP_BONAIRE, CHIP_KAVERI, CHIP_KABINI, + CHIP_HAWAII, CHIP_LAST, };