On Thu, 13 Aug 2026, Michał Grzelak <[email protected]> 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 <[email protected]> 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/[email protected]/ > [2] > https://lore.kernel.org/igt-dev/[email protected]/ > > --- > 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
