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 	bool				dirty;
24 };
25 
26 struct mtk_plane_state {
27 	struct drm_plane_state		base;
28 	struct mtk_plane_pending_state	pending;
29 };
30 
31 static inline struct mtk_plane_state *
32 to_mtk_plane_state(struct drm_plane_state *state)
33 {
34 	return container_of(state, struct mtk_plane_state, base);
35 }
36 
37 int mtk_plane_init(struct drm_device *dev, struct drm_plane *plane,
38 		   unsigned long possible_crtcs, enum drm_plane_type type);
39 
40 #endif
41