All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: "Michał Grzelak" <michal.grzelak@intel.com>,
	intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: "Suraj Kandpal" <suraj.kandpal@intel.com>,
	"Michał Grzelak" <michal.grzelak@intel.com>
Subject: Re: [PATCH v11 0/8] Vswing / Pre-emphasis Override
Date: Tue, 01 Sep 2026 10:56:31 +0300	[thread overview]
Message-ID: <3a9f683f18c23e5439b45af72bc054378f2247c6@intel.com> (raw)
In-Reply-To: <20260813160918.918857-1-michal.grzelak@intel.com>

On Thu, 13 Aug 2026, Michał Grzelak <michal.grzelak@intel.com> wrote:
> Next version of [1]. v5 of IGT part is at [2].
>
> Removed dead NULL check of devdata which is no longer needed.
> Also improved code style of previous version.

On the whole,

Acked-by: Jani Nikula <jani.nikula@intel.com>

but please look into the Sashiko comments. I think there's some valid
feedback there, but see for yourself.


BR,
Jani.



>
> This series still does not include LT patches.
>
> Tested by loading xe with custom VBT#57 on PTL. Same for i915 on EHL.
>
> Custom VBT#57 from PTL decoded by [2]:
>
> Block 57 min size 2 less than block size 1154
> BDB block 57 (1154 bytes, min 2 bytes) - Vswing Preemph:
>         Number of vswing tables: 6
>         Number of columns: 3
>         Number of rows: 16
>         PHY type: Cx0
>         Vswing Table #1 (C10: DP 1.4 RBR/HBR; C20: UNUSED):
>                 Preset #01: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #02: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #03: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #04: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #05: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #06: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #07: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #08: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #09: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #10: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #11: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #12: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #13: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #14: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #15: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #16: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>         Vswing Table #2 (C10: DP 1.4 HBR2/HBR3; C20: UNUSED):
>                 Preset #01: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #02: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #03: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #04: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #05: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #06: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #07: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #08: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #09: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #10: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #11: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #12: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #13: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #14: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #15: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #16: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>         Vswing Table #3 (C10: eDP non-HBR3; C20: UNUSED):
>                 Preset #01: vswing: 0x0000001a, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #02: vswing: 0x00000021, pre-cursor: 0x00000000, post-cursor: 0x00000006
>                 Preset #03: vswing: 0x00000026, pre-cursor: 0x00000000, post-cursor: 0x0000000b
>                 Preset #04: vswing: 0x0000002b, pre-cursor: 0x00000000, post-cursor: 0x00000013
>                 Preset #05: vswing: 0x00000027, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #06: vswing: 0x0000002d, pre-cursor: 0x00000000, post-cursor: 0x00000007
>                 Preset #07: vswing: 0x0000002e, pre-cursor: 0x00000000, post-cursor: 0x0000000d
>                 Preset #08: vswing: 0x0000002e, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #09: vswing: 0x00000037, pre-cursor: 0x00000000, post-cursor: 0x00000007
>                 Preset #10: vswing: 0x0000003e, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #11: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #12: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #13: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #14: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #15: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #16: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>         Vswing Table #4 (C10: eDP HBR3; C20: UNUSED):
>                 Preset #01: vswing: 0x0000001a, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #02: vswing: 0x00000021, pre-cursor: 0x00000000, post-cursor: 0x00000006
>                 Preset #03: vswing: 0x00000026, pre-cursor: 0x00000000, post-cursor: 0x0000000b
>                 Preset #04: vswing: 0x0000002b, pre-cursor: 0x00000000, post-cursor: 0x00000013
>                 Preset #05: vswing: 0x00000027, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #06: vswing: 0x0000002d, pre-cursor: 0x00000000, post-cursor: 0x00000007
>                 Preset #07: vswing: 0x0000002e, pre-cursor: 0x00000000, post-cursor: 0x0000000d
>                 Preset #08: vswing: 0x0000002e, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #09: vswing: 0x00000037, pre-cursor: 0x00000000, post-cursor: 0x00000007
>                 Preset #10: vswing: 0x0000003e, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #11: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #12: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #13: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #14: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #15: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #16: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>         Vswing Table #5 (C10: UNUSED; C20: DP 1.4):
>                 Preset #01: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #02: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #03: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #04: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #05: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #06: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #07: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #08: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #09: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #10: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #11: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #12: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #13: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #14: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #15: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #16: vswing: 0x00000000, pre-cursor: 0x00000000, post-cursor: 0x00000000
>         Vswing Table #6 (C10: UNUSED; C20: DP 2.X):
>                 Preset #01: vswing: 0x00000030, pre-cursor: 0x00000000, post-cursor: 0x00000000
>                 Preset #02: vswing: 0x0000002b, pre-cursor: 0x00000000, post-cursor: 0x00000005
>                 Preset #03: vswing: 0x00000028, pre-cursor: 0x00000000, post-cursor: 0x00000008
>                 Preset #04: vswing: 0x00000025, pre-cursor: 0x00000000, post-cursor: 0x0000000b
>                 Preset #05: vswing: 0x00000021, pre-cursor: 0x00000000, post-cursor: 0x0000000f
>                 Preset #06: vswing: 0x0000002e, pre-cursor: 0x00000002, post-cursor: 0x00000000
>                 Preset #07: vswing: 0x0000002a, pre-cursor: 0x00000002, post-cursor: 0x00000004
>                 Preset #08: vswing: 0x00000026, pre-cursor: 0x00000002, post-cursor: 0x00000008
>                 Preset #09: vswing: 0x00000023, pre-cursor: 0x00000002, post-cursor: 0x0000000b
>                 Preset #10: vswing: 0x00000021, pre-cursor: 0x00000002, post-cursor: 0x0000000d
>                 Preset #11: vswing: 0x0000002c, pre-cursor: 0x00000004, post-cursor: 0x00000000
>                 Preset #12: vswing: 0x00000028, pre-cursor: 0x00000004, post-cursor: 0x00000004
>                 Preset #13: vswing: 0x00000025, pre-cursor: 0x00000004, post-cursor: 0x00000007
>                 Preset #14: vswing: 0x00000021, pre-cursor: 0x00000004, post-cursor: 0x0000000b
>                 Preset #15: vswing: 0x00000028, pre-cursor: 0x00000008, post-cursor: 0x00000000
>                 Preset #16: vswing: 0x0000001e, pre-cursor: 0x00000002, post-cursor: 0x00000002
>
> Custom VBT#57 from EHL decoded by [2]:
>
> Block 57 min size 2 less than block size 1322
> BDB block 57 (1322 bytes, min 2 bytes) - Vswing Preemph:
>         Warning: purpose of tables varies between EHL & JSL
>         Number of vswing tables: 3
>         Number of columns: 11
>         Number of rows: 10
>         PHY type: Combo
>         Vswing Table #1 (High Vswing eDP/DP upto HBR3):
>           V0-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P1:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P2:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P3:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P1:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P2:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V2-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V2-P1:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V3-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>         Vswing Table #2 (Low Vswing eDP upto HBR2):
>           V0-P0:
>             dw2_swing_sel:      0x0000000a, dw7_n_scalar:       0x00000033, dw4_cursor_coeff:   0x0000003f,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P1:
>             dw2_swing_sel:      0x0000000a, dw7_n_scalar:       0x00000047, dw4_cursor_coeff:   0x00000038,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000007, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P2:
>             dw2_swing_sel:      0x0000000c, dw7_n_scalar:       0x00000064, dw4_cursor_coeff:   0x00000033,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x0000000c, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P3:
>             dw2_swing_sel:      0x00000006, dw7_n_scalar:       0x0000007f, dw4_cursor_coeff:   0x0000002f,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000010, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P0:
>             dw2_swing_sel:      0x0000000a, dw7_n_scalar:       0x00000046, dw4_cursor_coeff:   0x0000003f,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P1:
>             dw2_swing_sel:      0x0000000c, dw7_n_scalar:       0x00000064, dw4_cursor_coeff:   0x00000037,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000008, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P2:
>             dw2_swing_sel:      0x00000006, dw7_n_scalar:       0x0000007f, dw4_cursor_coeff:   0x00000032,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x0000000d, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V2-P0:
>             dw2_swing_sel:      0x0000000c, dw7_n_scalar:       0x00000061, dw4_cursor_coeff:   0x0000003f,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V2-P1:
>             dw2_swing_sel:      0x00000006, dw7_n_scalar:       0x0000007f, dw4_cursor_coeff:   0x00000037,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000008, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V3-P0:
>             dw2_swing_sel:      0x00000006, dw7_n_scalar:       0x0000007f, dw4_cursor_coeff:   0x0000003f,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>         Vswing Table #3 (Low Vswing eDP upto HBR3):
>           V0-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P1:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P2:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V0-P3:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P1:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V1-P2:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V2-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V2-P1:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>           V3-P0:
>             dw2_swing_sel:      0x00000000, dw7_n_scalar:       0x00000000, dw4_cursor_coeff:   0x00000000,
>             dw4_post_cursor_2:  0x00000000, dw4_post_cursor_1:  0x00000000, rcomp_scalar:       0x00000000,
>             rterm_select:       0x00000000, tap3_disable:       0x00000000, tap2_disable:       0x00000000,
>             cursor_program:     0x00000000, coeff_polarity:     0x00000000
>
>
> BR,
> Michał
>
> [1] https://lore.kernel.org/intel-gfx/20260702185839.4042397-1-michal.grzelak@intel.com/
> [2] https://lore.kernel.org/igt-dev/20260702182619.3973788-1-michal.grzelak@intel.com/
>
> ---
> Changelog:
> v10->v11
> - remove no-longer-relevant check for NULL devdata (Jani)
> - initialize local variables at declaration block (Jani)
> - branch with 'else` instead of initializing twice (Jani)
> - use blank line before 'return` (Jani)
>
> v9->v10
> - drop deconstifying default tables (Suraj, Jani)
> - add separate non-const field for `entries` caching
> - cache `entries` into const field after data is overwritten (Jani)
> - call dedicated VS/PE-O vfunc
>
> v8->v9 
> - init vspeo before using it
> - deconstify intel_ddi_buf_trans_entry in separate commit
>
> v7->v8
> - remove comments (Suraj)
> - add check for LT (Suraj)
>
> v6->v7
> - parse VBT#57 before blocks dependant on child device list (Jani)
> - expand VS/PE-O acronym in debug logging (Jani)
> - handle VS/PE-O's VBT details in intel_bios_* functions (Jani)
> - remove vspeo's cast to (void *) (Jani)
> - check devdata->vspeo if VS/PE-O was requested
> - call encoder->get_buf_trans() once (Jani)
> - return NULL from intel_bios_get_* when using default (Jani)
> - validate VS/PE-O in intel_bios.c (Jani)
> - inline *_get_vspeo_buf_trans()
> - remove temporarily LT
>
> v5->v6
> - check if devdata is not NULL
> - add Bspec (Suraj)
> - remove drm_WARN_ONCE (Suraj)
> - pass default VS/PE tables to LT's BIOS accessor (Suraj)
> - set txswing & _level from default VS/PE tables (Suraj)
> - add helper checking if VS/PE-O has been allocated (Suraj)
>
> v4->v5
> - set devdata->vspeo->num_entries in intel_bios.c
> - add if-ladder instead of function pointer
> - blend index computation with table parsing
> - remove WARN and debug messages
> - remove enums entirely
> - add spaces around operators (Suraj)
> - remove spaces after type casting (Suraj)
> - remove INTEL_DISPLAY_STATE_WARN (Suraj)
> - change funcs prefix from snps_ to mtl_ (Suraj)
>
> v3->v4
> - add Bspec (Suraj)
> - remove unnecessary init of VS/PE-O metadata (Suraj)
> - add helper for computing number of rows (Suraj)
> - fix num_rows's type (Jani, Suraj)
> - declare num_rows (Suraj)
> - change debug message when requesting VS/PE-O (Suraj)
> - stick to solely changing VBT data into current structures (Jani)
> - move iterator declaration to declaration block (Suraj)
>
> v2->v3
> - remove unnecessary braces from if block (Suraj)
> - return -EINVAL instead of -1 (Suraj)
>
> Michał Grzelak (8):
>   drm/i915/bios: search for VBT #57 by default
>   drm/i915/bios: store VBT #57's metadata in intel_vbt_data
>   drm/i915/bios: print VS/PE-O port info
>   drm/i915/bios: de/allocate VS/PE-O buffers for each port
>   drm/i915/buf_trans: add vfunc for VS/PE-O
>   drm/i915: override Snps's VS/PE when requested
>   drm/i915: override Combo's VS/PE when requested
>   drm/i915/bios: remove VS/PE-O warning
>
>  drivers/gpu/drm/i915/display/intel_bios.c     | 267 +++++++++++++++++-
>  drivers/gpu/drm/i915/display/intel_bios.h     |  14 +
>  .../drm/i915/display/intel_ddi_buf_trans.c    |  86 +++++-
>  .../gpu/drm/i915/display/intel_display_core.h |   7 +
>  .../drm/i915/display/intel_display_types.h    |   3 +
>  5 files changed, 363 insertions(+), 14 deletions(-)

