CC: [email protected] CC: [email protected] CC: [email protected] TO: Fangzhi Zuo <[email protected]> CC: Alex Deucher <[email protected]> CC: Nicholas Kazlauskas <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 58e1100fdc5990b0cc0d4beaf2562a92e621ac7d commit: 83228ebb82e4fe2e5513f35d9b0b0eded3c44cbc drm/amd/display: Add DP 2.0 HPO Stream Encoder date: 3 months ago :::::: branch date: 13 hours ago :::::: commit date: 3 months ago config: x86_64-randconfig-c007-20211128 (https://download.01.org/0day-ci/archive/20211201/[email protected]/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5162b558d8c0b542e752b037e72a69d5fd51eb1e) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=83228ebb82e4fe2e5513f35d9b0b0eded3c44cbc git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 83228ebb82e4fe2e5513f35d9b0b0eded3c44cbc # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:114:9: note: 2nd function call argument is an uninitialized value ret = cdns_mhdp_secure_mailbox_write(mhdp, header[i]); ^ ~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:426:2: warning: 4th function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] dev_err(mhdp->dev, "HDCP authentication failed (%d tries/%d)\n", ^ include/linux/dev_printk.h:112:2: note: expanded from macro 'dev_err' _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__) ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:535:8: note: Calling '_cdns_mhdp_hdcp_enable' ret = _cdns_mhdp_hdcp_enable(mhdp, content_type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:406:6: note: 'ret' declared without an initial value int ret, tries = 3; ^~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:409:2: note: Loop condition is true. Entering loop body for (i = 0; i < tries; i++) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:7: note: Assuming 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE0 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0 || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:7: note: Left side of '||' is false drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:411:7: note: Assuming 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE1 content_type == DRM_MODE_HDCP_CONTENT_TYPE1) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:3: note: Taking false branch if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0 || ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:418:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE0 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:418:3: note: Taking false branch if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:409:2: note: Loop condition is true. Entering loop body for (i = 0; i < tries; i++) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE0 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0 || ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:7: note: Left side of '||' is false drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:411:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE1 content_type == DRM_MODE_HDCP_CONTENT_TYPE1) { ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:3: note: Taking false branch if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0 || ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:418:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE0 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:418:3: note: Taking false branch if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:409:2: note: Loop condition is true. Entering loop body for (i = 0; i < tries; i++) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE0 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0 || ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:7: note: Left side of '||' is false drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:411:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE1 content_type == DRM_MODE_HDCP_CONTENT_TYPE1) { ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:410:3: note: Taking false branch if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0 || ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:418:7: note: 'content_type' is not equal to DRM_MODE_HDCP_CONTENT_TYPE0 if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { ^~~~~~~~~~~~ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:418:3: note: Taking false branch if (content_type == DRM_MODE_HDCP_CONTENT_TYPE0) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:409:2: note: Loop condition is false. Execution continues on line 426 for (i = 0; i < tries; i++) { ^ drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.c:426:2: note: 4th function call argument is an uninitialized value dev_err(mhdp->dev, "HDCP authentication failed (%d tries/%d)\n", ^ include/linux/dev_printk.h:112:2: note: expanded from macro 'dev_err' _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__) ^ ~~~~~~~~~~~ Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_apg.c:124:2: warning: Value stored to 'speakers' is never read [clang-analyzer-deadcode.DeadStores] speakers = audio_info->flags.info.ALLSPEAKERS; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_apg.c:124:2: note: Value stored to 'speakers' is never read speakers = audio_info->flags.info.ALLSPEAKERS; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_apg.c:125:2: warning: Value stored to 'channels' is never read [clang-analyzer-deadcode.DeadStores] channels = speakers_to_channels(audio_info->flags.speaker_flags).all; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_apg.c:125:2: note: Value stored to 'channels' is never read channels = speakers_to_channels(audio_info->flags.speaker_flags).all; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 5 warnings (3 in non-user code, 2 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. >> drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c:446:3: >> warning: Value stored to 'sdp_stream_enable' is never read >> [clang-analyzer-deadcode.DeadStores] sdp_stream_enable = true; ^ ~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c:446:3: note: Value stored to 'sdp_stream_enable' is never read sdp_stream_enable = true; ^ ~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c:453:3: warning: Value stored to 'sdp_stream_enable' is never read [clang-analyzer-deadcode.DeadStores] sdp_stream_enable = true; ^ ~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c:453:3: note: Value stored to 'sdp_stream_enable' is never read sdp_stream_enable = true; ^ ~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c:460:3: warning: Value stored to 'sdp_stream_enable' is never read [clang-analyzer-deadcode.DeadStores] sdp_stream_enable = true; ^ ~~~~ drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c:460:3: note: Value stored to 'sdp_stream_enable' is never read sdp_stream_enable = true; ^ ~~~~ Suppressed 7 warnings (6 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 17 warnings generated. Suppressed 17 warnings (9 in non-user code, 8 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 12 warnings generated. drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2882:6: warning: Access to field 'disable_edc_leakage_controller' results in a dereference of a null pointer (loaded from variable 'data') [clang-analyzer-core.NullDereference] if (data->disable_edc_leakage_controller) ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2914:6: note: Assuming 'data' is not equal to NULL if (data == NULL) ^~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2914:2: note: Taking false branch if (data == NULL) ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2918:2: note: Calling 'smu7_patch_voltage_workaround' smu7_patch_voltage_workaround(hwmgr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2451:6: note: Assuming 'table_info' is equal to NULL if (table_info != NULL) { ^~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2451:2: note: Taking false branch if (table_info != NULL) { ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2455:3: note: Returning without writing to 'hwmgr->backend' return 0; ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2918:2: note: Returning from 'smu7_patch_voltage_workaround' smu7_patch_voltage_workaround(hwmgr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2922:2: note: Taking false branch if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2933:6: note: Assuming field 'pp_table_version' is not equal to PP_TABLE_V1 if (hwmgr->pp_table_version == PP_TABLE_V1) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2933:2: note: Taking false branch if (hwmgr->pp_table_version == PP_TABLE_V1) { ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2936:13: note: Assuming field 'pp_table_version' is not equal to PP_TABLE_V0 } else if (hwmgr->pp_table_version == PP_TABLE_V0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2936:9: note: Taking false branch } else if (hwmgr->pp_table_version == PP_TABLE_V0) { ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2944:6: note: Assuming 'result' is not equal to 0 if (0 == result) { ^~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2944:2: note: Taking false branch if (0 == result) { ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2968:3: note: Calling 'smu7_hwmgr_backend_fini' smu7_hwmgr_backend_fini(hwmgr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2839:2: note: Null pointer value stored to field 'backend' hwmgr->backend = NULL; ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2968:3: note: Returning from 'smu7_hwmgr_backend_fini' smu7_hwmgr_backend_fini(hwmgr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2971:11: note: Calling 'smu7_update_edc_leakage_table' result = smu7_update_edc_leakage_table(hwmgr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2877:2: note: 'data' initialized to a null pointer value struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend); ^~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.c:2882:6: note: Access to field 'disable_edc_leakage_controller' results in a dereference of a null pointer (loaded from variable 'data') if (data->disable_edc_leakage_controller) ^~~~ Suppressed 11 warnings (10 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. vim +/sdp_stream_enable +446 drivers/gpu/drm/amd/amdgpu/../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c 83228ebb82e4fe Fangzhi Zuo 2021-06-09 432 83228ebb82e4fe Fangzhi Zuo 2021-06-09 433 static void dcn31_hpo_dp_stream_enc_update_dp_info_packets( 83228ebb82e4fe Fangzhi Zuo 2021-06-09 434 struct hpo_dp_stream_encoder *enc, 83228ebb82e4fe Fangzhi Zuo 2021-06-09 435 const struct encoder_info_frame *info_frame) 83228ebb82e4fe Fangzhi Zuo 2021-06-09 436 { 83228ebb82e4fe Fangzhi Zuo 2021-06-09 437 struct dcn31_hpo_dp_stream_encoder *enc3 = DCN3_1_HPO_DP_STREAM_ENC_FROM_HPO_STREAM_ENC(enc); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 438 uint32_t dmdata_packet_enabled = 0; 83228ebb82e4fe Fangzhi Zuo 2021-06-09 439 bool sdp_stream_enable = false; 83228ebb82e4fe Fangzhi Zuo 2021-06-09 440 83228ebb82e4fe Fangzhi Zuo 2021-06-09 441 if (info_frame->vsc.valid) { 83228ebb82e4fe Fangzhi Zuo 2021-06-09 442 enc->vpg->funcs->update_generic_info_packet( 83228ebb82e4fe Fangzhi Zuo 2021-06-09 443 enc->vpg, 83228ebb82e4fe Fangzhi Zuo 2021-06-09 444 0, /* packetIndex */ 83228ebb82e4fe Fangzhi Zuo 2021-06-09 445 &info_frame->vsc); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 @446 sdp_stream_enable = true; 83228ebb82e4fe Fangzhi Zuo 2021-06-09 447 } 83228ebb82e4fe Fangzhi Zuo 2021-06-09 448 if (info_frame->spd.valid) { 83228ebb82e4fe Fangzhi Zuo 2021-06-09 449 enc->vpg->funcs->update_generic_info_packet( 83228ebb82e4fe Fangzhi Zuo 2021-06-09 450 enc->vpg, 83228ebb82e4fe Fangzhi Zuo 2021-06-09 451 2, /* packetIndex */ 83228ebb82e4fe Fangzhi Zuo 2021-06-09 452 &info_frame->spd); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 453 sdp_stream_enable = true; 83228ebb82e4fe Fangzhi Zuo 2021-06-09 454 } 83228ebb82e4fe Fangzhi Zuo 2021-06-09 455 if (info_frame->hdrsmd.valid) { 83228ebb82e4fe Fangzhi Zuo 2021-06-09 456 enc->vpg->funcs->update_generic_info_packet( 83228ebb82e4fe Fangzhi Zuo 2021-06-09 457 enc->vpg, 83228ebb82e4fe Fangzhi Zuo 2021-06-09 458 3, /* packetIndex */ 83228ebb82e4fe Fangzhi Zuo 2021-06-09 459 &info_frame->hdrsmd); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 460 sdp_stream_enable = true; 83228ebb82e4fe Fangzhi Zuo 2021-06-09 461 } 83228ebb82e4fe Fangzhi Zuo 2021-06-09 462 /* enable/disable transmission of packet(s). 83228ebb82e4fe Fangzhi Zuo 2021-06-09 463 * If enabled, packet transmission begins on the next frame 83228ebb82e4fe Fangzhi Zuo 2021-06-09 464 */ 83228ebb82e4fe Fangzhi Zuo 2021-06-09 465 REG_UPDATE(DP_SYM32_ENC_SDP_GSP_CONTROL0, GSP_VIDEO_CONTINUOUS_TRANSMISSION_ENABLE, info_frame->vsc.valid); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 466 REG_UPDATE(DP_SYM32_ENC_SDP_GSP_CONTROL2, GSP_VIDEO_CONTINUOUS_TRANSMISSION_ENABLE, info_frame->spd.valid); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 467 REG_UPDATE(DP_SYM32_ENC_SDP_GSP_CONTROL3, GSP_VIDEO_CONTINUOUS_TRANSMISSION_ENABLE, info_frame->hdrsmd.valid); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 468 83228ebb82e4fe Fangzhi Zuo 2021-06-09 469 /* check if dynamic metadata packet transmission is enabled */ 83228ebb82e4fe Fangzhi Zuo 2021-06-09 470 REG_GET(DP_SYM32_ENC_SDP_METADATA_PACKET_CONTROL, 83228ebb82e4fe Fangzhi Zuo 2021-06-09 471 METADATA_PACKET_ENABLE, &dmdata_packet_enabled); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 472 83228ebb82e4fe Fangzhi Zuo 2021-06-09 473 /* Enable secondary data path */ 83228ebb82e4fe Fangzhi Zuo 2021-06-09 474 REG_UPDATE(DP_SYM32_ENC_SDP_CONTROL, 83228ebb82e4fe Fangzhi Zuo 2021-06-09 475 SDP_STREAM_ENABLE, 1); 83228ebb82e4fe Fangzhi Zuo 2021-06-09 476 } 83228ebb82e4fe Fangzhi Zuo 2021-06-09 477 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
