Every devdata needs a separate intel_ddi_buf_trans since each port can request an override. Add buffer's pointer into intel_bios_encoder_data.
Initialize the pointer to NULL when no VBT was provided. Signed-off-by: Michał Grzelak <[email protected]> --- drivers/gpu/drm/i915/display/intel_bios.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 6ac8dd16ea7b8..a3f0334c3a582 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -73,6 +73,7 @@ struct intel_bios_encoder_data { struct intel_display *display; + struct intel_ddi_buf_trans *buf_trans; struct child_device_config child; struct dsc_compression_parameters_entry *dsc; struct list_head node; @@ -2656,6 +2657,11 @@ static void sanitize_hdmi_level_shift(struct intel_bios_encoder_data *devdata, } } +static void override_vswing_preemph(struct intel_bios_encoder_data *devdata) +{ + devdata->buf_trans = NULL; +} + static bool intel_bios_encoder_supports_crt(const struct intel_bios_encoder_data *devdata) { @@ -2847,6 +2853,7 @@ static void parse_ddi_port(struct intel_bios_encoder_data *devdata) sanitize_dedicated_external(devdata, port); sanitize_device_type(devdata, port); sanitize_hdmi_level_shift(devdata, port); + override_vswing_preemph(devdata); } static bool has_ddi_port_info(struct intel_display *display) @@ -3057,6 +3064,7 @@ init_vbt_missing_defaults(struct intel_display *display) break; devdata->display = display; + devdata->buf_trans = NULL; child = &devdata->child; if (port == PORT_F) -- 2.45.2
