Commit | Line | Data |
---|---|---|
1802d0be | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
119f5173 CH |
2 | /* |
3 | * Copyright (c) 2015 MediaTek Inc. | |
119f5173 CH |
4 | */ |
5 | ||
6 | #ifndef MTK_DRM_DRV_H | |
7 | #define MTK_DRM_DRV_H | |
8 | ||
9 | #include <linux/io.h> | |
10 | #include "mtk_drm_ddp_comp.h" | |
11 | ||
561fad31 | 12 | #define MAX_CRTC 3 |
119f5173 CH |
13 | #define MAX_CONNECTOR 2 |
14 | ||
15 | struct device; | |
16 | struct device_node; | |
17 | struct drm_crtc; | |
18 | struct drm_device; | |
19 | struct drm_fb_helper; | |
20 | struct drm_property; | |
21 | struct regmap; | |
22 | ||
c5f228ef | 23 | struct mtk_mmsys_driver_data { |
24 | const enum mtk_ddp_comp_id *main_path; | |
25 | unsigned int main_len; | |
26 | const enum mtk_ddp_comp_id *ext_path; | |
27 | unsigned int ext_len; | |
561fad31 | 28 | const enum mtk_ddp_comp_id *third_path; |
29 | unsigned int third_len; | |
30 | ||
9dc84e98 | 31 | bool shadow_register; |
c5f228ef | 32 | }; |
33 | ||
119f5173 CH |
34 | struct mtk_drm_private { |
35 | struct drm_device *drm; | |
36 | struct device *dma_dev; | |
37 | ||
119f5173 CH |
38 | unsigned int num_pipes; |
39 | ||
40 | struct device_node *mutex_node; | |
41 | struct device *mutex_dev; | |
42 | void __iomem *config_regs; | |
43 | struct device_node *comp_node[DDP_COMPONENT_ID_MAX]; | |
44 | struct mtk_ddp_comp *ddp_comp[DDP_COMPONENT_ID_MAX]; | |
c5f228ef | 45 | const struct mtk_mmsys_driver_data *data; |
119f5173 CH |
46 | |
47 | struct { | |
48 | struct drm_atomic_state *state; | |
49 | struct work_struct work; | |
50 | struct mutex lock; | |
51 | } commit; | |
52 | ||
53 | struct drm_atomic_state *suspend_state; | |
07095555 AC |
54 | |
55 | bool dma_parms_allocated; | |
119f5173 CH |
56 | }; |
57 | ||
58 | extern struct platform_driver mtk_ddp_driver; | |
5ac5895a | 59 | extern struct platform_driver mtk_disp_color_driver; |
119f5173 CH |
60 | extern struct platform_driver mtk_disp_ovl_driver; |
61 | extern struct platform_driver mtk_disp_rdma_driver; | |
9e629c17 | 62 | extern struct platform_driver mtk_dpi_driver; |
2e54c14e CH |
63 | extern struct platform_driver mtk_dsi_driver; |
64 | extern struct platform_driver mtk_mipi_tx_driver; | |
119f5173 CH |
65 | |
66 | #endif /* MTK_DRM_DRV_H */ |