From 3ccd29245cc01e76790519636a8aa9ab50ad05fd Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 20 Mar 2017 10:09:50 -0700 Subject: [PATCH] DS GX: Hack to prevent FIFO from overflowing during STMs --- src/ds/gx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ds/gx.c b/src/ds/gx.c index 9a8bf90ae..ea5f7a373 100644 --- a/src/ds/gx.c +++ b/src/ds/gx.c @@ -1672,7 +1672,9 @@ static void DSGXWriteFIFO(struct DSGX* gx, struct DSGXEntry entry) { if (CircleBufferSize(&gx->fifo) == (DS_GX_FIFO_SIZE * sizeof(entry))) { mLOG(DS_GX, INFO, "FIFO full"); if (gx->p->cpuBlocked & DS_CPU_BLOCK_GX) { - abort(); + // Can happen from STM + mTimingDeschedule(&gx->p->ds9.timing, &gx->fifoEvent); + _fifoRun(&gx->p->ds9.timing, gx, 0); } gx->p->cpuBlocked |= DS_CPU_BLOCK_GX; gx->outstandingEntry = entry;