re: [PATCH 00/17] drm/mgag200: Convert to atomic modesetting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 ?


( Thank you for CC'ing me. I removed my email from on dlist recently) .




--
Thank You,
John
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux