blob: 2f7e034f2d1d0176849fbea7999dac6c6df2ea4a [file] [log] [blame]
Gurchetan Singh46faf6b2016-08-05 14:40:07 -07001/*
2 * Copyright (c) 2016 The Chromium OS Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7#include <stddef.h>
8#include <stdio.h>
9
10#include "drv.h"
11#include "gbm.h"
12
13drv_format_t gbm_convert_format(uint32_t format)
14{
15
16 switch (format) {
Gurchetan Singhd6fb5772016-08-29 19:13:51 -070017 case GBM_FORMAT_C8:
18 return DRV_FORMAT_C8;
19 case GBM_FORMAT_R8:
20 return DRV_FORMAT_R8;
21 case GBM_FORMAT_RG88:
22 return DRV_FORMAT_RG88;
23 case GBM_FORMAT_GR88:
24 return DRV_FORMAT_GR88;
25 case GBM_FORMAT_RGB332:
26 return DRV_FORMAT_RGB332;
27 case GBM_FORMAT_BGR233:
28 return DRV_FORMAT_BGR233;
29 case GBM_FORMAT_XRGB4444:
30 return DRV_FORMAT_XRGB4444;
31 case GBM_FORMAT_XBGR4444:
32 return DRV_FORMAT_XBGR4444;
33 case GBM_FORMAT_RGBX4444:
34 return DRV_FORMAT_RGBX4444;
35 case GBM_FORMAT_BGRX4444:
36 return DRV_FORMAT_BGRX4444;
37 case GBM_FORMAT_ARGB4444:
38 return DRV_FORMAT_ARGB4444;
39 case GBM_FORMAT_ABGR4444:
40 return DRV_FORMAT_ABGR4444;
41 case GBM_FORMAT_RGBA4444:
42 return DRV_FORMAT_RGBA4444;
43 case GBM_FORMAT_BGRA4444:
44 return DRV_FORMAT_BGRA4444;
45 case GBM_FORMAT_XRGB1555:
46 return DRV_FORMAT_XRGB1555;
47 case GBM_FORMAT_XBGR1555:
48 return DRV_FORMAT_XBGR1555;
49 case GBM_FORMAT_RGBX5551:
50 return DRV_FORMAT_RGBX5551;
51 case GBM_FORMAT_BGRX5551:
52 return DRV_FORMAT_BGRX5551;
53 case GBM_FORMAT_ARGB1555:
54 return DRV_FORMAT_ARGB1555;
55 case GBM_FORMAT_ABGR1555:
56 return DRV_FORMAT_ABGR1555;
57 case GBM_FORMAT_RGBA5551:
58 return DRV_FORMAT_RGBA5551;
59 case GBM_FORMAT_BGRA5551:
60 return DRV_FORMAT_BGRA5551;
61 case GBM_FORMAT_RGB565:
62 return DRV_FORMAT_RGB565;
63 case GBM_FORMAT_BGR565:
64 return DRV_FORMAT_BGR565;
65 case GBM_FORMAT_RGB888:
66 return DRV_FORMAT_RGB888;
67 case GBM_FORMAT_BGR888:
68 return DRV_FORMAT_BGR888;
69 case GBM_FORMAT_XRGB8888:
70 return DRV_FORMAT_XRGB8888;
71 case GBM_FORMAT_XBGR8888:
72 return DRV_FORMAT_XBGR8888;
73 case GBM_FORMAT_RGBX8888:
74 return DRV_FORMAT_RGBX8888;
75 case GBM_FORMAT_BGRX8888:
76 return DRV_FORMAT_BGRX8888;
77 case GBM_FORMAT_ARGB8888:
78 return DRV_FORMAT_ARGB8888;
79 case GBM_FORMAT_ABGR8888:
80 return DRV_FORMAT_ABGR8888;
81 case GBM_FORMAT_RGBA8888:
82 return DRV_FORMAT_RGBA8888;
83 case GBM_FORMAT_BGRA8888:
84 return DRV_FORMAT_BGRA8888;
85 case GBM_FORMAT_XRGB2101010:
86 return DRV_FORMAT_XRGB2101010;
87 case GBM_FORMAT_XBGR2101010:
88 return DRV_FORMAT_XBGR2101010;
89 case GBM_FORMAT_RGBX1010102:
90 return DRV_FORMAT_RGBX1010102;
91 case GBM_FORMAT_BGRX1010102:
92 return DRV_FORMAT_BGRX1010102;
93 case GBM_FORMAT_ARGB2101010:
94 return DRV_FORMAT_ARGB2101010;
95 case GBM_FORMAT_ABGR2101010:
96 return DRV_FORMAT_ABGR2101010;
97 case GBM_FORMAT_RGBA1010102:
98 return DRV_FORMAT_RGBA1010102;
99 case GBM_FORMAT_BGRA1010102:
100 return DRV_FORMAT_BGRA1010102;
101 case GBM_FORMAT_YUYV:
102 return DRV_FORMAT_YUYV;
103 case GBM_FORMAT_YVYU:
104 return DRV_FORMAT_YVYU;
105 case GBM_FORMAT_UYVY:
106 return DRV_FORMAT_UYVY;
107 case GBM_FORMAT_VYUY:
108 return DRV_FORMAT_VYUY;
109 case GBM_FORMAT_AYUV:
110 return DRV_FORMAT_AYUV;
111 case GBM_FORMAT_NV12:
112 return DRV_FORMAT_NV12;
113 case GBM_FORMAT_NV21:
114 return DRV_FORMAT_NV21;
115 case GBM_FORMAT_NV16:
116 return DRV_FORMAT_NV16;
117 case GBM_FORMAT_NV61:
118 return DRV_FORMAT_NV61;
119 case GBM_FORMAT_YUV410:
120 return DRV_FORMAT_YUV410;
121 case GBM_FORMAT_YVU410:
122 return DRV_FORMAT_YVU410;
123 case GBM_FORMAT_YUV411:
124 return DRV_FORMAT_YUV411;
125 case GBM_FORMAT_YVU411:
126 return DRV_FORMAT_YVU411;
127 case GBM_FORMAT_YUV420:
128 return DRV_FORMAT_YUV420;
129 case GBM_FORMAT_YVU420:
130 return DRV_FORMAT_YVU420;
131 case GBM_FORMAT_YUV422:
132 return DRV_FORMAT_YUV422;
133 case GBM_FORMAT_YVU422:
134 return DRV_FORMAT_YVU422;
135 case GBM_FORMAT_YUV444:
136 return DRV_FORMAT_YVU444;
137 case GBM_FORMAT_YVU444:
138 return DRV_FORMAT_YVU444;
Gurchetan Singh46faf6b2016-08-05 14:40:07 -0700139 }
140
141 fprintf(stderr, "minigbm: UNKNOWN FORMAT %d\n", format);
142 return DRV_FORMAT_NONE;
143}
144
145uint64_t gbm_convert_flags(uint32_t flags)
146{
147 uint64_t usage = DRV_BO_USE_NONE;
148
149 if (flags & GBM_BO_USE_SCANOUT)
150 usage |= DRV_BO_USE_SCANOUT;
151 if (flags & GBM_BO_USE_CURSOR)
152 usage |= DRV_BO_USE_CURSOR;
153 if (flags & GBM_BO_USE_CURSOR_64X64)
154 usage |= DRV_BO_USE_CURSOR_64X64;
155 if (flags & GBM_BO_USE_RENDERING)
156 usage |= DRV_BO_USE_RENDERING;
157 if (flags & GBM_BO_USE_LINEAR)
158 usage |= DRV_BO_USE_LINEAR;
159
160 return usage;
161}