Hi Thomas. On Tue, May 12, 2020 at 10:42:43AM +0200, Thomas Zimmermann wrote: > This patchset converts mgag200 to atomic modesetting. It uses simple > KMS helpers and SHMEM. > > Patch 1 removes cursor support. The HW cursor is not usable with the > way universal planes work. > > Patches 2 to 11 untangle the existing modesetting code into smaller > functions. Specifically, mode setting and plane updates are being > separated from each other. > > Patch 12 to 14 convert mgag200 to simple KMS helpers and enables atomic > mode setting. > > Atomically switching plane framebuffers, requires either source or target > buffer to be located at a non-0 offet. As some HW revisions seem to require > a framebuffer offset of 0 within the video memory, they do not work with > atomic modesetting. To resolve this problem, patch 15 converts mgag200 > from VRAM helpers to SHMEM helpers. During plane updates, the content of > the SHMEM BO is memcpy'd to VRAM. From my observation, performance is not > nuch different from the original code. > > The patchset has been tested on MGA G200EH hardware. > > v2: > * rebase patchset > * replace uint{8,32}_t with u{8,32} through-out patchset > * define additional register constants > * use helper functions around bpp-shift computations > * split conversion patch > * cleanups With the one comment addressed patch 1-14 are now all: Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx> I did not look at the last patch - all the memory stuff is still beyond me. Nice to see this driver gettting so much love and care. The end result is a much nicer driver implmentation. Sam > > Thomas Zimmermann (15): > drm/mgag200: Remove HW cursor > drm/mgag200: Clean up mga_set_start_address() > drm/mgag200: Clean up mga_crtc_do_set_base() > drm/mgag200: Move mode-setting code into separate helper function > drm/mgag200: Split MISC register update into PLL selection, SYNC and > I/O > drm/mgag200: Update mode registers after plane registers > drm/mgag200: Set pitch in a separate helper function > drm/mgag200: Set primary plane's format in separate helper function > drm/mgag200: Move TAGFIFO reset into separate function > drm/mgag200: Move hiprilvl setting into separate functions > drm/mgag200: Move register initialization into separate function > drm/mgag200: Remove out-commented suspend/resume helpers > drm/mgag200: Use simple-display data structures > drm/mgag200: Convert to simple KMS helper > drm/mgag200: Replace VRAM helpers with SHMEM helpers > > drivers/gpu/drm/mgag200/Kconfig | 4 +- > drivers/gpu/drm/mgag200/Makefile | 2 +- > drivers/gpu/drm/mgag200/mgag200_drv.c | 51 +- > drivers/gpu/drm/mgag200/mgag200_drv.h | 41 +- > drivers/gpu/drm/mgag200/mgag200_main.c | 5 - > drivers/gpu/drm/mgag200/mgag200_mode.c | 871 ++++++++++++++----------- > drivers/gpu/drm/mgag200/mgag200_reg.h | 11 +- > drivers/gpu/drm/mgag200/mgag200_ttm.c | 28 +- > 8 files changed, 528 insertions(+), 485 deletions(-) > > -- > 2.26.2 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel