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