All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/4] drm/ast: Disable HW cursor when switching modes
@ 2020-08-05 10:54 Thomas Zimmermann
  2020-08-05 10:54   ` Thomas Zimmermann
                   ` (4 more replies)
  0 siblings, 5 replies; 50+ messages in thread
From: Thomas Zimmermann @ 2020-08-05 10:54 UTC (permalink / raw)
  To: airlied, daniel, sam, kraxel, emil.l.velikov; +Cc: Thomas Zimmermann, dri-devel

Since converting the ast driver to atomic modesettting, modesetting
occationally locks up the graphics hardware and turns the display
permanently dark. This happens once or twice per 10 mode switches.
Investigation shows that the ast hardware presumably requires the HW
cursor to be disabled while the modeswitch takes place.

This patchset fixes the problem by disabling planes before programming
the CRTC mode or format. After the switch, the planes gets re-enabled if
they were enabled before. For mere pageflip operations, nothing changes.

Patches #1 makes format changes work as intended: format registers are
only updated if necessary. They used to be changed on each pageflip.
Patch #2 puts the modesetting code before the plane-update code. This
way, mode setting runs while planes are disabled. Patches #3 and #4
add a commit-tail function that disables planes if the display's mode
or format is going to change. The active planes will later get re-enabled
by the plane-update handler.

Tested on AST2100 HW. The issue is not 100% reproducible, but does not
show up after applying the patchset. I think the problem has been fixed.

v2:
	* rewrote the whole patchset
	* dropped the cursor patches
	* moved modesetting into atomic_begin()
	* disable planes in commit-tail function
	* don't require full modeset for format changes

Thomas Zimmermann (4):
  drm/ast: Only set format registers if primary plane's format changes
  drm/ast: Set display mode in atomic_begin()
  drm/ast: Add commit-tail function
  drm/ast: Disable planes while switching display modes

 drivers/gpu/drm/ast/ast_drv.h  |   2 +
 drivers/gpu/drm/ast/ast_mode.c | 148 +++++++++++++++++++++++++--------
 2 files changed, 114 insertions(+), 36 deletions(-)

--
2.28.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2020-08-27  9:10 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-05 10:54 [PATCH v1 0/4] drm/ast: Disable HW cursor when switching modes Thomas Zimmermann
2020-08-05 10:54 ` [PATCH v1 1/4] drm/ast: Only set format registers if primary plane's format changes Thomas Zimmermann
2020-08-05 10:54   ` Thomas Zimmermann
2020-08-09 15:53   ` Sasha Levin
2020-08-09 15:53     ` Sasha Levin
2020-08-13 16:25   ` Sasha Levin
2020-08-13 16:25     ` Sasha Levin
2020-08-19 23:57   ` Sasha Levin
2020-08-19 23:57     ` Sasha Levin
2020-08-26 13:54   ` Sasha Levin
2020-08-26 13:54     ` Sasha Levin
2020-08-27  9:10     ` Thomas Zimmermann
2020-08-27  9:10       ` Thomas Zimmermann
2020-08-05 10:54 ` [PATCH v1 2/4] drm/ast: Set display mode in atomic_begin() Thomas Zimmermann
2020-08-05 10:54   ` Thomas Zimmermann
2020-08-09 15:53   ` Sasha Levin
2020-08-09 15:53     ` Sasha Levin
2020-08-13 16:25   ` Sasha Levin
2020-08-13 16:25     ` Sasha Levin
2020-08-19 23:56   ` Sasha Levin
2020-08-19 23:56     ` Sasha Levin
2020-08-26 13:53   ` Sasha Levin
2020-08-26 13:53     ` Sasha Levin
2020-08-05 10:54 ` [PATCH v1 3/4] drm/ast: Add commit-tail function Thomas Zimmermann
2020-08-05 10:54   ` Thomas Zimmermann
2020-08-09 15:53   ` Sasha Levin
2020-08-09 15:53     ` Sasha Levin
2020-08-13 16:25   ` Sasha Levin
2020-08-13 16:25     ` Sasha Levin
2020-08-19 23:56   ` Sasha Levin
2020-08-19 23:56     ` Sasha Levin
2020-08-26 13:53   ` Sasha Levin
2020-08-26 13:53     ` Sasha Levin
2020-08-05 10:54 ` [PATCH v1 4/4] drm/ast: Disable planes while switching display modes Thomas Zimmermann
2020-08-05 10:54   ` Thomas Zimmermann
2020-08-07  8:50   ` daniel
2020-08-07  8:50     ` daniel
2020-08-12  8:25     ` Thomas Zimmermann
2020-08-12  8:25       ` Thomas Zimmermann
2020-08-12 14:04       ` Daniel Vetter
2020-08-12 14:04         ` Daniel Vetter
2020-08-09 15:53   ` Sasha Levin
2020-08-09 15:53     ` Sasha Levin
2020-08-13 16:25   ` Sasha Levin
2020-08-13 16:25     ` Sasha Levin
2020-08-19 23:56   ` Sasha Levin
2020-08-19 23:56     ` Sasha Levin
2020-08-26 13:53   ` Sasha Levin
2020-08-26 13:53     ` Sasha Levin
2020-08-05 10:55 ` [PATCH v1 0/4] drm/ast: Disable HW cursor when switching modes Thomas Zimmermann

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.