• Chris Wilson's avatar
    drm/i915: Pad ringbuffer with NOOPs before wrapping · 0ef82af7
    Chris Wilson authored
    According to the docs, the ringbuffer is not allowed to wrap in the middle
    of an instruction.
    
    G45 PRM, Vol 1b, p101:
      While the “free space” wrap may allow commands to be wrapped around the
      end of the Ring Buffer, the wrap should only occur between commands.
      Padding (with NOP) may be required to follow this restriction.
    
    Do as commanded.
    
    [Having seen bug reports where there is evidence of split commands, but
    apparently the GPU has continued on merrily before a bizarre and untimely
    death, this may or may not fix a few random hangs.]
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    CC: Eric Anholt <eric@anholt.net>
    Signed-off-by: default avatarEric Anholt <eric@anholt.net>
    0ef82af7
i915_dma.c 37.7 KB