On Mon, 20 Sep 2021, Lukasz Majczak <lma@xxxxxxxxxxxx> wrote: > With patch "drm/i915/vbt: Fix backlight parsing for VBT 234+" > the size of bdb_lfp_backlight_data structure has been increased, > causing if-statement in the parse_lfp_backlight function > that comapres this structure size to the one retrieved from BDB, > always to fail for older revisions. > This patch fixes it by comparing a total size of all fileds from > the structure (present before the change) with the value gathered from BDB. > Tested on Chromebook Pixelbook (Nocturne) (reports bdb->version = 221) > > Cc: <stable@xxxxxxxxxxxxxxx> # 5.4+ Not a review of the patch, I'll leave that to José, but 5.4 is not right. The commit is d381baad29b4 ("drm/i915/vbt: Fix backlight parsing for VBT 234+") which was merged in v5.11 and AFAICT has not been backported to any stable kernel. So this would be: Fixes: d381baad29b4 ("drm/i915/vbt: Fix backlight parsing for VBT 234+") Cc: <stable@xxxxxxxxxxxxxxx> # v5.11+ BR, Jani. > Tested-by: Lukasz Majczak <lma@xxxxxxxxxxxx> > Signed-off-by: Lukasz Majczak <lma@xxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 4 +++- > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 5 +++++ > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 3c25926092de..052a19b455d1 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -452,7 +452,9 @@ parse_lfp_backlight(struct drm_i915_private *i915, > > i915->vbt.backlight.type = INTEL_BACKLIGHT_DISPLAY_DDI; > if (bdb->version >= 191 && > - get_blocksize(backlight_data) >= sizeof(*backlight_data)) { > + get_blocksize(backlight_data) >= (sizeof(backlight_data->entry_size) + > + sizeof(backlight_data->data) + > + sizeof(backlight_data->level))) { > const struct lfp_backlight_control_method *method; > > method = &backlight_data->backlight_control[panel_type]; > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > index 330077c2e588..fff456bf8783 100644 > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > @@ -814,6 +814,11 @@ struct lfp_brightness_level { > u16 reserved; > } __packed; > > +/* > + * Changing struct bdb_lfp_backlight_data might affect its > + * size comparation to the value hold in BDB. > + * (e.g. in parse_lfp_backlight()) > + */ > struct bdb_lfp_backlight_data { > u8 entry_size; > struct lfp_backlight_data_entry data[16]; -- Jani Nikula, Intel Open Source Graphics Center