|
@@ -313,26 +313,12 @@ void adreno_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit,
|
|
|
OUT_RING(ring, 0x00000000);
|
|
|
}
|
|
|
|
|
|
+ /* BIT(31) of CACHE_FLUSH_TS triggers CACHE_FLUSH_TS IRQ from GPU */
|
|
|
OUT_PKT3(ring, CP_EVENT_WRITE, 3);
|
|
|
- OUT_RING(ring, CACHE_FLUSH_TS);
|
|
|
+ OUT_RING(ring, CACHE_FLUSH_TS | BIT(31));
|
|
|
OUT_RING(ring, rbmemptr(ring, fence));
|
|
|
OUT_RING(ring, submit->seqno);
|
|
|
|
|
|
- /* we could maybe be clever and only CP_COND_EXEC the interrupt: */
|
|
|
- OUT_PKT3(ring, CP_INTERRUPT, 1);
|
|
|
- OUT_RING(ring, 0x80000000);
|
|
|
-
|
|
|
- /* Workaround for missing irq issue on 8x16/a306. Unsure if the
|
|
|
- * root cause is a platform issue or some a306 quirk, but this
|
|
|
- * keeps things humming along:
|
|
|
- */
|
|
|
- if (adreno_is_a306(adreno_gpu)) {
|
|
|
- OUT_PKT3(ring, CP_WAIT_FOR_IDLE, 1);
|
|
|
- OUT_RING(ring, 0x00000000);
|
|
|
- OUT_PKT3(ring, CP_INTERRUPT, 1);
|
|
|
- OUT_RING(ring, 0x80000000);
|
|
|
- }
|
|
|
-
|
|
|
#if 0
|
|
|
if (adreno_is_a3xx(adreno_gpu)) {
|
|
|
/* Dummy set-constant to trigger context rollover */
|