Skip to content

Commit cc7d3fb

Browse files
dougg3lynxeye-dev
authored andcommitted
drm/etnaviv: add missing quirks for GC300
The GC300's features register doesn't specify that a 2D pipe is available, and like the GC600, its idle register reports zero bits where modules aren't present. Signed-off-by: Doug Brown <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Signed-off-by: Lucas Stach <[email protected]>
1 parent 332f847 commit cc7d3fb

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

drivers/gpu/drm/etnaviv/etnaviv_gpu.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,12 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
416416
if (gpu->identity.model == chipModel_GC700)
417417
gpu->identity.features &= ~chipFeatures_FAST_CLEAR;
418418

419+
/* These models/revisions don't have the 2D pipe bit */
420+
if ((gpu->identity.model == chipModel_GC500 &&
421+
gpu->identity.revision <= 2) ||
422+
gpu->identity.model == chipModel_GC300)
423+
gpu->identity.features |= chipFeatures_PIPE_2D;
424+
419425
if ((gpu->identity.model == chipModel_GC500 &&
420426
gpu->identity.revision < 2) ||
421427
(gpu->identity.model == chipModel_GC300 &&
@@ -449,8 +455,9 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
449455
gpu_read(gpu, VIVS_HI_CHIP_MINOR_FEATURE_5);
450456
}
451457

452-
/* GC600 idle register reports zero bits where modules aren't present */
453-
if (gpu->identity.model == chipModel_GC600)
458+
/* GC600/300 idle register reports zero bits where modules aren't present */
459+
if (gpu->identity.model == chipModel_GC600 ||
460+
gpu->identity.model == chipModel_GC300)
454461
gpu->idle_mask = VIVS_HI_IDLE_STATE_TX |
455462
VIVS_HI_IDLE_STATE_RA |
456463
VIVS_HI_IDLE_STATE_SE |

0 commit comments

Comments
 (0)