> On May 4, 2020, at 8:39 AM, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > > Hi John > > Am 30.04.20 um 02:11 schrieb John Donnelly: >> On 4/29/20 9:32 AM, Thomas Zimmermann wrote: >>> This patchset converts mgag200 to atomic modesetting. It uses simple >>> KMS helpers and SHMEM. >>> >>> Patches 1 to 4 simplifies the driver before the conversion. For example, >>> the HW cursor is not usable with the way universal planes work. A few >>> data structures can be cleaned up. >>> >>> Patches 5 to 15 untangle the existing modesetting code into smaller >>> functions. Specifically, mode setting and plane updates are being >>> separated from each other. >>> >>> Patch 16 converts mgag200 to simple KMS helpers and enables atomic >>> mode setting. >>> >>> As some HW seems to require a framebuffer offset of 0 within the video >>> memory, it does not work with atomic modesetting. Atomically switching >>> plane framebuffers, requires either source or target buffer to be located >>> at a non-0 offet. To resolve this problem, patch 17 converts mgag200 from >>> VRAM helpers to SHMEM helpers. During plane updates, the content of the >>> SHMEM BO is memcpy'd to VRAM. From my subjective obersation, performance >>> is not nuch different from the original code. >>> >>> The patchset has been tested on MGA G200EH hardware. >>> >>> Thomas Zimmermann (17): >>> drm/mgag200: Remove HW cursor >>> drm/mgag200: Remove unused fields from struct mga_device >>> drm/mgag200: Embed connector instance in struct mga_device >>> drm/mgag200: Use managed mode-config initialization >>> 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 waiting from DPMS code >>> 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_cursor.c | 319 -------- >>> drivers/gpu/drm/mgag200/mgag200_drv.c | 51 +- >>> drivers/gpu/drm/mgag200/mgag200_drv.h | 43 +- >>> drivers/gpu/drm/mgag200/mgag200_main.c | 28 - >>> drivers/gpu/drm/mgag200/mgag200_mode.c | 948 ++++++++++++----------- >>> drivers/gpu/drm/mgag200/mgag200_reg.h | 5 +- >>> drivers/gpu/drm/mgag200/mgag200_ttm.c | 35 +- >>> 9 files changed, 563 insertions(+), 872 deletions(-) >>> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_cursor.c >>> >>> -- >>> 2.26.0 >>> >> >> >> Hi Thomas , >> >> I would like to test this on hardware that uses this device integrated >> into as BMC ( iLo ) that I have ran into problems before. Can you post >> your staging URL so I can clone it ? > > I uploaded the patches at > > > https://gitlab.freedesktop.org/tzimmermann/linux/-/tree/mgag200-simplekms-20200504 > > You can clone them with > > git clone git@xxxxxxxxxxxxxxxxxxxxxx:tzimmermann/linux.git > > and checkout the mgag200-simplekms-20200405 branch afterwards. > > Best regards > Thomas Got it . Thank you . _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel