Skip to content

Commit

Permalink
drm/nouveau/kms/nv50-gp1xx: add WAR for EVO push buffer HW bug
Browse files Browse the repository at this point in the history
Thanks to NVIDIA for confirming this workaround, and clarifying which HW
is affected.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
  • Loading branch information
Ben Skeggs committed Sep 3, 2020
1 parent a9cfcfc commit ca386aa
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/gpu/drm/nouveau/dispnv50/disp.c
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,12 @@ nv50_dmac_create(struct nvif_device *device, struct nvif_object *disp,
dmac->push->end = dmac->push->bgn;
dmac->max = 0x1000/4 - 1;

/* EVO channels are affected by a HW bug where the last 12 DWORDs
* of the push buffer aren't able to be used safely.
*/
if (disp->oclass < GV100_DISP)
dmac->max -= 12;

args->pushbuf = nvif_handle(&dmac->_push.mem.object);

ret = nv50_chan_create(device, disp, oclass, head, data, size,
Expand Down

0 comments on commit ca386aa

Please sign in to comment.