]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i915/bios: Define block 46 chromaticity coordinates properly
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 5 Jun 2024 13:47:55 +0000 (16:47 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 7 Jun 2024 11:39:51 +0000 (14:39 +0300)
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>
drivers/gpu/drm/i915/display/intel_vbt_defs.h

index 862c5923b83d922c8c1dbd41ec6c27261930b719..da8694771f6990ef0917b60b316f72d72e612cff 100644 (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 {