![Shawn Guo](/assets/img/avatar_default.png)
There are a few hardware bits for each graphic layer to control main/aux channel and clock selection, as well as the layer enabling. These bits sit outside the layer block itself, but in VOU control glue block. We currently set these bits up at CRTC initialization for once, and do not support disabling the layer. This patch creates a pair of functions zx_vou_layer_enable[disable] to be invoked from plane hooks .atomic_update and .atomic_disable to set up and tear down the layer. This is generic for both graphic and video layers, so it will make the overlay plane support to be added later much easier. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Reviewed-by: Sean Paul <seanpaul@chromium.org>
31 lines
750 B
C
31 lines
750 B
C
/*
|
|
* Copyright 2016 Linaro Ltd.
|
|
* Copyright 2016 ZTE Corporation.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
*/
|
|
|
|
#ifndef __ZX_PLANE_H__
|
|
#define __ZX_PLANE_H__
|
|
|
|
struct zx_plane {
|
|
struct drm_plane plane;
|
|
struct device *dev;
|
|
void __iomem *layer;
|
|
void __iomem *csc;
|
|
void __iomem *hbsc;
|
|
void __iomem *rsz;
|
|
const struct vou_layer_bits *bits;
|
|
};
|
|
|
|
#define to_zx_plane(plane) container_of(plane, struct zx_plane, plane)
|
|
|
|
int zx_plane_init(struct drm_device *drm, struct zx_plane *zplane,
|
|
enum drm_plane_type type);
|
|
void zx_plane_set_update(struct drm_plane *plane);
|
|
|
|
#endif /* __ZX_PLANE_H__ */
|