Commit 62841ab7 authored by Ben Skeggs's avatar Ben Skeggs

drm/nv50: prevent (IB_PUT == IB_GET) for occurring unless idle

Should fix a DMA race condition I've never seen myself, but could be
the culprit in some random hangs that have been reported.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent cd2fb2e9
...@@ -214,7 +214,7 @@ nv50_dma_push_wait(struct nouveau_channel *chan, int count) ...@@ -214,7 +214,7 @@ nv50_dma_push_wait(struct nouveau_channel *chan, int count)
chan->dma.ib_free = get - chan->dma.ib_put; chan->dma.ib_free = get - chan->dma.ib_put;
if (chan->dma.ib_free <= 0) if (chan->dma.ib_free <= 0)
chan->dma.ib_free += chan->dma.ib_max + 1; chan->dma.ib_free += chan->dma.ib_max;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment