!= stream2->timing.pix_clk_khz)
                return false;
 
+       if (stream1->clamping.c_depth != stream2->clamping.c_depth)
+               return false;
+
        if (stream1->phy_pix_clk != stream2->phy_pix_clk
                        && (!dc_is_dp_signal(stream1->signal)
                        || !dc_is_dp_signal(stream2->signal)))
 
        return true;
 }
+static bool is_dp_and_hdmi_sharable(
+               struct dc_stream_state *stream1,
+               struct dc_stream_state *stream2)
+{
+       if (stream1->ctx->dc->caps.disable_dp_clk_share)
+               return false;
+
+       if (stream1->clamping.c_depth != COLOR_DEPTH_888 ||
+           stream2->clamping.c_depth != COLOR_DEPTH_888)
+       return false;
+
+       return true;
+
+}
 
 static bool is_sharable_clk_src(
        const struct pipe_ctx *pipe_with_clk_src,
        if (pipe_with_clk_src->stream->signal == SIGNAL_TYPE_VIRTUAL)
                return false;
 
-       if (dc_is_dp_signal(pipe_with_clk_src->stream->signal))
+       if (dc_is_dp_signal(pipe_with_clk_src->stream->signal) ||
+               (dc_is_dp_signal(pipe->stream->signal) &&
+               !is_dp_and_hdmi_sharable(pipe_with_clk_src->stream,
+                                    pipe->stream)))
                return false;
 
        if (dc_is_hdmi_signal(pipe_with_clk_src->stream->signal)
 
        dc->caps.i2c_speed_in_khz = 40;
        dc->caps.max_cursor_size = 128;
        dc->caps.dual_link_dvi = true;
-
+       dc->caps.disable_dp_clk_share = true;
        for (i = 0; i < pool->base.pipe_count; i++) {
                pool->base.timing_generators[i] =
                        dce100_timing_generator_create(
 
        }
 
        dc->caps.max_planes =  pool->base.pipe_count;
+       dc->caps.disable_dp_clk_share = true;
 
        if (!resource_construct(num_virtual_links, dc, &pool->base,
                        &res_create_funcs))
        }
 
        dc->caps.max_planes =  pool->base.pipe_count;
+       dc->caps.disable_dp_clk_share = true;
 
        if (!resource_construct(num_virtual_links, dc, &pool->base,
                        &res_create_funcs))
        }
 
        dc->caps.max_planes =  pool->base.pipe_count;
+       dc->caps.disable_dp_clk_share = true;
 
        if (!resource_construct(num_virtual_links, dc, &pool->base,
                        &res_create_funcs))