Next version of [1]. v5 of IGT part is at [2].

Previous approach of deconstifying predefined tables wasn't a good idea.
In order to follow Suraj's and Jani's comments, patch introducing this
change has been dropped.

Also, instead of adding new if-ladder into intel_ddi_buf_trans_get(),
one from intel_ddi_buf_trans_init() has been re-used. This required
adding new vfunc into intel_encoder.

This series still does not enable LT.

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:
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     | 287 +++++++++++++++++-
 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, 383 insertions(+), 14 deletions(-)

-- 
2.45.2

Reply via email to