[SRU] [Unstable] [5.8] [PATCH 00/15] Fix mgag200 under Wayland

Kai-Heng Feng kai.heng.feng at canonical.com
Mon Jul 6 13:31:34 UTC 2020

BugLink: https://bugs.launchpad.net/bugs/1886140

mgag200 doesn't work under Wayland. Hence GDM doesn't work unless
Wayland is disabled.

Convert the mgag200 driver to use atomic modesetting.

User reported positive result with this backport.

[Regression Potential]
Medium. There's already a performance regression [1] introduced by the
patch set. However, the mgag200 devices are mainly used for server, so
the glx regression is acceptable. Or the desktop just doesn't work under
wayland at all.

The patch is currently in -next, so it will land to v5.9.

Tried to backport the series to v5.4 but the DRM change between v5.4 and
-next is massive, so I tried to backport to v5.6 OEM kernel instead.
There are some DRM change are still missing from v5.6, one of them
mgag200 facilitates is managed DRM helpers (like devm_*()). I tried to
modified the driver to use non-managed DRM helpers, but it's still not
enough to make it work.

So target Groovy here so we can have some nice early testings.

[1] https://lore.kernel.org/dri-devel/20200603090929.GG12456@shao2-debian/

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
  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  |  45 +-
 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(+), 489 deletions(-)


More information about the kernel-team mailing list