All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] drm/ast: Convert ast driver to SHMEM
@ 2022-10-10 10:36 Thomas Zimmermann
  2022-10-10 10:36 ` [PATCH 1/8] drm/ast: Acquire I/O-register lock in atomic_commit_tail function Thomas Zimmermann
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Thomas Zimmermann @ 2022-10-10 10:36 UTC (permalink / raw)
  To: airlied, jfalempe, daniel, kuohsiang_chou, jammy_huang,
	ilpo.jarvinen
  Cc: Thomas Zimmermann, dri-devel

This patchset converts ast to GEM SHMEM helpers. Fixes problems with
memory allocation and BMC scanout updates.

Patches 1 to 3 are fixes for various minor problems in the ast driver.
We should merge them even without SHMEM support.

Patches 4 to 6 prepare the driver for the conversion. The cursor double
buffering is not required and prevents reuse among the plane code. Style
issues are being fixed separately from the conversion.

The conversion itself is in patch 7. Not only does it fix problems with
memory allocation, it also brings back several high-res display modes
that got lost during the ast driver's conversion to atomic modesetting.
There was an earlier RFC patch of this code that had issues with
rendering performnce. [1] We've meanwhile improved these areas and
performance was acceptable on the test systems.

With SHMEM in place, the scanout address for the primary plane does not
have to be changed often. Patch 8 fixes a performance problem where the
BMC output freezes for several seconds after reprogramming the scanout
address.

Tested on AST 2100 and 2300 with fbdev emulation, weston, and Gnome in
X11 and Wayland mode.

[1] https://lore.kernel.org/dri-devel/5a3537c3-2c81-b9de-e4c7-c00577cdd43d@suse.de/

Thomas Zimmermann (8):
  drm/ast: Acquire I/O-register lock in atomic_commit_tail function
  drm/ast: Call drm_atomic_helper_check_plane_state() unconditionally
  drm/ast: Do not call drm_atomic_add_affected_planes()
  drm/ast: Remove cursor double buffering
  drm/ast: Rename struct ast_cursor_plane to struct ast_plane
  drm/ast: Style cleanups in plane code
  drm/ast: Convert ast to SHMEM
  drm/ast: Avoid reprogramming primary-plane scanout address

 drivers/gpu/drm/ast/Kconfig    |   4 +-
 drivers/gpu/drm/ast/ast_drv.c  |   4 +-
 drivers/gpu/drm/ast/ast_drv.h  |  34 +--
 drivers/gpu/drm/ast/ast_main.c |   5 +-
 drivers/gpu/drm/ast/ast_mm.c   |  14 +-
 drivers/gpu/drm/ast/ast_mode.c | 399 ++++++++++++++++-----------------
 6 files changed, 219 insertions(+), 241 deletions(-)


base-commit: 74e2443e7681e4d442b45f551ddf12d09a6f00c3
-- 
2.37.3


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

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

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-10 10:36 [PATCH 0/8] drm/ast: Convert ast driver to SHMEM Thomas Zimmermann
2022-10-10 10:36 ` [PATCH 1/8] drm/ast: Acquire I/O-register lock in atomic_commit_tail function Thomas Zimmermann
2022-10-11 17:13   ` Jocelyn Falempe
2022-10-10 10:36 ` [PATCH 2/8] drm/ast: Call drm_atomic_helper_check_plane_state() unconditionally Thomas Zimmermann
2022-10-10 10:36 ` [PATCH 3/8] drm/ast: Do not call drm_atomic_add_affected_planes() Thomas Zimmermann
2022-10-10 17:06   ` Javier Martinez Canillas
2022-10-10 10:36 ` [PATCH 4/8] drm/ast: Remove cursor double buffering Thomas Zimmermann
2022-10-10 10:36 ` [PATCH 5/8] drm/ast: Rename struct ast_cursor_plane to struct ast_plane Thomas Zimmermann
2022-10-10 10:36 ` [PATCH 6/8] drm/ast: Style cleanups in plane code Thomas Zimmermann
2022-10-10 10:36 ` [PATCH 7/8] drm/ast: Convert ast to SHMEM Thomas Zimmermann
2022-10-11 17:17   ` Jocelyn Falempe
2022-10-10 10:36 ` [PATCH 8/8] drm/ast: Avoid reprogramming primary-plane scanout address Thomas Zimmermann
2022-10-11 14:21   ` Jocelyn Falempe
2022-10-11 14:59     ` Thomas Zimmermann
2022-10-11 17:09       ` Jocelyn Falempe
2022-10-11 17:26 ` [PATCH 0/8] drm/ast: Convert ast driver to SHMEM Jocelyn Falempe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.