[PATCH v2 00/15] drm/mgag200: Convert to atomic modesetting
Sam Ravnborg
sam at ravnborg.org
Tue May 12 18:56:36 UTC 2020
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 at ravnborg.org>
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
More information about the dri-devel
mailing list