GC300 2D unit won't work with GC2000 3D disabled on MMP3

Lucas Stach l.stach at pengutronix.de
Tue Dec 1 10:33:36 UTC 2020


Hi Lubomir,

Am Montag, den 30.11.2020, 18:07 +0100 schrieb Lubomir Rintel:
Hello,

(adding Ivan to Cc, since he brought the issue up privately. Ivan,
etnaviv@ is a moderated list, please subscribe if you're going to
reply.)

I'm wondering if anyone can help me understand what is going with
Vivante
GC300 on a MMP3 and find a reasonable fix. MMP3 has these two GPU
cores:

  [    2.142545] etnaviv-gpu d420d000.gpu: model: GC2000, revision:
5026
  [    2.154468] etnaviv-gpu d420f000.gpu: model: GC300, revision: 4634
  [    2.166808] [drm] Initialized etnaviv 1.3.0 20151214 for etnaviv
on minor 0

Currently, clients that try to use the GC300 2D unit -- libdrm's
etnaviv_2d
test or the xorg-x11-drv-armada ddx on a MMP3 don't work and etnaviv
complains:

  [  295.077770] etnaviv-gpu d420d000.gpu: recover hung GPU!

That is, until the clock that's supposedly for the GC2000 3D unit are
turned on. Then things work fine.

I believe the above splat is with the etnaviv_2d_test? This test is
broken in that it will just pick the first GPU core (in your case the
GC2000) instead of looking for a core with 2D capabilities. Submitting
2D jobs into the 3D GPU will do nothing or hang the GPU, depending on
the specific GPU generation.

I don't know exactly what the armada driver is doing, IIRC it properly
looks for a 2D GPU core.

Is the symptom the same if the 2d_test is fixed to submit into the
right GPU core?

Regards,
Lucas



More information about the etnaviv mailing list