11802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2119f5173SCK Hu /* 3119f5173SCK Hu * Copyright (c) 2015 MediaTek Inc. 4119f5173SCK Hu * Author: CK Hu <ck.hu@mediatek.com> 5119f5173SCK Hu */ 6119f5173SCK Hu 7119f5173SCK Hu #ifndef _MTK_DRM_PLANE_H_ 8119f5173SCK Hu #define _MTK_DRM_PLANE_H_ 9119f5173SCK Hu 10119f5173SCK Hu #include <drm/drm_crtc.h> 11119f5173SCK Hu #include <linux/types.h> 12119f5173SCK Hu 13119f5173SCK Hu struct mtk_plane_pending_state { 14119f5173SCK Hu bool config; 15119f5173SCK Hu bool enable; 16119f5173SCK Hu dma_addr_t addr; 17119f5173SCK Hu unsigned int pitch; 18119f5173SCK Hu unsigned int format; 19119f5173SCK Hu unsigned int x; 20119f5173SCK Hu unsigned int y; 21119f5173SCK Hu unsigned int width; 22119f5173SCK Hu unsigned int height; 23ef87d3e2SSean Paul unsigned int rotation; 24119f5173SCK Hu bool dirty; 25920fffccSBibby Hsieh bool async_dirty; 26920fffccSBibby Hsieh bool async_config; 27119f5173SCK Hu }; 28119f5173SCK Hu 29119f5173SCK Hu struct mtk_plane_state { 30119f5173SCK Hu struct drm_plane_state base; 31119f5173SCK Hu struct mtk_plane_pending_state pending; 32119f5173SCK Hu }; 33119f5173SCK Hu 34119f5173SCK Hu static inline struct mtk_plane_state * 35119f5173SCK Hu to_mtk_plane_state(struct drm_plane_state *state) 36119f5173SCK Hu { 37119f5173SCK Hu return container_of(state, struct mtk_plane_state, base); 38119f5173SCK Hu } 39119f5173SCK Hu 405bfafad8SDaniel Kurtz int mtk_plane_init(struct drm_device *dev, struct drm_plane *plane, 41ef87d3e2SSean Paul unsigned long possible_crtcs, enum drm_plane_type type, 42ef87d3e2SSean Paul unsigned int supported_rotations); 43119f5173SCK Hu 44119f5173SCK Hu #endif 45