From 80c414772d93f2f21af2483497f424c6cc7b1132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= Date: Wed, 5 Jun 2024 16:47:55 +0300 Subject: [PATCH] drm/i915/bios: Define block 46 chromaticity coordinates properly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The VBT spec does a very poor job of defining how the chromaticity coordinates in block 46 are laid out. After double checking the Windows implementation it turns out these more or less match the EDID definition, where the 10bit values are split into 2bit + 8bit chunks. Adjust our struct definition to reflect that. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20240605134756.17099-1-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula --- drivers/gpu/drm/i915/display/intel_vbt_defs.h | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h index 862c5923b83d..da8694771f69 100644 --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h @@ -1376,16 +1376,23 @@ struct chromaticity { u8 chromaticity_from_edid_base_block:1; u8 rsvd:6; - u8 red_green; - u8 blue_white; - u8 red_x; - u8 red_y; - u8 green_x; - u8 green_y; - u8 blue_x; - u8 blue_y; - u8 white_x; - u8 white_y; + u8 green_y_lo:2; + u8 green_x_lo:2; + u8 red_y_lo:2; + u8 red_x_lo:2; + u8 white_y_lo:2; + u8 white_x_lo:2; + u8 blue_y_lo:2; + u8 blue_x_lo:2; + + u8 red_x_hi; + u8 red_y_hi; + u8 green_x_hi; + u8 green_y_hi; + u8 blue_x_hi; + u8 blue_y_hi; + u8 white_x_hi; + u8 white_y_hi; } __packed; struct bdb_chromaticity {