diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0564-drm-amd-dal-Bool-to-Void-on-Link-Encoder-Programming.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0564-drm-amd-dal-Bool-to-Void-on-Link-Encoder-Programming.patch | 760 |
1 files changed, 760 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0564-drm-amd-dal-Bool-to-Void-on-Link-Encoder-Programming.patch b/common/recipes-kernel/linux/files/0564-drm-amd-dal-Bool-to-Void-on-Link-Encoder-Programming.patch new file mode 100644 index 00000000..fab78caf --- /dev/null +++ b/common/recipes-kernel/linux/files/0564-drm-amd-dal-Bool-to-Void-on-Link-Encoder-Programming.patch @@ -0,0 +1,760 @@ +From f71d6bcc11dd4cdf0e0ebe7e4d4419174406b2ee Mon Sep 17 00:00:00 2001 +From: Chris Park <Chris.Park@amd.com> +Date: Wed, 2 Dec 2015 11:48:07 -0500 +Subject: [PATCH 0564/1110] drm/amd/dal: Bool to Void on Link Encoder + Programming + +Signed-off-by: Chris Park <Chris.Park@amd.com> +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/dal/dc/core/dc.c | 5 +- + drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 33 +--- + drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c | 48 ++--- + drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c | 18 +- + .../drm/amd/dal/dc/dce110/dce110_link_encoder.c | 205 +++++++++------------ + .../drm/amd/dal/dc/dce110/dce110_link_encoder.h | 36 +--- + drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 2 +- + drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h | 8 +- + drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h | 4 +- + 9 files changed, 141 insertions(+), 218 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c +index b7aa85d..e141e99 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c +@@ -162,10 +162,7 @@ static void init_hw(struct dc *dc) + * required signal (which may be different from the + * default signal on connector). */ + struct core_link *link = dc->links[i]; +- if (!dc->hwss.encoder_power_up(link->link_enc)) { +- dal_error("Failed link encoder power up!\n"); +- return; +- } ++ dc->hwss.encoder_power_up(link->link_enc); + } + + dal_bios_parser_set_scratch_acc_mode_change(bp); +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +index 58eac92..d8bf8e9 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +@@ -884,15 +884,12 @@ static enum dc_status enable_link_dp(struct core_stream *stream) + + /* get link settings for video mode timing */ + decide_link_settings(stream, &link_settings); +- status = dp_enable_link_phy( ++ dp_enable_link_phy( + stream->sink->link, + stream->signal, + stream->stream_enc->id, + &link_settings); + +- if (status == DC_ERROR_UNEXPECTED) +- return status; +- + panel_mode = dp_get_panel_mode(link); + dpcd_configure_panel_mode(link, panel_mode); + +@@ -936,20 +933,15 @@ static enum dc_status enable_link_dp_mst(struct core_stream *stream) + return enable_link_dp(stream); + } + +-static enum dc_status enable_link_hdmi(struct core_stream *stream) ++static void enable_link_hdmi(struct core_stream *stream) + { + struct core_link *link = stream->sink->link; + +- /* TODO:Need to add missing use cases, reference +- * dal_hw_sequencer_enable_link_base*/ +- enum dc_status status = DC_OK; +- + /* enable video output */ + /* here we need to specify that encoder output settings + * need to be calculated as for the set mode, + * it will lead to querying dynamic link capabilities + * which should be done before enable output */ +- + uint32_t normalized_pix_clk = stream->public.timing.pix_clk_khz; + switch (stream->public.timing.display_color_depth) { + case COLOR_DEPTH_888: +@@ -977,20 +969,17 @@ static enum dc_status enable_link_hdmi(struct core_stream *stream) + (stream->signal == SIGNAL_TYPE_DVI_DUAL_LINK) + ? LANE_COUNT_EIGHT : LANE_COUNT_FOUR; + +- if (!link->ctx->dc->hwss.encoder_enable_output( ++ link->ctx->dc->hwss.encoder_enable_output( + stream->sink->link->link_enc, + &stream->sink->link->cur_link_settings, + stream->stream_enc->id, + dal_clock_source_get_id(stream->clock_source), + stream->signal, + stream->public.timing.display_color_depth, +- stream->public.timing.pix_clk_khz)) +- status = DC_ERROR_UNEXPECTED; ++ stream->public.timing.pix_clk_khz); + + if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A) + dal_ddc_service_read_scdc_data(link->ddc); +- +- return status; + } + + /****************************enable_link***********************************/ +@@ -1009,7 +998,8 @@ enum dc_status core_link_enable(struct core_stream *stream) + case SIGNAL_TYPE_DVI_SINGLE_LINK: + case SIGNAL_TYPE_DVI_DUAL_LINK: + case SIGNAL_TYPE_HDMI_TYPE_A: +- status = enable_link_hdmi(stream); ++ enable_link_hdmi(stream); ++ status = DC_OK; + break; + + default: +@@ -1030,10 +1020,9 @@ enum dc_status core_link_enable(struct core_stream *stream) + return status; + } + +-enum dc_status core_link_disable(struct core_stream *stream) ++void core_link_disable(struct core_stream *stream) + { + /* TODO dp_set_hw_test_pattern */ +- enum dc_status status = DC_OK; + struct dc *dc = stream->ctx->dc; + + /* here we need to specify that encoder output settings +@@ -1051,12 +1040,8 @@ enum dc_status core_link_disable(struct core_stream *stream) + stream->sink->link, stream); + } + } +- +- else if (!dc->hwss.encoder_disable_output( +- stream->sink->link->link_enc, stream->signal)) +- status = DC_ERROR_UNEXPECTED; +- +- return status; ++ dc->hwss.encoder_disable_output( ++ stream->sink->link->link_enc, stream->signal); + } + + enum dc_status dc_link_validate_mode_timing( +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c +index 71e6f8c..2852440 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c +@@ -1071,32 +1071,34 @@ bool dp_hbr_verify_link_cap( + skip_video_pattern = true; + if (cur->link_rate == LINK_RATE_LOW) + skip_video_pattern = false; +- if (dp_enable_link_phy( ++ ++ dp_enable_link_phy( + link, + link->public.connector_signal, + ENGINE_ID_UNKNOWN, +- cur)) { +- if (skip_link_training) +- success = true; +- else { +- uint8_t num_retries = 3; +- uint8_t j; +- uint8_t delay_between_retries = 10; +- for (j = 0; j < num_retries; ++j) { +- success = perform_link_training( +- link, +- cur, +- skip_video_pattern); +- +- if (success) +- break; +- +- dc_service_sleep_in_milliseconds( +- link->ctx, +- delay_between_retries); +- +- delay_between_retries += 10; +- } ++ cur); ++ ++ if (skip_link_training) ++ success = true; ++ else { ++ uint8_t num_retries = 3; ++ uint8_t j; ++ uint8_t delay_between_retries = 10; ++ ++ for (j = 0; j < num_retries; ++j) { ++ success = perform_link_training( ++ link, ++ cur, ++ skip_video_pattern); ++ ++ if (success) ++ break; ++ ++ dc_service_sleep_in_milliseconds( ++ link->ctx, ++ delay_between_retries); ++ ++ delay_between_retries += 10; + } + } + +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c +index 054b0a3..2913d5c 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c +@@ -46,28 +46,22 @@ void dp_receiver_power_ctrl(struct core_link *link, bool on) + sizeof(state)); + } + +-enum dc_status dp_enable_link_phy( ++void dp_enable_link_phy( + struct core_link *link, + enum signal_type signal, + enum engine_id engine, + const struct link_settings *link_settings) + { +- enum dc_status status = DC_OK; +- +- if (!link->dc->hwss.encoder_enable_output( ++ link->dc->hwss.encoder_enable_output( + link->link_enc, + link_settings, + engine, + CLOCK_SOURCE_ID_EXTERNAL, + signal, + COLOR_DEPTH_UNDEFINED, +- 0)) +- status = DC_ERROR_UNEXPECTED; +- +- if (status == DC_OK) +- dp_receiver_power_ctrl(link, true); ++ 0); + +- return status; ++ dp_receiver_power_ctrl(link, true); + } + + void dp_disable_link_phy(struct core_link *link, enum signal_type signal) +@@ -133,7 +127,7 @@ bool dp_set_hw_training_pattern( + } + + +-bool dp_set_hw_lane_settings( ++void dp_set_hw_lane_settings( + struct core_link *link, + const struct link_training_settings *link_settings) + { +@@ -141,8 +135,6 @@ bool dp_set_hw_lane_settings( + + /* call Encoder to set lane settings */ + link->ctx->dc->hwss.encoder_dp_set_lane_settings(encoder, link_settings); +- +- return true; + } + + enum dp_panel_mode dp_get_panel_mode(struct core_link *link) +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c +index 3e2ac27..3d902f3 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c +@@ -640,7 +640,7 @@ static bool is_panel_powered_on(struct dce110_link_encoder *enc110) + * @brief + * eDP only. Control the power of the eDP panel. + */ +-static bool link_encoder_edp_power_control( ++static void link_encoder_edp_power_control( + struct dce110_link_encoder *enc110, + bool power_up) + { +@@ -651,7 +651,7 @@ static bool link_encoder_edp_power_control( + if (dal_graphics_object_id_get_connector_id(enc110->base.connector) != + CONNECTOR_ID_EDP) { + BREAK_TO_DEBUGGER(); +- return false; ++ return; + } + + if ((power_up && !is_panel_powered_on(enc110)) || +@@ -693,8 +693,6 @@ static bool link_encoder_edp_power_control( + "%s: Skipping Panel Power action: %s\n", + __func__, (power_up ? "On":"Off")); + } +- +- return true; + } + + /* +@@ -810,7 +808,7 @@ static bool is_panel_backlight_on(struct dce110_link_encoder *enc110) + * @brief + * eDP only. Control the backlight of the eDP panel + */ +-static bool link_encoder_edp_backlight_control( ++static void link_encoder_edp_backlight_control( + struct dce110_link_encoder *enc110, + bool enable) + { +@@ -820,7 +818,7 @@ static bool link_encoder_edp_backlight_control( + if (dal_graphics_object_id_get_connector_id(enc110->base.connector) + != CONNECTOR_ID_EDP) { + BREAK_TO_DEBUGGER(); +- return false; ++ return; + } + + if (enable && is_panel_backlight_on(enc110)) { +@@ -829,7 +827,7 @@ static bool link_encoder_edp_backlight_control( + LOG_MINOR_HW_TRACE_RESUME_S3, + "%s: panel already powered up. Do nothing.\n", + __func__); +- return true; ++ return; + } + + if (!enable && !is_panel_powered_on(enc110)) { +@@ -838,7 +836,7 @@ static bool link_encoder_edp_backlight_control( + LOG_MINOR_HW_TRACE_RESUME_S3, + "%s: panel already powered down. Do nothing.\n", + __func__); +- return true; ++ return; + } + + /* Send VBIOS command to control eDP panel backlight */ +@@ -874,8 +872,6 @@ static bool link_encoder_edp_backlight_control( + dal_bios_parser_transmitter_control( + dal_adapter_service_get_bios_parser( + enc110->base.adapter_service), &cntl); +- +- return true; + } + + static bool is_dig_enabled(const struct dce110_link_encoder *enc110) +@@ -1289,13 +1285,12 @@ bool dce110_link_encoder_validate_output_with_stream( + return is_valid; + } + +-bool dce110_link_encoder_power_up( ++void dce110_link_encoder_power_up( + struct link_encoder *enc) + { + struct dce110_link_encoder *enc110 = TO_DCE110_LINK_ENC(enc); + struct dc_context *ctx = enc110->base.ctx; + struct bp_transmitter_control cntl = { 0 }; +- + enum bp_result result; + + cntl.action = TRANSMITTER_CONTROL_INIT; +@@ -1318,7 +1313,7 @@ bool dce110_link_encoder_power_up( + "%s: Failed to execute VBIOS command table!\n", + __func__); + BREAK_TO_DEBUGGER(); +- return false; ++ return; + } + + if (enc110->base.connector.id == CONNECTOR_ID_LVDS) { +@@ -1345,8 +1340,6 @@ bool dce110_link_encoder_power_up( + * as DIG_FE id even caller pass DIG_FE id. + * So this routine must be called first. */ + hpd_initialize(enc110); +- +- return true; + } + + void dce110_link_encoder_setup( +@@ -1390,52 +1383,93 @@ void dce110_link_encoder_setup( + dal_write_reg(ctx, addr, value); + } + +-bool dce110_link_encoder_enable_tmds_output( ++/* ++ * @brief ++ * Configure digital transmitter and enable both encoder and transmitter ++ * Actual output will be available after calling unblank() ++ */ ++void dce110_link_encoder_enable_output( + struct link_encoder *enc, ++ const struct link_settings *link_settings, ++ enum engine_id engine, + enum clock_source_id clock_source, ++ enum signal_type signal, + enum dc_color_depth color_depth, + uint32_t pixel_clock) + { +- return true; +-} ++ struct dce110_link_encoder *enc110 = TO_DCE110_LINK_ENC(enc); ++ struct dc_context *ctx = enc110->base.ctx; ++ struct bp_transmitter_control cntl = { 0 }; ++ enum bp_result result; + +-bool dce110_link_encoder_enable_dual_link_tmds_output( +- struct link_encoder *enc, +- enum clock_source_id clock_source, +- enum dc_color_depth color_depth, +- uint32_t pixel_clock) +-{ +- return true; +-} ++ if (enc110->base.connector.id == CONNECTOR_ID_EDP) { ++ /* power up eDP panel */ + +-/* enables DP PHY output */ +-bool dce110_link_encoder_enable_dp_output( +- struct link_encoder *enc, +- const struct link_settings *link_settings, +- enum clock_source_id clock_source) +-{ +- return true; +-} ++ link_encoder_edp_power_control(enc110, true); + +-/* enables DP PHY output in MST mode */ +-bool dce110_link_encoder_enable_dp_mst_output( +- struct link_encoder *enc, +- const struct link_settings *link_settings, +- enum clock_source_id clock_source) +-{ +- return true; ++ link_encoder_edp_wait_for_hpd_ready(enc110, true); ++ ++ /* have to turn off the backlight ++ * before power down eDP panel ++ */ ++ link_encoder_edp_backlight_control(enc110, true); ++ } ++ ++ /* Enable the PHY */ ++ ++ /* number_of_lanes is used for pixel clock adjust, ++ * but it's not passed to asic_control. ++ * We need to set number of lanes manually. ++ */ ++ if (dc_is_dp_signal(signal)) ++ configure_encoder(enc110, engine, link_settings); ++ ++ cntl.action = TRANSMITTER_CONTROL_ENABLE; ++ cntl.engine_id = engine; ++ cntl.transmitter = enc110->base.transmitter; ++ cntl.pll_id = clock_source; ++ cntl.signal = signal; ++ cntl.lanes_number = link_settings->lane_count; ++ cntl.hpd_sel = enc110->base.hpd_source; ++ if (dc_is_dp_signal(signal)) ++ cntl.pixel_clock = link_settings->link_rate ++ * LINK_RATE_REF_FREQ_IN_KHZ; ++ else ++ cntl.pixel_clock = pixel_clock; ++ cntl.color_depth = color_depth; ++ ++ if (DELAY_AFTER_PIXEL_FORMAT_CHANGE) ++ dc_service_sleep_in_milliseconds( ++ ctx, ++ DELAY_AFTER_PIXEL_FORMAT_CHANGE); ++ ++ result = dal_bios_parser_transmitter_control( ++ dal_adapter_service_get_bios_parser( ++ enc110->base.adapter_service), ++ &cntl); ++ ++ if (result != BP_RESULT_OK) { ++ dal_logger_write(ctx->logger, ++ LOG_MAJOR_ERROR, ++ LOG_MINOR_COMPONENT_ENCODER, ++ "%s: Failed to execute VBIOS command table!\n", ++ __func__); ++ BREAK_TO_DEBUGGER(); ++ } + } + + /* + * @brief + * Disable transmitter and its encoder + */ +-bool dce110_link_encoder_disable_output( ++void dce110_link_encoder_disable_output( + struct link_encoder *enc, + enum signal_type signal) + { + struct dce110_link_encoder *enc110 = TO_DCE110_LINK_ENC(enc); ++ struct dc_context *ctx = enc110->base.ctx; + struct bp_transmitter_control cntl = { 0 }; ++ enum bp_result result; + + if (enc110->base.connector.id == CONNECTOR_ID_EDP) { + /* have to turn off the backlight +@@ -1448,7 +1482,7 @@ bool dce110_link_encoder_disable_output( + dal_adapter_service_should_optimize( + enc110->base.adapter_service, + OF_SKIP_POWER_DOWN_INACTIVE_ENCODER)) { +- return true; ++ return; + } + /* Power-down RX and disable GPU PHY should be paired. + * Disabling PHY without powering down RX may cause +@@ -1467,10 +1501,20 @@ bool dce110_link_encoder_disable_output( + cntl.signal = signal; + cntl.connector_obj_id = enc110->base.connector; + +- dal_bios_parser_transmitter_control( ++ result = dal_bios_parser_transmitter_control( + dal_adapter_service_get_bios_parser( + enc110->base.adapter_service), &cntl); + ++ if (result != BP_RESULT_OK) { ++ dal_logger_write(ctx->logger, ++ LOG_MAJOR_ERROR, ++ LOG_MINOR_COMPONENT_ENCODER, ++ "%s: Failed to execute VBIOS command table!\n", ++ __func__); ++ BREAK_TO_DEBUGGER(); ++ return; ++ } ++ + /* disable encoder */ + if (dc_is_dp_signal(signal)) + link_encoder_disable(enc110); +@@ -1488,11 +1532,9 @@ bool dce110_link_encoder_disable_output( + * link_encoder_edp_power_control( + link_enc, false); */ + } +- +- return true; + } + +-bool dce110_link_encoder_dp_set_lane_settings( ++void dce110_link_encoder_dp_set_lane_settings( + struct link_encoder *enc, + const struct link_training_settings *link_settings) + { +@@ -1503,7 +1545,7 @@ bool dce110_link_encoder_dp_set_lane_settings( + + if (!link_settings) { + BREAK_TO_DEBUGGER(); +- return false; ++ return; + } + + cntl.action = TRANSMITTER_CONTROL_SET_VOLTAGE_AND_PREEMPASIS; +@@ -1540,8 +1582,6 @@ bool dce110_link_encoder_dp_set_lane_settings( + dal_adapter_service_get_bios_parser( + enc110->base.adapter_service), &cntl); + } +- +- return true; + } + + /* set DP PHY test and training patterns */ +@@ -1850,71 +1890,6 @@ void dce110_link_encoder_set_lcd_backlight_level( + } + } + +-/* +- * @brief +- * Configure digital transmitter and enable both encoder and transmitter +- * Actual output will be available after calling unblank() +- */ +-bool dce110_link_encoder_enable_output( +- struct link_encoder *enc, +- const struct link_settings *link_settings, +- enum engine_id engine, +- enum clock_source_id clock_source, +- enum signal_type signal, +- enum dc_color_depth color_depth, +- uint32_t pixel_clock) +-{ +- struct dce110_link_encoder *enc110 = TO_DCE110_LINK_ENC(enc); +- struct dc_context *ctx = enc110->base.ctx; +- struct bp_transmitter_control cntl = { 0 }; +- +- if (enc110->base.connector.id == CONNECTOR_ID_EDP) { +- /* power up eDP panel */ +- +- link_encoder_edp_power_control(enc110, true); +- +- link_encoder_edp_wait_for_hpd_ready(enc110, true); +- +- /* have to turn off the backlight +- * before power down eDP panel */ +- link_encoder_edp_backlight_control(enc110, true); +- } +- +- /* Enable the PHY */ +- +- /* number_of_lanes is used for pixel clock adjust, +- * but it's not passed to asic_control. +- * We need to set number of lanes manually. */ +- if (dc_is_dp_signal(signal)) +- configure_encoder(enc110, engine, link_settings); +- +- cntl.action = TRANSMITTER_CONTROL_ENABLE; +- cntl.engine_id = engine; +- cntl.transmitter = enc110->base.transmitter; +- cntl.pll_id = clock_source; +- cntl.signal = signal; +- cntl.lanes_number = link_settings->lane_count; +- cntl.hpd_sel = enc110->base.hpd_source; +- if (dc_is_dp_signal(signal)) +- cntl.pixel_clock = link_settings->link_rate +- * LINK_RATE_REF_FREQ_IN_KHZ; +- else +- cntl.pixel_clock = pixel_clock; +- cntl.color_depth = color_depth; +- +- if (DELAY_AFTER_PIXEL_FORMAT_CHANGE) +- dc_service_sleep_in_milliseconds( +- ctx, +- DELAY_AFTER_PIXEL_FORMAT_CHANGE); +- +- dal_bios_parser_transmitter_control( +- dal_adapter_service_get_bios_parser( +- enc110->base.adapter_service), +- &cntl); +- +- return true; +-} +- + void dce110_link_encoder_connect_dig_be_to_fe( + struct link_encoder *enc, + enum engine_id engine, +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h +index 334cc1f..820a7b8 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h +@@ -53,7 +53,7 @@ bool dce110_link_encoder_validate_output_with_stream( + /****************** HW programming ************************/ + + /* initialize HW */ /* why do we initialze aux in here? */ +-bool dce110_link_encoder_power_up(struct link_encoder *enc); ++void dce110_link_encoder_power_up(struct link_encoder *enc); + + /* program DIG_MODE in DIG_BE */ + /* TODO can this be combined with enable_output? */ +@@ -61,41 +61,13 @@ void dce110_link_encoder_setup( + struct link_encoder *enc, + enum signal_type signal); + +-/* enables TMDS PHY output */ +-/* TODO: still need depth or just pass in adjusted pixel clock? */ +-bool dce110_link_encoder_enable_tmds_output( +- struct link_encoder *enc, +- enum clock_source_id clock_source, +- enum dc_color_depth color_depth, +- uint32_t pixel_clock); +- +-/* enables TMDS PHY output */ +-/* TODO: still need this or just pass in adjusted pixel clock? */ +-bool dce110_link_encoder_enable_dual_link_tmds_output( +- struct link_encoder *enc, +- enum clock_source_id clock_source, +- enum dc_color_depth color_depth, +- uint32_t pixel_clock); +- +-/* enables DP PHY output */ +-bool dce110_link_encoder_enable_dp_output( +- struct link_encoder *enc, +- const struct link_settings *link_settings, +- enum clock_source_id clock_source); +- +-/* enables DP PHY output in MST mode */ +-bool dce110_link_encoder_enable_dp_mst_output( +- struct link_encoder *enc, +- const struct link_settings *link_settings, +- enum clock_source_id clock_source); +- + /* disable PHY output */ +-bool dce110_link_encoder_disable_output( ++void dce110_link_encoder_disable_output( + struct link_encoder *enc, + enum signal_type signal); + + /* set DP lane settings */ +-bool dce110_link_encoder_dp_set_lane_settings( ++void dce110_link_encoder_dp_set_lane_settings( + struct link_encoder *enc, + const struct link_training_settings *link_settings); + +@@ -112,7 +84,7 @@ void dce110_link_encoder_set_lcd_backlight_level( + struct link_encoder *enc, + uint32_t level); + +-bool dce110_link_encoder_enable_output( ++void dce110_link_encoder_enable_output( + struct link_encoder *enc, + const struct link_settings *link_settings, + enum engine_id engine, +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h +index ecc1cdc..bea3c36 100644 +--- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h ++++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h +@@ -235,7 +235,7 @@ struct core_link *link_create(const struct link_init_data *init_params); + void link_destroy(struct core_link **link); + enum dc_status core_link_enable(struct core_stream *stream); + +-enum dc_status core_link_disable(struct core_stream *stream); ++void core_link_disable(struct core_stream *stream); + + enum dc_status dc_link_validate_mode_timing( + const struct core_sink *sink, +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h +index e414021..3114fbd 100644 +--- a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h +@@ -90,10 +90,10 @@ struct hw_sequencer_funcs { + + void (*encoder_destroy)(struct link_encoder **enc); + +- bool (*encoder_power_up)( ++ void (*encoder_power_up)( + struct link_encoder *enc); + +- bool (*encoder_enable_output)( ++ void (*encoder_enable_output)( + struct link_encoder *enc, + const struct link_settings *link_settings, + enum engine_id engine, +@@ -102,7 +102,7 @@ struct hw_sequencer_funcs { + enum dc_color_depth color_depth, + uint32_t pixel_clock); + +- bool (*encoder_disable_output)( ++ void (*encoder_disable_output)( + struct link_encoder *enc, + enum signal_type signal); + +@@ -110,7 +110,7 @@ struct hw_sequencer_funcs { + struct link_encoder *enc, + const struct encoder_set_dp_phy_pattern_param *param); + +- bool (*encoder_dp_set_lane_settings)( ++ void (*encoder_dp_set_lane_settings)( + struct link_encoder *enc, + const struct link_training_settings *link_settings); + +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h b/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h +index c86c942..28d9d04 100644 +--- a/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h ++++ b/drivers/gpu/drm/amd/dal/dc/inc/link_hwss.h +@@ -40,7 +40,7 @@ enum dc_status core_link_write_dpcd( + const uint8_t *data, + uint32_t size); + +-enum dc_status dp_enable_link_phy( ++void dp_enable_link_phy( + struct core_link *link, + enum signal_type signal, + enum engine_id engine, +@@ -56,7 +56,7 @@ bool dp_set_hw_training_pattern( + struct core_link *link, + enum hw_dp_training_pattern pattern); + +-bool dp_set_hw_lane_settings( ++void dp_set_hw_lane_settings( + struct core_link *link, + const struct link_training_settings *link_settings); + +-- +2.7.4 + |