{
        return link->dc->link_srv->dp_trace_get_link_loss_count(link);
 }
+
+struct dc_sink *dc_link_add_remote_sink(
+               struct dc_link *link,
+               const uint8_t *edid,
+               int len,
+               struct dc_sink_init_data *init_data)
+{
+       return link->dc->link_srv->add_remote_sink(link, edid, len, init_data);
+}
+
+void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
+{
+       link->dc->link_srv->remove_remote_sink(link, sink);
+}
+
 
 };
 
 struct link_service {
+       struct dc_sink *(*add_remote_sink)(
+                       struct dc_link *link,
+                       const uint8_t *edid,
+                       int len,
+                       struct dc_sink_init_data *init_data);
+       void (*remove_remote_sink)(struct dc_link *link, struct dc_sink *sink);
        void (*dp_handle_automated_test)(struct dc_link *link);
        bool (*dp_set_test_pattern)(
                        struct dc_link *link,
 
        return true;
 }
 
-struct dc_sink *dc_link_add_remote_sink(
+struct dc_sink *link_add_remote_sink(
                struct dc_link *link,
                const uint8_t *edid,
                int len,
        return NULL;
 }
 
-void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
+void link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
 {
        int i;
 
 
 #ifndef __DC_LINK_DETECTION_H__
 #define __DC_LINK_DETECTION_H__
 #include "link.h"
+struct dc_sink *link_add_remote_sink(
+               struct dc_link *link,
+               const uint8_t *edid,
+               int len,
+               struct dc_sink_init_data *init_data);
+void link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink);
 
 #endif /* __DC_LINK_DETECTION_H__ */
 
        }
 }
 
-static void dc_log_vcp_x_y(const struct dc_link *link, struct fixed31_32 avg_time_slots_per_mtp)
+static void log_vcp_x_y(const struct dc_link *link, struct fixed31_32 avg_time_slots_per_mtp)
 {
        const uint32_t VCP_Y_PRECISION = 1000;
        uint64_t vcp_x, vcp_y;
        pbn = get_pbn_from_timing(pipe_ctx);
        avg_time_slots_per_mtp = dc_fixpt_div(pbn, pbn_per_slot);
 
-       dc_log_vcp_x_y(link, avg_time_slots_per_mtp);
+       log_vcp_x_y(link, avg_time_slots_per_mtp);
 
        if (link_hwss->ext.set_throttled_vcp_size)
                link_hwss->ext.set_throttled_vcp_size(pipe_ctx, avg_time_slots_per_mtp);
        if (!allocate) {
                avg_time_slots_per_mtp = dc_fixpt_from_int(0);
 
-               dc_log_vcp_x_y(link, avg_time_slots_per_mtp);
+               log_vcp_x_y(link, avg_time_slots_per_mtp);
 
                if (link_hwss->ext.set_throttled_vcp_size)
                        link_hwss->ext.set_throttled_vcp_size(pipe_ctx,
                        DP_128b_132b_ENCODING) {
                avg_time_slots_per_mtp = link_calculate_sst_avg_time_slots_per_mtp(stream, link);
 
-               dc_log_vcp_x_y(link, avg_time_slots_per_mtp);
+               log_vcp_x_y(link, avg_time_slots_per_mtp);
 
                if (link_hwss->ext.set_throttled_vcp_size)
                        link_hwss->ext.set_throttled_vcp_size(pipe_ctx,
 
  * This file owns the creation/destruction of link structure.
  */
 #include "link_factory.h"
+#include "link_detection.h"
 #include "accessories/link_dp_cts.h"
 #include "accessories/link_dp_trace.h"
 #include "accessories/link_fpga.h"
                __VA_ARGS__)
 
 static struct link_service link_srv = {
+       .add_remote_sink = link_add_remote_sink,
+       .remove_remote_sink = link_remove_remote_sink,
        .dp_handle_automated_test = dp_handle_automated_test,
        .dp_set_test_pattern = dp_set_test_pattern,
        .dp_set_preferred_link_settings = dp_set_preferred_link_settings,
        return channel;
 }
 
-static bool dc_link_construct_phy(struct dc_link *link,
+static bool construct_phy(struct dc_link *link,
                              const struct link_init_data *init_params)
 {
        uint8_t i;
        return false;
 }
 
-static bool dc_link_construct_dpia(struct dc_link *link,
+static bool construct_dpia(struct dc_link *link,
                              const struct link_init_data *init_params)
 {
        struct ddc_service_init_data ddc_service_init_data = { 0 };
 {
        /* Handle dpia case */
        if (init_params->is_dpia_link == true)
-               return dc_link_construct_dpia(link, init_params);
+               return construct_dpia(link, init_params);
        else
-               return dc_link_construct_phy(link, init_params);
+               return construct_phy(link, init_params);
 }
 
 struct dc_link *link_create(const struct link_init_data *init_params)