virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/17] cirrus: Modernize the cirrus driver
@ 2023-02-15 16:15 Thomas Zimmermann
  2023-02-15 16:15 ` [PATCH 01/17] drm/cirrus: Compute blit destination offset in single location Thomas Zimmermann
                   ` (16 more replies)
  0 siblings, 17 replies; 28+ messages in thread
From: Thomas Zimmermann @ 2023-02-15 16:15 UTC (permalink / raw)
  To: kraxel, airlied, daniel, sam, javierm, dri-devel
  Cc: Thomas Zimmermann, virtualization

Update the cirrus driver to follow current best practices. While the
driver's hardware is obsolete, the cirrus driver is still one of the
go-to modules to learn about writing a DRM driver. So keep it in good
shape.

Patches 1 to 3 simplify blitting and convert it to the DRM's current
helpers.

Patches 4 to 8 replace simple-KMS helpers with DRM's regular atomic
helpers. The former are midlayers on top of the latter, and should
be replaced entirely.

Patches 9 and 10 further improve blitting. This enables damage clipping
for userspace and the console. Until now, cirrus' mandatory fullscreen
updates have added unnecessary overhead to every screen update.

Patches 11 to 14 simplify mode and framebuffer tests. With the use
of regular helpers, these tests can now be implemented in the places
they belong.

Patches 15 and 16 move hardware color format and pitch into plane
state of the primary plane. These fields have been kept in the device
structure itself, where thy don't belong.

Patch 17 replaces two magic values by macro constants. There are
more such cases within cirrus, but those two values stuck out as
specifically hard to interpret.

Tested with qemu's cirrus emulation.

Thomas Zimmermann (17):
  drm/cirrus: Compute blit destination offset in single location
  drm/cirrus: Replace cpp value with format
  drm/cirrus: Use drm_fb_blit() to update scanout buffer
  drm/cirrus: Move drm_dev_{enter,exit}() into DRM helpers
  drm/cirrus: Split cirrus_mode_set() into smaller functions
  drm/cirrus: Integrate connector into pipeline code
  drm/cirrus: Move primary-plane format arrays
  drm/cirrus: Convert to regular atomic helpers
  drm/cirrus: Enable damage clipping on primary plane
  drm/cirrus: Inline cirrus_fb_blit_rect()
  drm/cirrus: Remove format test from cirrus_fb_create()
  drm/cirrus: Remove size test from cirrus_fb_create()
  drm/cirrus: Test mode against video-memory size in device-wide
    mode_valid
  drm/cirrus: Inline cirrus_check_size() into primary-plane atomic_check
  drm/cirrus: Introduce struct cirrus_primary_plane_state
  drm/cirrus: Store HW format/pitch in primary-plane state
  drm/cirrus: Use VGA macro constants to unblank

 drivers/gpu/drm/tiny/cirrus.c | 499 +++++++++++++++++++++-------------
 1 file changed, 305 insertions(+), 194 deletions(-)

-- 
2.39.1

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2023-02-20 15:39 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-15 16:15 [PATCH 00/17] cirrus: Modernize the cirrus driver Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 01/17] drm/cirrus: Compute blit destination offset in single location Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 02/17] drm/cirrus: Replace cpp value with format Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 03/17] drm/cirrus: Use drm_fb_blit() to update scanout buffer Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 04/17] drm/cirrus: Move drm_dev_{enter, exit}() into DRM helpers Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 05/17] drm/cirrus: Split cirrus_mode_set() into smaller functions Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 06/17] drm/cirrus: Integrate connector into pipeline code Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 07/17] drm/cirrus: Move primary-plane format arrays Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 08/17] drm/cirrus: Convert to regular atomic helpers Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 09/17] drm/cirrus: Enable damage clipping on primary plane Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 10/17] drm/cirrus: Inline cirrus_fb_blit_rect() Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 11/17] drm/cirrus: Remove format test from cirrus_fb_create() Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 12/17] drm/cirrus: Remove size " Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 13/17] drm/cirrus: Test mode against video-memory size in device-wide mode_valid Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 14/17] drm/cirrus: Inline cirrus_check_size() into primary-plane atomic_check Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 15/17] drm/cirrus: Introduce struct cirrus_primary_plane_state Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 16/17] drm/cirrus: Store HW format/pitch in primary-plane state Thomas Zimmermann
2023-02-15 16:15 ` [PATCH 17/17] drm/cirrus: Use VGA macro constants to unblank Thomas Zimmermann
2023-02-16 11:33   ` Gerd Hoffmann
2023-02-16 12:03     ` Thomas Zimmermann
2023-02-16 12:33       ` Gerd Hoffmann
2023-02-16 12:52       ` Ville Syrjälä
2023-02-16 13:19         ` Gerd Hoffmann
2023-02-16 13:21         ` Thomas Zimmermann
2023-02-16 17:20           ` Ville Syrjälä
2023-02-17  8:23             ` Thomas Zimmermann
2023-02-20 14:22     ` Thomas Zimmermann
2023-02-20 15:39       ` Gerd Hoffmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).