tree: https://gitlab.freedesktop.org/agd5f/linux.git drm-next head: 34d84636e5e09521d031863a01f9b9fb22ffa875 commit: 6be153dc8c88409e63309bcec300b03cd7bce9a7 [75/81] drm/amd/display: Convert documentation to a kernel-doc config: sparc-allyesconfig compiler: sparc64-linux-gcc (GCC) 12.1.0 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 git remote add agd5f https://gitlab.freedesktop.org/agd5f/linux.git git fetch --no-tags agd5f drm-next git checkout 6be153dc8c88409e63309bcec300b03cd7bce9a7 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc SHELL=/bin/bash drivers/gpu/drm/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.c:615: warning: expecting prototype for setup_subvp_dmub_command(). Prototype was for populate_subvp_cmd_pipe_info() instead drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.c:700: warning: Function parameter or member 'enable' not described in 'dc_dmub_setup_subvp_dmub_command' drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.c:700: warning: Excess function parameter 'cmd' description in 'dc_dmub_setup_subvp_dmub_command' vim +615 drivers/gpu/drm/amd/amdgpu/../display/dc/dc_dmub_srv.c 85f4bc0c333ceed Alvin Lee 2022-05-02 596 85f4bc0c333ceed Alvin Lee 2022-05-02 597 /** 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 598 * setup_subvp_dmub_command - Helper to populate the SubVP pipe info for the DMUB subvp command 85f4bc0c333ceed Alvin Lee 2022-05-02 599 * 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 600 * @dc: [in] current dc state 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 601 * @context: [in] new dc state 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 602 * @cmd: [in] DMUB cmd to be populated with SubVP info 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 603 * @subvp_pipe: [in] pipe_ctx for the SubVP pipe 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 604 * @cmd_pipe_index: [in] index for the pipe array in DMCUB SubVP cmd 85f4bc0c333ceed Alvin Lee 2022-05-02 605 * 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 606 * Populate the DMCUB SubVP command with SubVP pipe info. All the information 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 607 * required to calculate the microschedule for the SubVP pipe is stored in the 6be153dc8c88409 Rodrigo Siqueira 2022-10-20 608 * pipe_data of the DMCUB SubVP command. 85f4bc0c333ceed Alvin Lee 2022-05-02 609 */ 85f4bc0c333ceed Alvin Lee 2022-05-02 610 static void populate_subvp_cmd_pipe_info(struct dc *dc, 85f4bc0c333ceed Alvin Lee 2022-05-02 611 struct dc_state *context, 85f4bc0c333ceed Alvin Lee 2022-05-02 612 union dmub_rb_cmd *cmd, 85f4bc0c333ceed Alvin Lee 2022-05-02 613 struct pipe_ctx *subvp_pipe, 85f4bc0c333ceed Alvin Lee 2022-05-02 614 uint8_t cmd_pipe_index) 85f4bc0c333ceed Alvin Lee 2022-05-02 @615 { 85f4bc0c333ceed Alvin Lee 2022-05-02 616 uint32_t j; 85f4bc0c333ceed Alvin Lee 2022-05-02 617 struct dmub_cmd_fw_assisted_mclk_switch_pipe_data_v2 *pipe_data = 85f4bc0c333ceed Alvin Lee 2022-05-02 618 &cmd->fw_assisted_mclk_switch_v2.config_data.pipe_data[cmd_pipe_index]; 85f4bc0c333ceed Alvin Lee 2022-05-02 619 struct dc_crtc_timing *main_timing = &subvp_pipe->stream->timing; 85f4bc0c333ceed Alvin Lee 2022-05-02 620 struct dc_crtc_timing *phantom_timing = &subvp_pipe->stream->mall_stream_config.paired_stream->timing; 7857825ba4671d0 Alvin Lee 2022-08-15 621 uint32_t out_num_stream, out_den_stream, out_num_plane, out_den_plane, out_num, out_den; 85f4bc0c333ceed Alvin Lee 2022-05-02 622 85f4bc0c333ceed Alvin Lee 2022-05-02 623 pipe_data->mode = SUBVP; 85f4bc0c333ceed Alvin Lee 2022-05-02 624 pipe_data->pipe_config.subvp_data.pix_clk_100hz = subvp_pipe->stream->timing.pix_clk_100hz; 85f4bc0c333ceed Alvin Lee 2022-05-02 625 pipe_data->pipe_config.subvp_data.htotal = subvp_pipe->stream->timing.h_total; 85f4bc0c333ceed Alvin Lee 2022-05-02 626 pipe_data->pipe_config.subvp_data.vtotal = subvp_pipe->stream->timing.v_total; 85f4bc0c333ceed Alvin Lee 2022-05-02 627 pipe_data->pipe_config.subvp_data.main_vblank_start = 85f4bc0c333ceed Alvin Lee 2022-05-02 628 main_timing->v_total - main_timing->v_front_porch; 85f4bc0c333ceed Alvin Lee 2022-05-02 629 pipe_data->pipe_config.subvp_data.main_vblank_end = 85f4bc0c333ceed Alvin Lee 2022-05-02 630 main_timing->v_total - main_timing->v_front_porch - main_timing->v_addressable; 85f4bc0c333ceed Alvin Lee 2022-05-02 631 pipe_data->pipe_config.subvp_data.mall_region_lines = phantom_timing->v_addressable; 85f4bc0c333ceed Alvin Lee 2022-05-02 632 pipe_data->pipe_config.subvp_data.main_pipe_index = subvp_pipe->pipe_idx; 9f5171ce733a694 Alvin Lee 2022-07-21 633 pipe_data->pipe_config.subvp_data.is_drr = subvp_pipe->stream->ignore_msa_timing_param; 85f4bc0c333ceed Alvin Lee 2022-05-02 634 fbe43dcd1aad7db Alvin Lee 2022-08-04 635 /* Calculate the scaling factor from the src and dst height. fbe43dcd1aad7db Alvin Lee 2022-08-04 636 * e.g. If 3840x2160 being downscaled to 1920x1080, the scaling factor is 1/2. fbe43dcd1aad7db Alvin Lee 2022-08-04 637 * Reduce the fraction 1080/2160 = 1/2 for the "scaling factor" 7857825ba4671d0 Alvin Lee 2022-08-15 638 * 7857825ba4671d0 Alvin Lee 2022-08-15 639 * Make sure to combine stream and plane scaling together. fbe43dcd1aad7db Alvin Lee 2022-08-04 640 */ 7857825ba4671d0 Alvin Lee 2022-08-15 641 reduce_fraction(subvp_pipe->stream->src.height, subvp_pipe->stream->dst.height, 7857825ba4671d0 Alvin Lee 2022-08-15 642 &out_num_stream, &out_den_stream); 7857825ba4671d0 Alvin Lee 2022-08-15 643 reduce_fraction(subvp_pipe->plane_state->src_rect.height, subvp_pipe->plane_state->dst_rect.height, 7857825ba4671d0 Alvin Lee 2022-08-15 644 &out_num_plane, &out_den_plane); 7857825ba4671d0 Alvin Lee 2022-08-15 645 reduce_fraction(out_num_stream * out_num_plane, out_den_stream * out_den_plane, &out_num, &out_den); 74f4e84dc42bc80 Alvin Lee 2022-08-08 646 pipe_data->pipe_config.subvp_data.scale_factor_numerator = out_num; 74f4e84dc42bc80 Alvin Lee 2022-08-08 647 pipe_data->pipe_config.subvp_data.scale_factor_denominator = out_den; fbe43dcd1aad7db Alvin Lee 2022-08-04 648 85f4bc0c333ceed Alvin Lee 2022-05-02 649 // Prefetch lines is equal to VACTIVE + BP + VSYNC 85f4bc0c333ceed Alvin Lee 2022-05-02 650 pipe_data->pipe_config.subvp_data.prefetch_lines = 85f4bc0c333ceed Alvin Lee 2022-05-02 651 phantom_timing->v_total - phantom_timing->v_front_porch; 85f4bc0c333ceed Alvin Lee 2022-05-02 652 85f4bc0c333ceed Alvin Lee 2022-05-02 653 // Round up 85f4bc0c333ceed Alvin Lee 2022-05-02 654 pipe_data->pipe_config.subvp_data.prefetch_to_mall_start_lines = 410e747401a3121 Alvin Lee 2022-08-06 655 div64_u64(((uint64_t)dc->caps.subvp_prefetch_end_to_mall_start_us * ((uint64_t)phantom_timing->pix_clk_100hz * 100) + 410e747401a3121 Alvin Lee 2022-08-06 656 ((uint64_t)phantom_timing->h_total * 1000000 - 1)), ((uint64_t)phantom_timing->h_total * 1000000)); 85f4bc0c333ceed Alvin Lee 2022-05-02 657 pipe_data->pipe_config.subvp_data.processing_delay_lines = 410e747401a3121 Alvin Lee 2022-08-06 658 div64_u64(((uint64_t)(dc->caps.subvp_fw_processing_delay_us) * ((uint64_t)phantom_timing->pix_clk_100hz * 100) + 410e747401a3121 Alvin Lee 2022-08-06 659 ((uint64_t)phantom_timing->h_total * 1000000 - 1)), ((uint64_t)phantom_timing->h_total * 1000000)); b0d6de32e30c635 Alvin Lee 2022-09-01 660 b0d6de32e30c635 Alvin Lee 2022-09-01 661 if (subvp_pipe->bottom_pipe) { b0d6de32e30c635 Alvin Lee 2022-09-01 662 pipe_data->pipe_config.subvp_data.main_split_pipe_index = subvp_pipe->bottom_pipe->pipe_idx; b0d6de32e30c635 Alvin Lee 2022-09-01 663 } else if (subvp_pipe->next_odm_pipe) { b0d6de32e30c635 Alvin Lee 2022-09-01 664 pipe_data->pipe_config.subvp_data.main_split_pipe_index = subvp_pipe->next_odm_pipe->pipe_idx; b0d6de32e30c635 Alvin Lee 2022-09-01 665 } else { b0d6de32e30c635 Alvin Lee 2022-09-01 666 pipe_data->pipe_config.subvp_data.main_split_pipe_index = 0; b0d6de32e30c635 Alvin Lee 2022-09-01 667 } b0d6de32e30c635 Alvin Lee 2022-09-01 668 85f4bc0c333ceed Alvin Lee 2022-05-02 669 // Find phantom pipe index based on phantom stream 85f4bc0c333ceed Alvin Lee 2022-05-02 670 for (j = 0; j < dc->res_pool->pipe_count; j++) { 85f4bc0c333ceed Alvin Lee 2022-05-02 671 struct pipe_ctx *phantom_pipe = &context->res_ctx.pipe_ctx[j]; 85f4bc0c333ceed Alvin Lee 2022-05-02 672 85f4bc0c333ceed Alvin Lee 2022-05-02 673 if (phantom_pipe->stream == subvp_pipe->stream->mall_stream_config.paired_stream) { 85f4bc0c333ceed Alvin Lee 2022-05-02 674 pipe_data->pipe_config.subvp_data.phantom_pipe_index = phantom_pipe->pipe_idx; b0d6de32e30c635 Alvin Lee 2022-09-01 675 if (phantom_pipe->bottom_pipe) { b0d6de32e30c635 Alvin Lee 2022-09-01 676 pipe_data->pipe_config.subvp_data.phantom_split_pipe_index = phantom_pipe->bottom_pipe->pipe_idx; b0d6de32e30c635 Alvin Lee 2022-09-01 677 } else if (phantom_pipe->next_odm_pipe) { b0d6de32e30c635 Alvin Lee 2022-09-01 678 pipe_data->pipe_config.subvp_data.phantom_split_pipe_index = phantom_pipe->next_odm_pipe->pipe_idx; b0d6de32e30c635 Alvin Lee 2022-09-01 679 } else { b0d6de32e30c635 Alvin Lee 2022-09-01 680 pipe_data->pipe_config.subvp_data.phantom_split_pipe_index = 0; b0d6de32e30c635 Alvin Lee 2022-09-01 681 } 85f4bc0c333ceed Alvin Lee 2022-05-02 682 break; 85f4bc0c333ceed Alvin Lee 2022-05-02 683 } 85f4bc0c333ceed Alvin Lee 2022-05-02 684 } 85f4bc0c333ceed Alvin Lee 2022-05-02 685 } 85f4bc0c333ceed Alvin Lee 2022-05-02 686 :::::: The code at line 615 was first introduced by commit :::::: 85f4bc0c333ceed24cbc9f69a2a77fab1ae3d4d1 drm/amd/display: Add SubVP required code :::::: TO: Alvin Lee :::::: CC: Alex Deucher -- 0-DAY CI Kernel Test Service https://01.org/lkp