-- 
Jani Nikula, Intel

      parent reply	other threads:[~2026-09-01  7:56 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-13 16:09 [PATCH v11 0/8] Vswing / Pre-emphasis Override Michał Grzelak
2026-08-13 16:09 ` [PATCH v11 1/8] drm/i915/bios: search for VBT #57 by default Michał Grzelak
2026-08-13 16:09 ` [PATCH v11 2/8] drm/i915/bios: store VBT #57's metadata in intel_vbt_data Michał Grzelak
2026-08-13 16:20   ` sashiko-bot
2026-08-13 16:09 ` [PATCH v11 3/8] drm/i915/bios: print VS/PE-O port info Michał Grzelak
2026-08-13 16:09 ` [PATCH v11 4/8] drm/i915/bios: de/allocate VS/PE-O buffers for each port Michał Grzelak
2026-08-13 16:17   ` sashiko-bot
2026-08-13 16:09 ` [PATCH v11 5/8] drm/i915/buf_trans: add vfunc for VS/PE-O Michał Grzelak
2026-08-13 16:09 ` [PATCH v11 6/8] drm/i915: override Snps's VS/PE when requested Michał Grzelak
2026-08-13 16:29   ` sashiko-bot
2026-08-13 16:09 ` [PATCH v11 7/8] drm/i915: override Combo's " Michał Grzelak
2026-08-13 16:50   ` sashiko-bot
2026-08-13 16:09 ` [PATCH v11 8/8] drm/i915/bios: remove VS/PE-O warning Michał Grzelak
2026-08-13 16:18 ` ✗ CI.checkpatch: warning for Vswing / Pre-emphasis Override (rev6) Patchwork
2026-08-13 16:20 ` ✓ CI.KUnit: success " Patchwork
2026-08-13 17:19 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-13 19:16 ` ✓ Xe.CI.FULL: " Patchwork
2026-08-13 19:16 ` ✓ i915.CI.BAT: " Patchwork
2026-08-14  2:12 ` ✗ i915.CI.Full: failure " Patchwork
2026-09-01  7:56 ` Jani Nikula [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3a9f683f18c23e5439b45af72bc054378f2247c6@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=michal.grzelak@intel.com \
    --cc=suraj.kandpal@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.