diff mbox series

[v3] drm/i915/bdb: Fix version check

Message ID 20210930134606.227234-1-lma@semihalf.com (mailing list archive)
State New, archived
Headers show
Series [v3] drm/i915/bdb: Fix version check | expand

Commit Message

Lukasz Majczak Sept. 30, 2021, 1:46 p.m. UTC
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 calculates expected size of the structure for a given
BDB version and compares it with the value gathered from BDB.
Tested on Chromebook Pixelbook (Nocturne) (reports bdb->version = 221)

Tested-by: Lukasz Majczak <lma@semihalf.com>
Signed-off-by: Lukasz Majczak <lma@semihalf.com>
---
 drivers/gpu/drm/i915/display/intel_bios.c     | 22 ++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_vbt_defs.h |  5 +++++
 2 files changed, 21 insertions(+), 6 deletions(-)

Comments

Souza, Jose Sept. 30, 2021, 5:46 p.m. UTC | #1
On Thu, 2021-09-30 at 15:46 +0200, Lukasz Majczak 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 calculates expected size of the structure for a given
> BDB version and compares it with the value gathered from BDB.
> Tested on Chromebook Pixelbook (Nocturne) (reports bdb->version = 221)

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> 
> Tested-by: Lukasz Majczak <lma@semihalf.com>
> Signed-off-by: Lukasz Majczak <lma@semihalf.com>
> ---
>  drivers/gpu/drm/i915/display/intel_bios.c     | 22 ++++++++++++++-----
>  drivers/gpu/drm/i915/display/intel_vbt_defs.h |  5 +++++
>  2 files changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 3c25926092de..f9776ca85de3 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -451,13 +451,23 @@ 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)) {
> -		const struct lfp_backlight_control_method *method;
> +	if (bdb->version >= 191) {
> +		size_t exp_size;
>  
> -		method = &backlight_data->backlight_control[panel_type];
> -		i915->vbt.backlight.type = method->type;
> -		i915->vbt.backlight.controller = method->controller;
> +		if (bdb->version >= 236)
> +			exp_size = sizeof(struct bdb_lfp_backlight_data);
> +		else if (bdb->version >= 234)
> +			exp_size = EXP_BDB_LFP_BL_DATA_SIZE_REV_234;
> +		else
> +			exp_size = EXP_BDB_LFP_BL_DATA_SIZE_REV_191;
> +
> +		if (get_blocksize(backlight_data) >= exp_size) {
> +			const struct lfp_backlight_control_method *method;
> +
> +			method = &backlight_data->backlight_control[panel_type];
> +			i915->vbt.backlight.type = method->type;
> +			i915->vbt.backlight.controller = method->controller;
> +		}
>  	}
>  
>  	i915->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
> diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
> index 330077c2e588..a2108a8f544d 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;
>  
> +#define EXP_BDB_LFP_BL_DATA_SIZE_REV_191 \
> +	offsetof(struct bdb_lfp_backlight_data, brightness_level)
> +#define EXP_BDB_LFP_BL_DATA_SIZE_REV_234 \
> +	offsetof(struct bdb_lfp_backlight_data, brightness_precision_bits)
> +
>  struct bdb_lfp_backlight_data {
>  	u8 entry_size;
>  	struct lfp_backlight_data_entry data[16];
Souza, Jose Sept. 30, 2021, 8:46 p.m. UTC | #2
On Thu, 2021-09-30 at 20:36 +0000, Patchwork wrote:
Patch Details
Series: drm/i915/bdb: Fix version check (rev3)
URL:    https://patchwork.freedesktop.org/series/94871/
State:  success
Details:        https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/index.html
CI Bug Log - changes from CI_DRM_10666_full -> Patchwork_21205_full
Summary

SUCCESS

No regressions found.

Thanks for the patch, pushed.

Known issues

Here are the changes found in Patchwork_21205_full that come from known issues:

IGT changes
Issues hit

  *   igt@device_reset@unbind-reset-rebind:

     *   shard-tglb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-tglb8/igt@device_reset@unbind-reset-rebind.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb5/igt@device_reset@unbind-reset-rebind.html> ([i915#750])
  *   igt@feature_discovery@psr2:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb2/igt@feature_discovery@psr2.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb5/igt@feature_discovery@psr2.html> ([i915#658])
  *   igt@gem_exec_fair@basic-flow@rcs0:

     *   shard-tglb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-tglb7/igt@gem_exec_fair@basic-flow@rcs0.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html> ([i915#2842])
  *   igt@gem_exec_fair@basic-pace@vcs0:

     *   shard-kbl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl3/igt@gem_exec_fair@basic-pace@vcs0.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl4/igt@gem_exec_fair@basic-pace@vcs0.html> ([i915#2842])
  *   igt@gem_exec_fair@basic-pace@vcs1:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb1/igt@gem_exec_fair@basic-pace@vcs1.html> ([i915#2842])
  *   igt@gem_exec_params@no-bsd:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@gem_exec_params@no-bsd.html> ([fdo#109283])
  *   igt@gem_exec_params@secure-non-master:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@gem_exec_params@secure-non-master.html> ([fdo#112283])
  *   igt@gem_exec_whisper@basic-queues-forked-all:

     *   shard-glk: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-glk6/igt@gem_exec_whisper@basic-queues-forked-all.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-glk4/igt@gem_exec_whisper@basic-queues-forked-all.html> ([i915#118] / [i915#95]) +1 similar issue
  *   igt@gem_userptr_blits@unsync-unmap-after-close:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@gem_userptr_blits@unsync-unmap-after-close.html> ([i915#3297])
  *   igt@gem_userptr_blits@vma-merge:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl2/igt@gem_userptr_blits@vma-merge.html> ([i915#3318])
  *   igt@gen9_exec_parse@bb-start-out:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb3/igt@gen9_exec_parse@bb-start-out.html> ([i915#2856]) +2 similar issues
  *   igt@i915_pm_rc6_residency@rc6-fence:

     *   shard-tglb: NOTRUN -> WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@i915_pm_rc6_residency@rc6-fence.html> ([i915#2681])
  *   igt@i915_pm_rpm@modeset-non-lpsp-stress:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@i915_pm_rpm@modeset-non-lpsp-stress.html> ([fdo#111644] / [i915#1397] / [i915#2411])
  *   igt@i915_pm_rpm@system-suspend-execbuf:

     *   shard-tglb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-tglb2/igt@i915_pm_rpm@system-suspend-execbuf.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb7/igt@i915_pm_rpm@system-suspend-execbuf.html> ([i915#2411] / [i915#456] / [i915#750])
  *   igt@i915_suspend@fence-restore-tiled2untiled:

     *   shard-apl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl1/igt@i915_suspend@fence-restore-tiled2untiled.html> ([i915#180]) +1 similar issue
  *   igt@kms_big_fb@x-tiled-16bpp-rotate-270:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html> ([fdo#111614]) +1 similar issue
  *   igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html> ([fdo#109271] / [i915#3777]) +1 similar issue
  *   igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html> ([fdo#109271] / [i915#3777]) +1 similar issue
  *   igt@kms_big_fb@yf-tiled-addfb-size-overflow:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html> ([fdo#111615]) +3 similar issues
  *   igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html> ([i915#3689]) +7 similar issues
  *   igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl7/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html> ([fdo#109271] / [i915#3886]) +8 similar issues
  *   igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-glk3/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html> ([fdo#109271] / [i915#3886]) +4 similar issues
  *   igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl6/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html> ([fdo#109271] / [i915#3886]) +4 similar issues
  *   igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs.html> ([i915#3689] / [i915#3886])
  *   igt@kms_chamelium@dp-crc-multiple:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl2/igt@kms_chamelium@dp-crc-multiple.html> ([fdo#109271] / [fdo#111827]) +15 similar issues
  *   igt@kms_color_chamelium@pipe-b-ctm-0-5:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl7/igt@kms_color_chamelium@pipe-b-ctm-0-5.html> ([fdo#109271] / [fdo#111827]) +4 similar issues
  *   igt@kms_color_chamelium@pipe-b-ctm-green-to-red:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-glk3/igt@kms_color_chamelium@pipe-b-ctm-green-to-red.html> ([fdo#109271] / [fdo#111827]) +1 similar issue
  *   igt@kms_color_chamelium@pipe-b-ctm-limited-range:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_color_chamelium@pipe-b-ctm-limited-range.html> ([fdo#109284] / [fdo#111827]) +7 similar issues
  *   igt@kms_color_chamelium@pipe-b-degamma:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl2/igt@kms_color_chamelium@pipe-b-degamma.html> ([fdo#109271] / [fdo#111827])
  *   igt@kms_content_protection@dp-mst-type-0:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_content_protection@dp-mst-type-0.html> ([i915#3116])
  *   igt@kms_cursor_crc@pipe-a-cursor-32x32-offscreen:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_cursor_crc@pipe-a-cursor-32x32-offscreen.html> ([i915#3319]) +2 similar issues
  *   igt@kms_cursor_crc@pipe-a-cursor-alpha-opaque:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-alpha-opaque.html> ([i915#3444])

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl6/igt@kms_cursor_crc@pipe-a-cursor-alpha-opaque.html> ([i915#3444])

  *   igt@kms_cursor_crc@pipe-b-cursor-32x10-sliding:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_cursor_crc@pipe-b-cursor-32x10-sliding.html> ([i915#3359]) +4 similar issues
  *   igt@kms_cursor_crc@pipe-c-cursor-512x512-random:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@kms_cursor_crc@pipe-c-cursor-512x512-random.html> ([fdo#109279] / [i915#3359]) +4 similar issues
  *   igt@kms_cursor_crc@pipe-c-cursor-suspend:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html> -> INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html> ([i915#300])

     *   shard-kbl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html> -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html> ([i915#180]) +3 similar issues

  *   igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl10/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html> ([i915#2346] / [i915#533])
  *   igt@kms_cursor_legacy@pipe-d-torture-bo:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_cursor_legacy@pipe-d-torture-bo.html> ([fdo#109271] / [i915#533])
  *   igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html> ([i915#4103])
  *   igt@kms_flip@flip-vs-suspend@a-dp1:

     *   shard-apl: NOTRUN -> DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl3/igt@kms_flip@flip-vs-suspend@a-dp1.html> ([i915#180]) +3 similar issues
  *   igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl3/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html> ([i915#2122]) +1 similar issue
  *   igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs.html> ([i915#2587])
  *   igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html> ([i915#3701])
  *   igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render.html> ([fdo#111825]) +25 similar issues
  *   igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:

     *   shard-iclb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff.html> ([fdo#109280]) +1 similar issue
  *   igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html> ([fdo#109271]) +81 similar issues
  *   igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html> ([fdo#109271]) +209 similar issues
  *   igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-glk3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render.html> ([fdo#109271]) +36 similar issues
  *   igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html> ([fdo#109271] / [i915#533]) +3 similar issues
  *   igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html> ([fdo#108145] / [i915#265]) +2 similar issues
  *   igt@kms_plane_alpha_blend@pipe-a-alpha-basic:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl2/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html> ([fdo#108145] / [i915#265]) +2 similar issues
  *   igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:

     *   shard-kbl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl2/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html> ([i915#265])
  *   igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl7/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl4/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html> ([fdo#108145] / [i915#265])
  *   igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:

     *   shard-skl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html> ([i915#265])
  *   igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:

     *   shard-apl: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl2/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html> ([i915#265])
  *   igt@kms_plane_lowres@pipe-a-tiling-none:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb3/igt@kms_plane_lowres@pipe-a-tiling-none.html> ([i915#3536])
  *   igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb3/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4.html> ([i915#2920])
  *   igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html> ([fdo#109271] / [i915#658]) +4 similar issues
  *   igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:

     *   shard-glk: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-glk3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html> ([fdo#109271] / [i915#658])
  *   igt@kms_psr2_su@frontbuffer:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb2/igt@kms_psr2_su@frontbuffer.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb5/igt@kms_psr2_su@frontbuffer.html> ([fdo#109642] / [fdo#111068] / [i915#658])
  *   igt@kms_psr2_su@page_flip:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl6/igt@kms_psr2_su@page_flip.html> ([fdo#109271] / [i915#658]) +1 similar issue
  *   igt@kms_psr@psr2_cursor_plane_onoff:

     *   shard-tglb: NOTRUN -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_psr@psr2_cursor_plane_onoff.html> ([i915#132] / [i915#3467]) +2 similar issues
  *   igt@kms_psr@psr2_primary_mmap_cpu:

     *   shard-iclb: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html> -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb6/igt@kms_psr@psr2_primary_mmap_cpu.html> ([fdo#109441]) +2 similar issues
  *   igt@kms_vblank@pipe-d-ts-continuation-modeset-rpm:

     *   shard-kbl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl2/igt@kms_vblank@pipe-d-ts-continuation-modeset-rpm.html> ([fdo#109271]) +5 similar issues
  *   igt@kms_writeback@writeback-fb-id:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_writeback@writeback-fb-id.html> ([i915#2437])
  *   igt@kms_writeback@writeback-invalid-parameters:

     *   shard-skl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_writeback@writeback-invalid-parameters.html> ([fdo#109271] / [i915#2437])
  *   igt@nouveau_crc@pipe-a-ctx-flip-detection:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@nouveau_crc@pipe-a-ctx-flip-detection.html> ([i915#2530])
  *   igt@perf@blocking:

     *   shard-skl: PASS<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl4/igt@perf@blocking.html> -> FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl5/igt@perf@blocking.html> ([i915#1542])
  *   igt@perf@unprivileged-single-ctx-counters:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@perf@unprivileged-single-ctx-counters.html> ([fdo#109289]) +1 similar issue
  *   igt@prime_nv_test@i915_blt_fill_nv_read:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@prime_nv_test@i915_blt_fill_nv_read.html> ([fdo#109291]) +1 similar issue
  *   igt@sysfs_clients@fair-1:

     *   shard-apl: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl3/igt@sysfs_clients@fair-1.html> ([fdo#109271] / [i915#2994]) +1 similar issue
  *   igt@sysfs_clients@pidname:

     *   shard-tglb: NOTRUN -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@sysfs_clients@pidname.html> ([i915#2994])

Possible fixes

  *   igt@gem_ctx_isolation@preservation-s3@bcs0:

     *   shard-kbl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl7/igt@gem_ctx_isolation@preservation-s3@bcs0.html> ([i915#180]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl1/igt@gem_ctx_isolation@preservation-s3@bcs0.html>
  *   igt@gem_eio@in-flight-contexts-1us:

     *   shard-tglb: TIMEOUT<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-tglb6/igt@gem_eio@in-flight-contexts-1us.html> ([i915#3063]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb5/igt@gem_eio@in-flight-contexts-1us.html>
  *   igt@gem_exec_fair@basic-none-share@rcs0:

     *   shard-iclb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb4/igt@gem_exec_fair@basic-none-share@rcs0.html> ([i915#2842]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb8/igt@gem_exec_fair@basic-none-share@rcs0.html>
  *   igt@gem_exec_fair@basic-none@vcs0:

     *   shard-kbl: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl1/igt@gem_exec_fair@basic-none@vcs0.html> ([i915#2842]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl2/igt@gem_exec_fair@basic-none@vcs0.html> +2 similar issues
  *   igt@gem_workarounds@suspend-resume:

     *   shard-tglb: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-tglb7/igt@gem_workarounds@suspend-resume.html> ([i915#456]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb8/igt@gem_workarounds@suspend-resume.html> +1 similar issue
  *   igt@gem_workarounds@suspend-resume-context:

     *   shard-apl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl2/igt@gem_workarounds@suspend-resume-context.html> ([i915#180]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl3/igt@gem_workarounds@suspend-resume-context.html> +2 similar issues
  *   igt@gen9_exec_parse@allowed-single:

     *   shard-skl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl1/igt@gen9_exec_parse@allowed-single.html> ([i915#1436] / [i915#716]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl7/igt@gen9_exec_parse@allowed-single.html>
  *   igt@i915_pm_dc@dc6-psr:

     *   shard-iclb: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb3/igt@i915_pm_dc@dc6-psr.html> ([i915#454]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb5/igt@i915_pm_dc@dc6-psr.html>
  *   igt@i915_suspend@fence-restore-untiled:

     *   shard-skl: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl6/igt@i915_suspend@fence-restore-untiled.html> ([i915#198] / [i915#4173]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl6/igt@i915_suspend@fence-restore-untiled.html>
  *   igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:

     *   shard-glk: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-glk3/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html> ([i915#72]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-glk9/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html>
  *   igt@kms_fbcon_fbt@psr-suspend:

     *   shard-skl: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl4/igt@kms_fbcon_fbt@psr-suspend.html> ([i915#146] / [i915#198]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl8/igt@kms_fbcon_fbt@psr-suspend.html>
  *   igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1:

     *   shard-skl: FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl10/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html> ([i915#2122]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl4/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html> +2 similar issues
  *   igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile.html> ([i915#3701]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile.html>
  *   igt@kms_frontbuffer_tracking@fbc-suspend:

     *   shard-tglb: INCOMPLETE<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-suspend.html> ([i915#2411] / [i915#456]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-suspend.html> +1 similar issue
  *   igt@kms_plane@pixel-format-source-clamping@pipe-a-planes:

     *   shard-skl: DMESG-WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-skl10/igt@kms_plane@pixel-format-source-clamping@pipe-a-planes.html> ([i915#1982]) -> PASS<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-skl6/igt@kms_plane@pixel-format-source-clamping@pipe-a-planes.html> +2 similar issues

Warnings

  *   igt@i915_pm_rc6_residency@rc6-idle:

     *   shard-iclb: WARN<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb6/igt@i915_pm_rc6_residency@rc6-idle.html> ([i915#1804] / [i915#2684]) -> WARN<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb2/igt@i915_pm_rc6_residency@rc6-idle.html> ([i915#2684])
  *   igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-1:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-1.html> ([i915#658]) -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-1.html> ([i915#2920]) +2 similar issues
  *   igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4:

     *   shard-iclb: SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4.html> ([i915#2920]) -> SKIP<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-iclb1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-4.html> ([i915#658])
  *   igt@runner@aborted:

     *   shard-kbl: (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl4/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl2/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-kbl7/igt@runner@aborted.html>) ([i915#1436] / [i915#180] / [i915#3002] / [i915#3363]) -> (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl6/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl6/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl1/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl1/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-kbl1/igt@runner@aborted.html>) ([i915#1436] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363])

     *   shard-apl: (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl1/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl6/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl1/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl3/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10666/shard-apl2/igt@runner@aborted.html>) ([fdo#109271] / [i915#1610] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363]) -> (FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl3/igt@runner@aborted.html>, FAIL<https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21205/shard-apl6/>, [FAIL][142], [FAIL][143], [FAIL][144], [FAIL][145], [FAIL][146]) ([fdo#109271] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363])
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 3c25926092de..f9776ca85de3 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -451,13 +451,23 @@  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)) {
-		const struct lfp_backlight_control_method *method;
+	if (bdb->version >= 191) {
+		size_t exp_size;
 
-		method = &backlight_data->backlight_control[panel_type];
-		i915->vbt.backlight.type = method->type;
-		i915->vbt.backlight.controller = method->controller;
+		if (bdb->version >= 236)
+			exp_size = sizeof(struct bdb_lfp_backlight_data);
+		else if (bdb->version >= 234)
+			exp_size = EXP_BDB_LFP_BL_DATA_SIZE_REV_234;
+		else
+			exp_size = EXP_BDB_LFP_BL_DATA_SIZE_REV_191;
+
+		if (get_blocksize(backlight_data) >= exp_size) {
+			const struct lfp_backlight_control_method *method;
+
+			method = &backlight_data->backlight_control[panel_type];
+			i915->vbt.backlight.type = method->type;
+			i915->vbt.backlight.controller = method->controller;
+		}
 	}
 
 	i915->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz;
diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h
index 330077c2e588..a2108a8f544d 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;
 
+#define EXP_BDB_LFP_BL_DATA_SIZE_REV_191 \
+	offsetof(struct bdb_lfp_backlight_data, brightness_level)
+#define EXP_BDB_LFP_BL_DATA_SIZE_REV_234 \
+	offsetof(struct bdb_lfp_backlight_data, brightness_precision_bits)
+
 struct bdb_lfp_backlight_data {
 	u8 entry_size;
 	struct lfp_backlight_data_entry data[16];