mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
drm/amd/display: add dc_fixpt_from_s3132 helper
Detach value translation from CTM to reuse it for programming HDR multiplier property. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Joshua Ashton <joshua@froggi.es> Signed-off-by: Melissa Wen <mwen@igalia.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
ef113a3b19
commit
889044f9e0
|
|
@ -405,7 +405,6 @@ static void __drm_lut_to_dc_gamma(const struct drm_color_lut *lut,
|
|||
static void __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm,
|
||||
struct fixed31_32 *matrix)
|
||||
{
|
||||
int64_t val;
|
||||
int i;
|
||||
|
||||
/*
|
||||
|
|
@ -424,12 +423,7 @@ static void __drm_ctm_to_dc_matrix(const struct drm_color_ctm *ctm,
|
|||
}
|
||||
|
||||
/* gamut_remap_matrix[i] = ctm[i - floor(i/4)] */
|
||||
val = ctm->matrix[i - (i / 4)];
|
||||
/* If negative, convert to 2's complement. */
|
||||
if (val & (1ULL << 63))
|
||||
val = -(val & ~(1ULL << 63));
|
||||
|
||||
matrix[i].value = val;
|
||||
matrix[i] = dc_fixpt_from_s3132(ctm->matrix[i - (i / 4)]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,18 @@ static const struct fixed31_32 dc_fixpt_epsilon = { 1LL };
|
|||
static const struct fixed31_32 dc_fixpt_half = { 0x80000000LL };
|
||||
static const struct fixed31_32 dc_fixpt_one = { 0x100000000LL };
|
||||
|
||||
static inline struct fixed31_32 dc_fixpt_from_s3132(__u64 x)
|
||||
{
|
||||
struct fixed31_32 val;
|
||||
|
||||
/* If negative, convert to 2's complement. */
|
||||
if (x & (1ULL << 63))
|
||||
x = -(x & ~(1ULL << 63));
|
||||
|
||||
val.value = x;
|
||||
return val;
|
||||
}
|
||||
|
||||
/*
|
||||
* @brief
|
||||
* Initialization routines
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user