23#ifndef __DRM_COLOR_MGMT_H__
24#define __DRM_COLOR_MGMT_H__
43static inline u32 drm_color_lut_extract(
u32 user_input,
int bit_precision)
45 if (bit_precision > 16)
61static inline u32 drm_color_lut32_extract(
u32 user_input,
int bit_precision)
63 u64 max = (bit_precision >= 64) ? ~0
ULL : (1ULL << bit_precision) - 1;
72 uint degamma_lut_size,
117 u32 supported_encodings,
118 u32 supported_ranges,
#define DIV_ROUND_CLOSEST
Definition math.h:92
#define DIV_ROUND_CLOSEST_ULL(x, divisor)
Definition math.h:97
unsigned int uint
Definition types.h:80
#define BIT(nr)
Definition bitops.h:112
drm_color_encoding
Definition drm_color_mgmt.h:103
@ DRM_COLOR_YCBCR_BT2020
Definition drm_color_mgmt.h:106
@ DRM_COLOR_YCBCR_BT709
Definition drm_color_mgmt.h:105
@ DRM_COLOR_YCBCR_BT601
Definition drm_color_mgmt.h:104
@ DRM_COLOR_ENCODING_MAX
Definition drm_color_mgmt.h:107
void drm_crtc_load_gamma_888(struct drm_crtc *crtc, const struct drm_color_lut *lut, drm_crtc_set_lut_func set_gamma)
drm_color_range
Definition drm_color_mgmt.h:110
@ DRM_COLOR_RANGE_MAX
Definition drm_color_mgmt.h:113
@ DRM_COLOR_YCBCR_FULL_RANGE
Definition drm_color_mgmt.h:112
@ DRM_COLOR_YCBCR_LIMITED_RANGE
Definition drm_color_mgmt.h:111
void drm_crtc_fill_palette_8(struct drm_crtc *crtc, drm_crtc_set_lut_func set_palette)
void drm_crtc_fill_gamma_555(struct drm_crtc *crtc, drm_crtc_set_lut_func set_gamma)
drm_color_lut_tests
Definition drm_color_mgmt.h:128
@ DRM_COLOR_LUT_EQUAL_CHANNELS
Definition drm_color_mgmt.h:137
@ DRM_COLOR_LUT_NON_DECREASING
Definition drm_color_mgmt.h:145
void(* drm_crtc_set_lut_func)(struct drm_crtc *, unsigned int, u16, u16, u16)
Definition drm_color_mgmt.h:154
void drm_crtc_load_gamma_565_from_888(struct drm_crtc *crtc, const struct drm_color_lut *lut, drm_crtc_set_lut_func set_gamma)
int drm_color_lut_check(const struct drm_property_blob *lut, u32 tests)
void drm_crtc_fill_gamma_565(struct drm_crtc *crtc, drm_crtc_set_lut_func set_gamma)
int drm_color_lut32_check(const struct drm_property_blob *lut, u32 tests)
u64 drm_color_ctm_s31_32_to_qm_n(u64 user_input, u32 m, u32 n)
void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc, uint degamma_lut_size, bool has_ctm, uint gamma_lut_size)
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)
void drm_crtc_fill_palette_332(struct drm_crtc *crtc, drm_crtc_set_lut_func set_palette)
void drm_crtc_load_palette_8(struct drm_crtc *crtc, const struct drm_color_lut *lut, drm_crtc_set_lut_func set_palette)
void drm_crtc_fill_gamma_888(struct drm_crtc *crtc, drm_crtc_set_lut_func set_gamma)
void drm_crtc_load_gamma_555_from_888(struct drm_crtc *crtc, const struct drm_color_lut *lut, drm_crtc_set_lut_func set_gamma)
int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc, int gamma_size)
struct drm_crtc * crtc
Definition drm_crtc.h:1238
struct drm_plane * plane
Definition drm_plane.h:828
uint64_t u64
Definition kernel.h:17
uint16_t u16
Definition kernel.h:15
uint32_t u32
Definition kernel.h:16
#define max(a, b)
Definition minmax.h:28
Definition drm_mode.h:869
Definition drm_mode.h:853
Definition drm_crtc.h:955
Definition drm_plane.h:641
Definition drm_property.h:216
size_t length
Definition drm_property.h:221
#define ULL(x)
Definition const.h:79