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.
16 #define DRV_MAX_PLANES 4
18 /* Vendor ids and mod_code fourcc function must match gbm.h */
19 #define DRV_FORMAT_MOD_NONE 0
20 #define DRV_FORMAT_MOD_VENDOR_INTEL 0x01
21 #define DRV_FORMAT_MOD_VENDOR_AMD 0x02
22 #define DRV_FORMAT_MOD_VENDOR_NV 0x03
23 #define DRV_FORMAT_MOD_VENDOR_SAMSUNG 0x04
24 #define DRV_FORMAT_MOD_VENDOR_QCOM 0x05
26 #define drv_fourcc_mod_code(vendor, val) \
27 ((((__u64)DRV_FORMAT_MOD_VENDOR_## vendor) << 56) | (val & 0x00ffffffffffffffULL))
30 #define DRV_BO_USE_NONE 0
31 #define DRV_BO_USE_SCANOUT (1ull << 0)
32 #define DRV_BO_USE_CURSOR (1ull << 1)
33 #define DRV_BO_USE_CURSOR_64X64 DRV_BO_USE_CURSOR
34 #define DRV_BO_USE_RENDERING (1ull << 2)
35 #define DRV_BO_USE_LINEAR (1ull << 3)
73 DRV_FORMAT_XRGB2101010,
74 DRV_FORMAT_XBGR2101010,
75 DRV_FORMAT_RGBX1010102,
76 DRV_FORMAT_BGRX1010102,
77 DRV_FORMAT_ARGB2101010,
78 DRV_FORMAT_ABGR2101010,
79 DRV_FORMAT_RGBA1010102,
80 DRV_FORMAT_BGRA1010102,
113 struct drv_import_fd_data {
125 drv_destroy(struct driver *drv);
128 drv_get_fd(struct driver *drv);
131 drv_get_name(struct driver *drv);
134 drv_is_format_supported(struct driver *drv, drv_format_t format,
138 drv_bo_new(struct driver *drv, uint32_t width, uint32_t height,
139 drv_format_t format);
142 drv_bo_create(struct driver *drv, uint32_t width, uint32_t height,
143 drv_format_t format, uint64_t flags);
146 drv_bo_destroy(struct bo *bo);
149 drv_bo_map(struct bo *bo);
152 drv_bo_unmap(struct bo *bo);
155 drv_bo_import(struct driver *drv, struct drv_import_fd_data *data);
158 drv_bo_get_width(struct bo *bo);
161 drv_bo_get_height(struct bo *bo);
164 drv_bo_get_stride_or_tiling(struct bo *bo);
167 drv_bo_get_num_planes(struct bo *bo);
170 drv_bo_get_plane_handle(struct bo *bo, size_t plane);
173 drv_bo_get_plane_fd(struct bo *bo, size_t plane);
176 drv_bo_get_plane_offset(struct bo *bo, size_t plane);
179 drv_bo_get_plane_size(struct bo *bo, size_t plane);
182 drv_bo_get_plane_stride(struct bo *bo, size_t plane);
185 drv_bo_get_plane_format_modifier(struct bo *bo, size_t plane);