dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/7] drm: Reuse temporary memory for format conversion
@ 2023-10-09 14:06 Thomas Zimmermann
  2023-10-09 14:06 ` [PATCH v5 1/7] drm/format-helper: Cache buffers with struct drm_format_conv_state Thomas Zimmermann
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Thomas Zimmermann @ 2023-10-09 14:06 UTC (permalink / raw)
  To: javierm, jfalempe, jose.exposito89, arthurgrillo, mairacanal,
	maarten.lankhorst, mripard, airlied, daniel, noralf
  Cc: Thomas Zimmermann, dri-devel

DRM's format-conversion helpers require temporary memory. Pass the
buffer from the caller to allow the caller to preallocate the buffer
memory.

The motivation for this patchset is the recent work on a DRM panic
handler. [1] The panic handler requires format conversion to display an
error to the screen. But allocating memory during a kernel panic is
fragile. The changes in this patchset enable the DRM panic handler to
preallocate buffer storage before the panic occurs.

Patch 1 adds struct drm_format_conv_state, a simple interface to pass
around the buffer storage. Patch 2 adds an instance of the struct to
the shadow-plane state. Patch 3 moves the buffer's memory management
from the format helpers into their callers within the DRM drivers. Most
of the affected drivers use the state instance stored in their shadow-
plane state. The shadow-plane code releases the buffer memory automatically.

Patches 4 to 7 update three drivers to pre-allocate the format-conversion
buffer in their plane's atomic_check function. The drivers thus detect OOM
errors before the display update begins.

Tested with simpledrm.

v5:
	* fix repaper patch (Noralf)
	* fix documentation (Javier, Noralf, kernel test robot)
v4:
	* rename struct to drm_format_conv_state (Javier)
	* replace ARRAY_SIZE() with sizeof() (Jani)
	* store buffer in shadow-plane state (Javier, Maxime)
	* prealloc in atomic_check in several drivers
v3:
	* no changes
v2:
	* reserve storage during probing in the drivers

[1] https://patchwork.freedesktop.org/series/122244/

Thomas Zimmermann (7):
  drm/format-helper: Cache buffers with struct drm_format_conv_state
  drm/atomic-helper: Add format-conversion state to shadow-plane state
  drm/format-helper: Pass format-conversion state to helpers
  drm/ofdrm: Preallocate format-conversion buffer in atomic_check
  drm/simpledrm: Preallocate format-conversion buffer in atomic_check
  drm/ssd130x: Fix atomic_check for disabled planes
  drm/ssd130x: Preallocate format-conversion buffer in atomic_check

 drivers/gpu/drm/drm_format_helper.c           | 215 +++++++++++++-----
 drivers/gpu/drm/drm_gem_atomic_helper.c       |   9 +
 drivers/gpu/drm/drm_mipi_dbi.c                |  19 +-
 drivers/gpu/drm/gud/gud_pipe.c                |  30 ++-
 drivers/gpu/drm/solomon/ssd130x.c             |  36 ++-
 .../gpu/drm/tests/drm_format_helper_test.c    |  72 +++---
 drivers/gpu/drm/tiny/cirrus.c                 |   3 +-
 drivers/gpu/drm/tiny/ili9225.c                |  10 +-
 drivers/gpu/drm/tiny/ofdrm.c                  |  16 +-
 drivers/gpu/drm/tiny/repaper.c                |  10 +-
 drivers/gpu/drm/tiny/simpledrm.c              |  43 +++-
 drivers/gpu/drm/tiny/st7586.c                 |  19 +-
 include/drm/drm_format_helper.h               |  81 +++++--
 include/drm/drm_gem_atomic_helper.h           |  10 +
 include/drm/drm_mipi_dbi.h                    |   4 +-
 15 files changed, 433 insertions(+), 144 deletions(-)


base-commit: fe09b9f4c1435d9ce59b4729994b86a856db852f
prerequisite-patch-id: 0aa359f6144c4015c140c8a6750be19099c676fb
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
prerequisite-patch-id: cbc453ee02fae02af22fbfdce56ab732c7a88c36
-- 
2.42.0


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

end of thread, other threads:[~2023-11-17 10:44 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-09 14:06 [PATCH v5 0/7] drm: Reuse temporary memory for format conversion Thomas Zimmermann
2023-10-09 14:06 ` [PATCH v5 1/7] drm/format-helper: Cache buffers with struct drm_format_conv_state Thomas Zimmermann
2023-10-09 14:06 ` [PATCH v5 2/7] drm/atomic-helper: Add format-conversion state to shadow-plane state Thomas Zimmermann
2023-10-09 14:22   ` Javier Martinez Canillas
2023-10-10  9:40     ` Maxime Ripard
2023-10-10 11:01       ` Javier Martinez Canillas
2023-10-09 14:06 ` [PATCH v5 3/7] drm/format-helper: Pass format-conversion state to helpers Thomas Zimmermann
2023-10-09 14:06 ` [PATCH v5 4/7] drm/ofdrm: Preallocate format-conversion buffer in atomic_check Thomas Zimmermann
2023-10-09 14:06 ` [PATCH v5 5/7] drm/simpledrm: " Thomas Zimmermann
2023-10-09 14:06 ` [PATCH v5 6/7] drm/ssd130x: Fix atomic_check for disabled planes Thomas Zimmermann
2023-10-13 17:16   ` Javier Martinez Canillas
2023-10-16 10:24     ` Thomas Zimmermann
2023-10-09 14:06 ` [PATCH v5 7/7] drm/ssd130x: Preallocate format-conversion buffer in atomic_check Thomas Zimmermann
2023-11-17  9:34 ` [PATCH v5 0/7] drm: Reuse temporary memory for format conversion Maxime Ripard
2023-11-17 10:07   ` Thomas Zimmermann
2023-11-17 10:44     ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox