drm/mgag200: Rewrite cursor handling
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 13 Jun 2019 07:30:39 +0000 (09:30 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 13 Jun 2019 11:37:28 +0000 (13:37 +0200)
commit94dc57b1039979b3669b36fc83e8b97cabc149ef
treef7b3df5406eeb2f814f7594b85f7a712883dd45a
parentf4ce5af71bc267a741672bf66467dd70282ff7ef
drm/mgag200: Rewrite cursor handling

The cursor handling in mgag200 is complicated to understand. It touches a
number of different BOs, but doesn't really use all of them.

Rewriting the cursor update reduces the amount of cursor state. There are
two BOs for double-buffered HW updates. The source BO updates the one that
is currently not displayed and then switches buffers. Explicit BO locking
has been removed from the code. BOs are simply pinned and unpinned in video
RAM.

v2:
* pin cursor BOs to current location

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190613073041.29350-8-tzimmermann@suse.de
drivers/gpu/drm/mgag200/mgag200_cursor.c
drivers/gpu/drm/mgag200/mgag200_drv.h
drivers/gpu/drm/mgag200/mgag200_main.c