1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2015 MediaTek Inc.
4  * Author: CK Hu <ck.hu@mediatek.com>
5  */
6 
7 #ifndef _MTK_DRM_PLANE_H_
8 #define _MTK_DRM_PLANE_H_
9 
10 #include <drm/drm_crtc.h>
11 #include <linux/types.h>
12 
13 struct mtk_plane_pending_state {
14 	bool				config;
15 	bool				enable;
16 	dma_addr_t			addr;
17 	unsigned int			pitch;
18 	unsigned int			format;
19 	unsigned int			x;
20 	unsigned int			y;
21 	unsigned int			width;
22 	unsigned int			height;
23 	unsigned int			rotation;
24 	bool				dirty;
25 };
26 
27 struct mtk_plane_state {
28 	struct drm_plane_state		base;
29 	struct mtk_plane_pending_state	pending;
30 };
31 
32 static inline struct mtk_plane_state *
33 to_mtk_plane_state(struct drm_plane_state *state)
34 {
35 	return container_of(state, struct mtk_plane_state, base);
36 }
37 
38 int mtk_plane_init(struct drm_device *dev, struct drm_plane *plane,
39 		   unsigned long possible_crtcs, enum drm_plane_type type,
40 		   unsigned int supported_rotations);
41 
42 #endif
43