Linux-libre 4.19.8-gnu
[librecmc/linux-libre.git] / drivers / gpu / drm / msm / disp / dpu1 / dpu_hw_catalog_format.h
1 /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License version 2 and
5  * only version 2 as published by the Free Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  */
12
13 #include "dpu_hw_mdss.h"
14
15 static const struct dpu_format_extended plane_formats[] = {
16         {DRM_FORMAT_ARGB8888, 0},
17         {DRM_FORMAT_ABGR8888, 0},
18         {DRM_FORMAT_RGBA8888, 0},
19         {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
20         {DRM_FORMAT_BGRA8888, 0},
21         {DRM_FORMAT_XRGB8888, 0},
22         {DRM_FORMAT_RGBX8888, 0},
23         {DRM_FORMAT_BGRX8888, 0},
24         {DRM_FORMAT_XBGR8888, 0},
25         {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
26         {DRM_FORMAT_RGB888, 0},
27         {DRM_FORMAT_BGR888, 0},
28         {DRM_FORMAT_RGB565, 0},
29         {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
30         {DRM_FORMAT_BGR565, 0},
31         {DRM_FORMAT_ARGB1555, 0},
32         {DRM_FORMAT_ABGR1555, 0},
33         {DRM_FORMAT_RGBA5551, 0},
34         {DRM_FORMAT_BGRA5551, 0},
35         {DRM_FORMAT_XRGB1555, 0},
36         {DRM_FORMAT_XBGR1555, 0},
37         {DRM_FORMAT_RGBX5551, 0},
38         {DRM_FORMAT_BGRX5551, 0},
39         {DRM_FORMAT_ARGB4444, 0},
40         {DRM_FORMAT_ABGR4444, 0},
41         {DRM_FORMAT_RGBA4444, 0},
42         {DRM_FORMAT_BGRA4444, 0},
43         {DRM_FORMAT_XRGB4444, 0},
44         {DRM_FORMAT_XBGR4444, 0},
45         {DRM_FORMAT_RGBX4444, 0},
46         {DRM_FORMAT_BGRX4444, 0},
47         {0, 0},
48 };
49
50 static const struct dpu_format_extended plane_formats_yuv[] = {
51         {DRM_FORMAT_ARGB8888, 0},
52         {DRM_FORMAT_ABGR8888, 0},
53         {DRM_FORMAT_RGBA8888, 0},
54         {DRM_FORMAT_BGRX8888, 0},
55         {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
56         {DRM_FORMAT_BGRA8888, 0},
57         {DRM_FORMAT_XRGB8888, 0},
58         {DRM_FORMAT_XBGR8888, 0},
59         {DRM_FORMAT_RGBX8888, 0},
60         {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
61         {DRM_FORMAT_RGB888, 0},
62         {DRM_FORMAT_BGR888, 0},
63         {DRM_FORMAT_RGB565, 0},
64         {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
65         {DRM_FORMAT_BGR565, 0},
66         {DRM_FORMAT_ARGB1555, 0},
67         {DRM_FORMAT_ABGR1555, 0},
68         {DRM_FORMAT_RGBA5551, 0},
69         {DRM_FORMAT_BGRA5551, 0},
70         {DRM_FORMAT_XRGB1555, 0},
71         {DRM_FORMAT_XBGR1555, 0},
72         {DRM_FORMAT_RGBX5551, 0},
73         {DRM_FORMAT_BGRX5551, 0},
74         {DRM_FORMAT_ARGB4444, 0},
75         {DRM_FORMAT_ABGR4444, 0},
76         {DRM_FORMAT_RGBA4444, 0},
77         {DRM_FORMAT_BGRA4444, 0},
78         {DRM_FORMAT_XRGB4444, 0},
79         {DRM_FORMAT_XBGR4444, 0},
80         {DRM_FORMAT_RGBX4444, 0},
81         {DRM_FORMAT_BGRX4444, 0},
82
83         {DRM_FORMAT_NV12, 0},
84         {DRM_FORMAT_NV12, DRM_FORMAT_MOD_QCOM_COMPRESSED},
85         {DRM_FORMAT_NV21, 0},
86         {DRM_FORMAT_NV16, 0},
87         {DRM_FORMAT_NV61, 0},
88         {DRM_FORMAT_VYUY, 0},
89         {DRM_FORMAT_UYVY, 0},
90         {DRM_FORMAT_YUYV, 0},
91         {DRM_FORMAT_YVYU, 0},
92         {DRM_FORMAT_YUV420, 0},
93         {DRM_FORMAT_YVU420, 0},
94         {0, 0},
95 };
96
97 static const struct dpu_format_extended cursor_formats[] = {
98         {DRM_FORMAT_ARGB8888, 0},
99         {DRM_FORMAT_ABGR8888, 0},
100         {DRM_FORMAT_RGBA8888, 0},
101         {DRM_FORMAT_BGRA8888, 0},
102         {DRM_FORMAT_XRGB8888, 0},
103         {DRM_FORMAT_ARGB1555, 0},
104         {DRM_FORMAT_ABGR1555, 0},
105         {DRM_FORMAT_RGBA5551, 0},
106         {DRM_FORMAT_BGRA5551, 0},
107         {DRM_FORMAT_ARGB4444, 0},
108         {DRM_FORMAT_ABGR4444, 0},
109         {DRM_FORMAT_RGBA4444, 0},
110         {DRM_FORMAT_BGRA4444, 0},
111         {0, 0},
112 };
113
114 static const struct dpu_format_extended wb2_formats[] = {
115         {DRM_FORMAT_RGB565, 0},
116         {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
117         {DRM_FORMAT_RGB888, 0},
118         {DRM_FORMAT_ARGB8888, 0},
119         {DRM_FORMAT_RGBA8888, 0},
120         {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
121         {DRM_FORMAT_XRGB8888, 0},
122         {DRM_FORMAT_RGBX8888, 0},
123         {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
124         {DRM_FORMAT_ARGB1555, 0},
125         {DRM_FORMAT_RGBA5551, 0},
126         {DRM_FORMAT_XRGB1555, 0},
127         {DRM_FORMAT_RGBX5551, 0},
128         {DRM_FORMAT_ARGB4444, 0},
129         {DRM_FORMAT_RGBA4444, 0},
130         {DRM_FORMAT_RGBX4444, 0},
131         {DRM_FORMAT_XRGB4444, 0},
132
133         {DRM_FORMAT_BGR565, 0},
134         {DRM_FORMAT_BGR888, 0},
135         {DRM_FORMAT_ABGR8888, 0},
136         {DRM_FORMAT_BGRA8888, 0},
137         {DRM_FORMAT_BGRX8888, 0},
138         {DRM_FORMAT_XBGR8888, 0},
139         {DRM_FORMAT_ABGR1555, 0},
140         {DRM_FORMAT_BGRA5551, 0},
141         {DRM_FORMAT_XBGR1555, 0},
142         {DRM_FORMAT_BGRX5551, 0},
143         {DRM_FORMAT_ABGR4444, 0},
144         {DRM_FORMAT_BGRA4444, 0},
145         {DRM_FORMAT_BGRX4444, 0},
146         {DRM_FORMAT_XBGR4444, 0},
147
148         {DRM_FORMAT_YUV420, 0},
149         {DRM_FORMAT_NV12, 0},
150         {DRM_FORMAT_NV12, DRM_FORMAT_MOD_QCOM_COMPRESSED},
151         {DRM_FORMAT_NV16, 0},
152         {DRM_FORMAT_YUYV, 0},
153
154         {0, 0},
155 };
156
157 static const struct dpu_format_extended rgb_10bit_formats[] = {
158         {DRM_FORMAT_BGRA1010102, 0},
159         {DRM_FORMAT_BGRX1010102, 0},
160         {DRM_FORMAT_RGBA1010102, 0},
161         {DRM_FORMAT_RGBX1010102, 0},
162         {DRM_FORMAT_ABGR2101010, 0},
163         {DRM_FORMAT_ABGR2101010, DRM_FORMAT_MOD_QCOM_COMPRESSED},
164         {DRM_FORMAT_XBGR2101010, 0},
165         {DRM_FORMAT_XBGR2101010, DRM_FORMAT_MOD_QCOM_COMPRESSED},
166         {DRM_FORMAT_ARGB2101010, 0},
167         {DRM_FORMAT_XRGB2101010, 0},
168 };