[bug report] drm/amd/display: Program vline interrupt on FAST update

Dan Carpenter dan.carpenter at oracle.com
Tue Sep 25 07:57:31 UTC 2018


[ This patch is from May.  I don't know why it's only complaining now.
  - dan ]

Hello SivapiriyanKumarasamy,

This is a semi-automatic email about new static checker warnings.

The patch 27e2e2077479: "drm/amd/display: Program vline interrupt on 
FAST update" from May 18, 2018, leads to the following Smatch 
complaint:

    drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:1463 commit_planes_do_stream_update()
    error: we previously assumed 'pipe_ctx->stream_res.tg' could be null (see line 1423)

drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c
  1422				if (stream_update->periodic_fn_vsync_delta &&
  1423						pipe_ctx->stream_res.tg &&
                                                ^^^^^^^^^^^^^^^^^^^^^^^
The patch adds a new check for NULL.

  1424						pipe_ctx->stream_res.tg->funcs->program_vline_interrupt)
  1425					pipe_ctx->stream_res.tg->funcs->program_vline_interrupt(
  1426						pipe_ctx->stream_res.tg, &pipe_ctx->stream->timing,
  1427						pipe_ctx->stream->periodic_fn_vsync_delta);
  1428	
  1429				if ((stream_update->hdr_static_metadata && !stream->use_dynamic_meta) ||
  1430						stream_update->vrr_infopacket ||
  1431						stream_update->vsc_infopacket) {
  1432					resource_build_info_frame(pipe_ctx);
  1433					dc->hwss.update_info_frame(pipe_ctx);
  1434				}
  1435	
  1436				if (stream_update->gamut_remap)
  1437					dc_stream_set_gamut_remap(dc, stream);
  1438	
  1439				if (stream_update->output_csc_transform)
  1440					dc_stream_program_csc_matrix(dc, stream);
  1441	
  1442				/* Full fe update*/
  1443				if (update_type == UPDATE_TYPE_FAST)
  1444					continue;
  1445	
  1446				if (stream_update->dpms_off) {
  1447					if (*stream_update->dpms_off) {
  1448						core_link_disable_stream(pipe_ctx, KEEP_ACQUIRED_RESOURCE);
  1449						dc->hwss.pplib_apply_display_requirements(
  1450							dc, dc->current_state);
  1451						notify_display_count_to_smu(dc, dc->current_state);
  1452					} else {
  1453						dc->hwss.pplib_apply_display_requirements(
  1454							dc, dc->current_state);
  1455						notify_display_count_to_smu(dc, dc->current_state);
  1456						core_link_enable_stream(dc->current_state, pipe_ctx);
  1457					}
  1458				}
  1459	
  1460	
  1461	
  1462				if (stream_update->abm_level && pipe_ctx->stream_res.abm) {
  1463					if (pipe_ctx->stream_res.tg->funcs->is_blanked) {
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^
The old code didn't check.

  1464						// if otg funcs defined check if blanked before programming
  1465						if (!pipe_ctx->stream_res.tg->funcs->is_blanked(pipe_ctx->stream_res.tg))

regards,
dan carpenter


More information about the amd-gfx mailing list