Commit 94529775 authored by Chaitanya Kumar Borah's avatar Chaitanya Kumar Borah Committed by Simon Ser
Browse files

drm: Add helper to extract lut from struct drm_color_lut32



Add helper to extract lut values in 32-bit precision needed by
hardware.

Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Signed-off-by: default avatarUma Shankar <uma.shankar@intel.com>
Signed-off-by: default avatarChaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Reviewed-by: default avatarSebastian Wick <sebastian.wick@redhat.com>
Signed-off-by: default avatarSimon Ser <contact@emersion.fr>
Link: https://patch.msgid.link/20251115000237.3561250-37-alex.hung@amd.com
parent 621c45ca
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -50,6 +50,22 @@ static inline u32 drm_color_lut_extract(u32 user_input, int bit_precision)
					 (1 << 16) - 1);
}

/**
 * drm_color_lut32_extract - clamp and round LUT entries
 * @user_input: input value
 * @bit_precision: number of bits the hw LUT supports
 *
 * Extract U0.bit_precision from a U0.32 LUT value.
 *
 */
static inline u32 drm_color_lut32_extract(u32 user_input, int bit_precision)
{
	u64 max = (bit_precision >= 64) ? ~0ULL : (1ULL << bit_precision) - 1;

	return DIV_ROUND_CLOSEST_ULL((u64)user_input * max,
				     (1ULL << 32) - 1);
}

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,