Messages in this thread | | | Date | Fri, 26 Nov 2021 08:05:51 +0800 | From | kernel test robot <> | Subject | drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 8ced7ca3570333998ad2088d5a6275701970e28e commit: f01ee019586220c86f238263a4fbde6e72085e11 drm/amd/display: Add DP 2.0 SST DC Support date: 3 months ago config: powerpc64-buildonly-randconfig-r004-20211026 (https://download.01.org/0day-ci/archive/20211126/202111260725.FgSyDs9i-lkp@intel.com/config) compiler: powerpc64-linux-gcc (GCC) 11.2.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 # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f01ee019586220c86f238263a4fbde6e72085e11 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout f01ee019586220c86f238263a4fbde6e72085e11 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload' [-Wmissing-prototypes] 3187 | enum dc_status dc_link_update_sst_payload(struct pipe_ctx *pipe_ctx, bool allocate) | ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/dc_link_update_sst_payload +3187 drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c
3133 3134 static void update_mst_stream_alloc_table( 3135 struct dc_link *link, 3136 struct stream_encoder *stream_enc, 3137 const struct dp_mst_stream_allocation_table *proposed_table) 3138 { 3139 struct link_mst_stream_allocation work_table[MAX_CONTROLLER_NUM] = { 3140 { 0 } }; 3141 struct link_mst_stream_allocation *dc_alloc; 3142 3143 int i; 3144 int j; 3145 3146 /* if DRM proposed_table has more than one new payload */ 3147 ASSERT(proposed_table->stream_count - 3148 link->mst_stream_alloc_table.stream_count < 2); 3149 3150 /* copy proposed_table to link, add stream encoder */ 3151 for (i = 0; i < proposed_table->stream_count; i++) { 3152 3153 for (j = 0; j < link->mst_stream_alloc_table.stream_count; j++) { 3154 dc_alloc = 3155 &link->mst_stream_alloc_table.stream_allocations[j]; 3156 3157 if (dc_alloc->vcp_id == 3158 proposed_table->stream_allocations[i].vcp_id) { 3159 3160 work_table[i] = *dc_alloc; 3161 work_table[i].slot_count = proposed_table->stream_allocations[i].slot_count; 3162 break; /* exit j loop */ 3163 } 3164 } 3165 3166 /* new vcp_id */ 3167 if (j == link->mst_stream_alloc_table.stream_count) { 3168 work_table[i].vcp_id = 3169 proposed_table->stream_allocations[i].vcp_id; 3170 work_table[i].slot_count = 3171 proposed_table->stream_allocations[i].slot_count; 3172 work_table[i].stream_enc = stream_enc; 3173 } 3174 } 3175 3176 /* update link->mst_stream_alloc_table with work_table */ 3177 link->mst_stream_alloc_table.stream_count = 3178 proposed_table->stream_count; 3179 for (i = 0; i < MAX_CONTROLLER_NUM; i++) 3180 link->mst_stream_alloc_table.stream_allocations[i] = 3181 work_table[i]; 3182 } 3183 #if defined(CONFIG_DRM_AMD_DC_DCN) 3184 /* 3185 * Payload allocation/deallocation for SST introduced in DP2.0 3186 */ > 3187 enum dc_status dc_link_update_sst_payload(struct pipe_ctx *pipe_ctx, bool allocate) 3188 { 3189 struct dc_stream_state *stream = pipe_ctx->stream; 3190 struct dc_link *link = stream->link; 3191 struct hpo_dp_link_encoder *hpo_dp_link_encoder = link->hpo_dp_link_enc; 3192 struct hpo_dp_stream_encoder *hpo_dp_stream_encoder = pipe_ctx->stream_res.hpo_dp_stream_enc; 3193 struct link_mst_stream_allocation_table proposed_table = {0}; 3194 struct fixed31_32 avg_time_slots_per_mtp; 3195 DC_LOGGER_INIT(link->ctx->logger); 3196 3197 /* slot X.Y for SST payload deallocate */ 3198 if (!allocate) { 3199 avg_time_slots_per_mtp = dc_fixpt_from_int(0); 3200 3201 DC_LOG_DP2("SST Update Payload: set_throttled_vcp_size slot X.Y for SST stream" 3202 "X: %d " 3203 "Y: %d", 3204 dc_fixpt_floor( 3205 avg_time_slots_per_mtp), 3206 dc_fixpt_ceil( 3207 dc_fixpt_shl( 3208 dc_fixpt_sub_int( 3209 avg_time_slots_per_mtp, 3210 dc_fixpt_floor( 3211 avg_time_slots_per_mtp)), 3212 26))); 3213 3214 hpo_dp_link_encoder->funcs->set_throttled_vcp_size( 3215 hpo_dp_link_encoder, 3216 hpo_dp_stream_encoder->inst, 3217 avg_time_slots_per_mtp); 3218 } 3219 3220 /* calculate VC payload and update branch with new payload allocation table*/ 3221 if (!dpcd_write_128b_132b_sst_payload_allocation_table( 3222 stream, 3223 link, 3224 &proposed_table, 3225 allocate)) { 3226 DC_LOG_ERROR("SST Update Payload: Failed to update " 3227 "allocation table for " 3228 "pipe idx: %d\n", 3229 pipe_ctx->pipe_idx); 3230 } 3231 3232 proposed_table.stream_allocations[0].hpo_dp_stream_enc = hpo_dp_stream_encoder; 3233 3234 ASSERT(proposed_table.stream_count == 1); 3235 3236 //TODO - DP2.0 Logging: Instead of hpo_dp_stream_enc pointer, log instance id 3237 DC_LOG_DP2("SST Update Payload: hpo_dp_stream_enc: %p " 3238 "vcp_id: %d " 3239 "slot_count: %d\n", 3240 (void *) proposed_table.stream_allocations[0].hpo_dp_stream_enc, 3241 proposed_table.stream_allocations[0].vcp_id, 3242 proposed_table.stream_allocations[0].slot_count); 3243 3244 /* program DP source TX for payload */ 3245 hpo_dp_link_encoder->funcs->update_stream_allocation_table( 3246 hpo_dp_link_encoder, 3247 &proposed_table); 3248 3249 /* poll for ACT handled */ 3250 if (!dpcd_poll_for_allocation_change_trigger(link)) { 3251 // Failures will result in blackscreen and errors logged 3252 BREAK_TO_DEBUGGER(); 3253 } 3254 3255 /* slot X.Y for SST payload allocate */ 3256 if (allocate) { 3257 avg_time_slots_per_mtp = calculate_sst_avg_time_slots_per_mtp(stream, link); 3258 3259 DC_LOG_DP2("SST Update Payload: " 3260 "slot.X: %d " 3261 "slot.Y: %d", 3262 dc_fixpt_floor( 3263 avg_time_slots_per_mtp), 3264 dc_fixpt_ceil( 3265 dc_fixpt_shl( 3266 dc_fixpt_sub_int( 3267 avg_time_slots_per_mtp, 3268 dc_fixpt_floor( 3269 avg_time_slots_per_mtp)), 3270 26))); 3271 3272 hpo_dp_link_encoder->funcs->set_throttled_vcp_size( 3273 hpo_dp_link_encoder, 3274 hpo_dp_stream_encoder->inst, 3275 avg_time_slots_per_mtp); 3276 } 3277 3278 /* Always return DC_OK. 3279 * If part of sequence fails, log failure(s) and show blackscreen 3280 */ 3281 return DC_OK; 3282 } 3283 #endif 3284
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
| |