drm/i915/bios: Define block 46 chromaticity coordinates properly

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ä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240605134756.17099-1-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Ville Syrjälä 2024-06-05 16:47:55 +03:00
parent 106fb076aa
commit 80c414772d

View File

@ -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 {