Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6bd02908 authored by Russell King's avatar Russell King
Browse files

drm/armada: enable atomic modeset support



Enable atomic modeset helpers, and internal DRM use of atomic modeset
with armada-drm.

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent 34e25ed6
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -278,13 +278,12 @@ static void armada_drm_crtc_prepare(struct drm_crtc *crtc)
	struct drm_plane *plane;

	/*
	 * If we have an overlay plane associated with this CRTC, disable
	 * it before the modeset to avoid its coordinates being outside
	 * the new mode parameters.
	 * If we have an overlay plane associated with this CRTC, disable it
	 * before the modeset to avoid its coordinates being outside the new
	 * mode parameters.  For transitional atomic modeset, we only wait.
	 */
	plane = dcrtc->plane;
	if (plane) {
		drm_plane_force_disable(plane);
		WARN_ON(!armada_drm_plane_work_wait(drm_to_armada_plane(plane),
						    HZ));
	}
+4 −1
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
#include <linux/component.h>
#include <linux/module.h>
#include <linux/of_graph.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_fb_helper.h>
#include <drm/drm_of.h>
@@ -73,7 +74,7 @@ static struct drm_driver armada_drm_driver = {
	.desc			= "Armada SoC DRM",
	.date			= "20120730",
	.driver_features	= DRIVER_GEM | DRIVER_MODESET |
				  DRIVER_PRIME,
				  DRIVER_PRIME | DRIVER_ATOMIC,
	.ioctls			= armada_ioctls,
	.fops			= &armada_drm_fops,
};
@@ -81,6 +82,8 @@ static struct drm_driver armada_drm_driver = {
static const struct drm_mode_config_funcs armada_drm_mode_config_funcs = {
	.fb_create		= armada_fb_create,
	.output_poll_changed	= drm_fb_helper_output_poll_changed,
	.atomic_check		= drm_atomic_helper_check,
	.atomic_commit		= drm_atomic_helper_commit,
};

static int armada_drm_bind(struct device *dev)