[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