drm/sun4i: abstract a engine type

As we are going to add support for the Allwinner DE2 engine in sun4i-drm
driver, we will finally have two types of display engines -- the DE1
backend and the DE2 mixer. They both do some display blending and feed
graphics data to TCON, and is part of the "Display Engine" called by
Allwinner, so I choose to call them both "engine" here.

Abstract the engine type to a new struct with an ops struct, which contains
functions that should be called outside the engine-specified code (in
TCON, CRTC or TV Encoder code).

In order to preserve bisectability, we also switch the backend and layer
code in its own module.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Cette révision appartient à :
Icenowy Zheng
2017-05-17 22:47:17 +08:00
révisé par Maxime Ripard
Parent 7921e1477a
révision 8796933843
12 fichiers modifiés avec 192 ajouts et 87 suppressions

Voir le fichier

@@ -18,7 +18,7 @@
#include <linux/regmap.h>
struct sun4i_drv {
struct list_head backend_list;
struct list_head engine_list;
struct list_head tcon_list;
struct drm_fbdev_cma *fbdev;