OSDN Git Service

drm/amd/display: Defer cursor update around VUPDATE for all ASIC
[uclinux-h8/linux.git] / drivers / gpu / drm / amd / display / dc / core / dc_stream.c
index 6ddbb00..8c20e9e 100644 (file)
@@ -239,24 +239,24 @@ static void delay_cursor_until_vupdate(struct pipe_ctx *pipe_ctx, struct dc *dc)
        struct dc_stream_state *stream = pipe_ctx->stream;
        unsigned int us_per_line;
 
-       if (stream->ctx->asic_id.chip_family == FAMILY_RV &&
-                       ASICREV_IS_RAVEN(stream->ctx->asic_id.hw_internal_rev)) {
+       if (!dc->hwss.get_vupdate_offset_from_vsync)
+               return;
 
-               vupdate_line = dc->hwss.get_vupdate_offset_from_vsync(pipe_ctx);
-               if (!dc_stream_get_crtc_position(dc, &stream, 1, &vpos, &nvpos))
-                       return;
+       vupdate_line = dc->hwss.get_vupdate_offset_from_vsync(pipe_ctx);
+       if (!dc_stream_get_crtc_position(dc, &stream, 1, &vpos, &nvpos))
+               return;
 
-               if (vpos >= vupdate_line)
-                       return;
+       if (vpos >= vupdate_line)
+               return;
 
-               us_per_line = stream->timing.h_total * 10000 / stream->timing.pix_clk_100hz;
-               lines_to_vupdate = vupdate_line - vpos;
-               us_to_vupdate = lines_to_vupdate * us_per_line;
+       us_per_line =
+               stream->timing.h_total * 10000 / stream->timing.pix_clk_100hz;
+       lines_to_vupdate = vupdate_line - vpos;
+       us_to_vupdate = lines_to_vupdate * us_per_line;
 
-               /* 70 us is a conservative estimate of cursor update time*/
-               if (us_to_vupdate < 70)
-                       udelay(us_to_vupdate);
-       }
+       /* 70 us is a conservative estimate of cursor update time*/
+       if (us_to_vupdate < 70)
+               udelay(us_to_vupdate);
 #endif
 }