Blame view
include/drm/drm_color_mgmt.h
3.18 KB
f1e2f66ce
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* * Copyright (c) 2016 Intel Corporation * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ #ifndef __DRM_COLOR_MGMT_H__ #define __DRM_COLOR_MGMT_H__ #include <linux/ctype.h> |
b88ac0056
|
27 |
#include <drm/drm_property.h> |
f1e2f66ce
|
28 |
|
d1841d328
|
29 |
struct drm_crtc; |
80f690e9e
|
30 |
struct drm_plane; |
d1841d328
|
31 |
|
8f2e045ec
|
32 |
uint32_t drm_color_lut_extract(uint32_t user_input, uint32_t bit_precision); |
f1e2f66ce
|
33 34 35 36 37 38 39 |
void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, uint degamma_lut_size, bool has_ctm, uint gamma_lut_size); int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, int gamma_size); |
41204dfee
|
40 41 42 43 44 45 46 47 48 49 50 |
/** * drm_color_lut_size - calculate the number of entries in the LUT * @blob: blob containing the LUT * * Returns: * The number of entries in the color LUT stored in @blob. */ static inline int drm_color_lut_size(const struct drm_property_blob *blob) { return blob->length / sizeof(struct drm_color_lut); } |
80f690e9e
|
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
enum drm_color_encoding { DRM_COLOR_YCBCR_BT601, DRM_COLOR_YCBCR_BT709, DRM_COLOR_YCBCR_BT2020, DRM_COLOR_ENCODING_MAX, }; enum drm_color_range { DRM_COLOR_YCBCR_LIMITED_RANGE, DRM_COLOR_YCBCR_FULL_RANGE, DRM_COLOR_RANGE_MAX, }; int drm_plane_create_color_properties(struct drm_plane *plane, u32 supported_encodings, u32 supported_ranges, enum drm_color_encoding default_encoding, enum drm_color_range default_range); |
3c8861d84
|
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
/** * enum drm_color_lut_tests - hw-specific LUT tests to perform * * The drm_color_lut_check() function takes a bitmask of the values here to * determine which tests to apply to a userspace-provided LUT. */ enum drm_color_lut_tests { /** * @DRM_COLOR_LUT_EQUAL_CHANNELS: * * Checks whether the entries of a LUT all have equal values for the * red, green, and blue channels. Intended for hardware that only * accepts a single value per LUT entry and assumes that value applies * to all three color components. */ DRM_COLOR_LUT_EQUAL_CHANNELS = BIT(0), /** * @DRM_COLOR_LUT_NON_DECREASING: * * Checks whether the entries of a LUT are always flat or increasing * (never decreasing). */ DRM_COLOR_LUT_NON_DECREASING = BIT(1), }; |
5a3db6f08
|
95 |
int drm_color_lut_check(const struct drm_property_blob *lut, u32 tests); |
f1e2f66ce
|
96 |
#endif |