drm/etnaviv: use defined constants for the chip model
Use the defined constants in common.xml.h for the chip model rather than coding these as hex numbers. Acked-by: Christian Gmeiner <christian.gmeiner@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
parent
e2a2e263e0
commit
507f899137
|
@ -173,7 +173,7 @@ static void etnaviv_hw_specs(struct etnaviv_gpu *gpu)
|
||||||
/* Convert the register max value */
|
/* Convert the register max value */
|
||||||
if (gpu->identity.register_max)
|
if (gpu->identity.register_max)
|
||||||
gpu->identity.register_max = 1 << gpu->identity.register_max;
|
gpu->identity.register_max = 1 << gpu->identity.register_max;
|
||||||
else if (gpu->identity.model == 0x0400)
|
else if (gpu->identity.model == chipModel_GC400)
|
||||||
gpu->identity.register_max = 32;
|
gpu->identity.register_max = 32;
|
||||||
else
|
else
|
||||||
gpu->identity.register_max = 64;
|
gpu->identity.register_max = 64;
|
||||||
|
@ -181,10 +181,10 @@ static void etnaviv_hw_specs(struct etnaviv_gpu *gpu)
|
||||||
/* Convert thread count */
|
/* Convert thread count */
|
||||||
if (gpu->identity.thread_count)
|
if (gpu->identity.thread_count)
|
||||||
gpu->identity.thread_count = 1 << gpu->identity.thread_count;
|
gpu->identity.thread_count = 1 << gpu->identity.thread_count;
|
||||||
else if (gpu->identity.model == 0x0400)
|
else if (gpu->identity.model == chipModel_GC400)
|
||||||
gpu->identity.thread_count = 64;
|
gpu->identity.thread_count = 64;
|
||||||
else if (gpu->identity.model == 0x0500 ||
|
else if (gpu->identity.model == chipModel_GC500 ||
|
||||||
gpu->identity.model == 0x0530)
|
gpu->identity.model == chipModel_GC530)
|
||||||
gpu->identity.thread_count = 128;
|
gpu->identity.thread_count = 128;
|
||||||
else
|
else
|
||||||
gpu->identity.thread_count = 256;
|
gpu->identity.thread_count = 256;
|
||||||
|
@ -206,7 +206,7 @@ static void etnaviv_hw_specs(struct etnaviv_gpu *gpu)
|
||||||
if (gpu->identity.vertex_output_buffer_size) {
|
if (gpu->identity.vertex_output_buffer_size) {
|
||||||
gpu->identity.vertex_output_buffer_size =
|
gpu->identity.vertex_output_buffer_size =
|
||||||
1 << gpu->identity.vertex_output_buffer_size;
|
1 << gpu->identity.vertex_output_buffer_size;
|
||||||
} else if (gpu->identity.model == 0x0400) {
|
} else if (gpu->identity.model == chipModel_GC400) {
|
||||||
if (gpu->identity.revision < 0x4000)
|
if (gpu->identity.revision < 0x4000)
|
||||||
gpu->identity.vertex_output_buffer_size = 512;
|
gpu->identity.vertex_output_buffer_size = 512;
|
||||||
else if (gpu->identity.revision < 0x4200)
|
else if (gpu->identity.revision < 0x4200)
|
||||||
|
@ -219,9 +219,9 @@ static void etnaviv_hw_specs(struct etnaviv_gpu *gpu)
|
||||||
|
|
||||||
switch (gpu->identity.instruction_count) {
|
switch (gpu->identity.instruction_count) {
|
||||||
case 0:
|
case 0:
|
||||||
if ((gpu->identity.model == 0x2000 &&
|
if ((gpu->identity.model == chipModel_GC2000 &&
|
||||||
gpu->identity.revision == 0x5108) ||
|
gpu->identity.revision == 0x5108) ||
|
||||||
gpu->identity.model == 0x880)
|
gpu->identity.model == chipModel_GC880)
|
||||||
gpu->identity.instruction_count = 512;
|
gpu->identity.instruction_count = 512;
|
||||||
else
|
else
|
||||||
gpu->identity.instruction_count = 256;
|
gpu->identity.instruction_count = 256;
|
||||||
|
@ -253,7 +253,7 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
|
||||||
/* Special case for older graphic cores. */
|
/* Special case for older graphic cores. */
|
||||||
if (((chipIdentity & VIVS_HI_CHIP_IDENTITY_FAMILY__MASK)
|
if (((chipIdentity & VIVS_HI_CHIP_IDENTITY_FAMILY__MASK)
|
||||||
>> VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT) == 0x01) {
|
>> VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT) == 0x01) {
|
||||||
gpu->identity.model = 0x500; /* gc500 */
|
gpu->identity.model = chipModel_GC500;
|
||||||
gpu->identity.revision =
|
gpu->identity.revision =
|
||||||
(chipIdentity & VIVS_HI_CHIP_IDENTITY_REVISION__MASK)
|
(chipIdentity & VIVS_HI_CHIP_IDENTITY_REVISION__MASK)
|
||||||
>> VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT;
|
>> VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT;
|
||||||
|
@ -269,12 +269,12 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
|
||||||
* same. Only for GC400 family.
|
* same. Only for GC400 family.
|
||||||
*/
|
*/
|
||||||
if ((gpu->identity.model & 0xff00) == 0x0400 &&
|
if ((gpu->identity.model & 0xff00) == 0x0400 &&
|
||||||
gpu->identity.model != 0x0420) {
|
gpu->identity.model != chipModel_GC420) {
|
||||||
gpu->identity.model = gpu->identity.model & 0x0400;
|
gpu->identity.model = gpu->identity.model & 0x0400;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Another special case */
|
/* Another special case */
|
||||||
if (gpu->identity.model == 0x300 &&
|
if (gpu->identity.model == chipModel_GC300 &&
|
||||||
gpu->identity.revision == 0x2201) {
|
gpu->identity.revision == 0x2201) {
|
||||||
u32 chipDate = gpu_read(gpu, VIVS_HI_CHIP_DATE);
|
u32 chipDate = gpu_read(gpu, VIVS_HI_CHIP_DATE);
|
||||||
u32 chipTime = gpu_read(gpu, VIVS_HI_CHIP_TIME);
|
u32 chipTime = gpu_read(gpu, VIVS_HI_CHIP_TIME);
|
||||||
|
@ -295,11 +295,13 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
|
||||||
gpu->identity.features = gpu_read(gpu, VIVS_HI_CHIP_FEATURE);
|
gpu->identity.features = gpu_read(gpu, VIVS_HI_CHIP_FEATURE);
|
||||||
|
|
||||||
/* Disable fast clear on GC700. */
|
/* Disable fast clear on GC700. */
|
||||||
if (gpu->identity.model == 0x700)
|
if (gpu->identity.model == chipModel_GC700)
|
||||||
gpu->identity.features &= ~chipFeatures_FAST_CLEAR;
|
gpu->identity.features &= ~chipFeatures_FAST_CLEAR;
|
||||||
|
|
||||||
if ((gpu->identity.model == 0x500 && gpu->identity.revision < 2) ||
|
if ((gpu->identity.model == chipModel_GC500 &&
|
||||||
(gpu->identity.model == 0x300 && gpu->identity.revision < 0x2000)) {
|
gpu->identity.revision < 2) ||
|
||||||
|
(gpu->identity.model == chipModel_GC300 &&
|
||||||
|
gpu->identity.revision < 0x2000)) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GC500 rev 1.x and GC300 rev < 2.0 doesn't have these
|
* GC500 rev 1.x and GC300 rev < 2.0 doesn't have these
|
||||||
|
@ -466,7 +468,8 @@ static void etnaviv_gpu_hw_init(struct etnaviv_gpu *gpu)
|
||||||
VIVS_HI_AXI_CONFIG_ARCACHE(2));
|
VIVS_HI_AXI_CONFIG_ARCACHE(2));
|
||||||
|
|
||||||
/* GC2000 rev 5108 needs a special bus config */
|
/* GC2000 rev 5108 needs a special bus config */
|
||||||
if (gpu->identity.model == 0x2000 && gpu->identity.revision == 0x5108) {
|
if (gpu->identity.model == chipModel_GC2000 &&
|
||||||
|
gpu->identity.revision == 0x5108) {
|
||||||
u32 bus_config = gpu_read(gpu, VIVS_MC_BUS_CONFIG);
|
u32 bus_config = gpu_read(gpu, VIVS_MC_BUS_CONFIG);
|
||||||
bus_config &= ~(VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG__MASK |
|
bus_config &= ~(VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG__MASK |
|
||||||
VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG__MASK);
|
VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG__MASK);
|
||||||
|
|
Loading…
Reference in New Issue