]> git.baikalelectronics.ru Git - kernel.git/commit
drm/radeon/kms: fix indirect buffer management V2
authorJerome Glisse <jglisse@redhat.com>
Mon, 15 Feb 2010 20:36:13 +0000 (21:36 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 15 Feb 2010 21:59:23 +0000 (07:59 +1000)
commitdb80a8be166b81d1f3b0e242a3c8e5dd597504ad
tree0a97f6a74f946c12d4821d9d82c8255e951d026f
parent4bde9702913e0a6cd3b3dfa7d7df666fe805be3d
drm/radeon/kms: fix indirect buffer management V2

There is 3 different distinct states for an indirect buffer (IB) :
  1- free with no fence
  2- free with a fence
  3- non free (fence doesn't matter)
Previous code mixed case 2 & 3 in a single one leading to possible
catastrophique failure. This patch rework the handling and properly
separate each case. So when you get ib we set the ib as non free and
fence status doesn't matter. Fence become active (ie has a meaning
for the ib code) once the ib is scheduled or free. This patch also
get rid of the alloc bitmap as it was overkill, we know go through
IB pool list like in a ring buffer as the oldest IB is the first
one the will be free.

Fix :
https://bugs.freedesktop.org/show_bug.cgi?id=26438
and likely other bugs.

V2 remove the scheduled list, it's useless now, fix free ib scanning

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r600_blit_kms.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_ring.c