|
@@ -384,6 +384,71 @@ void dc_stream_set_static_screen_events(struct dc *dc,
|
|
dc->hwss.set_static_screen_control(pipes_affected, num_pipes_affected, events);
|
|
dc->hwss.set_static_screen_control(pipes_affected, num_pipes_affected, events);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void dc_link_set_drive_settings(struct dc *dc,
|
|
|
|
+ struct link_training_settings *lt_settings,
|
|
|
|
+ const struct dc_link *link)
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < dc->link_count; i++) {
|
|
|
|
+ if (dc->links[i] == link)
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (i >= dc->link_count)
|
|
|
|
+ ASSERT_CRITICAL(false);
|
|
|
|
+
|
|
|
|
+ dc_link_dp_set_drive_settings(dc->links[i], lt_settings);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void dc_link_perform_link_training(struct dc *dc,
|
|
|
|
+ struct dc_link_settings *link_setting,
|
|
|
|
+ bool skip_video_pattern)
|
|
|
|
+{
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < dc->link_count; i++)
|
|
|
|
+ dc_link_dp_perform_link_training(
|
|
|
|
+ dc->links[i],
|
|
|
|
+ link_setting,
|
|
|
|
+ skip_video_pattern);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void dc_link_set_preferred_link_settings(struct dc *dc,
|
|
|
|
+ struct dc_link_settings *link_setting,
|
|
|
|
+ struct dc_link *link)
|
|
|
|
+{
|
|
|
|
+ link->preferred_link_setting = *link_setting;
|
|
|
|
+ dp_retrain_link_dp_test(link, link_setting, false);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void dc_link_enable_hpd(const struct dc_link *link)
|
|
|
|
+{
|
|
|
|
+ dc_link_dp_enable_hpd(link);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void dc_link_disable_hpd(const struct dc_link *link)
|
|
|
|
+{
|
|
|
|
+ dc_link_dp_disable_hpd(link);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+void dc_link_set_test_pattern(struct dc_link *link,
|
|
|
|
+ enum dp_test_pattern test_pattern,
|
|
|
|
+ const struct link_training_settings *p_link_settings,
|
|
|
|
+ const unsigned char *p_custom_pattern,
|
|
|
|
+ unsigned int cust_pattern_size)
|
|
|
|
+{
|
|
|
|
+ if (link != NULL)
|
|
|
|
+ dc_link_dp_set_test_pattern(
|
|
|
|
+ link,
|
|
|
|
+ test_pattern,
|
|
|
|
+ p_link_settings,
|
|
|
|
+ p_custom_pattern,
|
|
|
|
+ cust_pattern_size);
|
|
|
|
+}
|
|
|
|
+
|
|
static void destruct(struct dc *dc)
|
|
static void destruct(struct dc *dc)
|
|
{
|
|
{
|
|
dc_release_state(dc->current_state);
|
|
dc_release_state(dc->current_state);
|