On Wed, 05 Jun 2024, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > 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 { -- Jani Nikula, Intel