tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: b9f85101cad3397ef1e509909602a90e257ab9d8 commit: 20dad3813b3c15d118bda0496711eb7dff98e74a [12768/12991] drm/amd/display: Add a helper to map ODM/MPC/Multi-Plane resources config: i386-buildonly-randconfig-r006-20221010 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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/next/linux-next.git/commit/?id=20dad3813b3c15d118bda0496711eb7dff98e74a git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 20dad3813b3c15d118bda0496711eb7dff98e74a # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash 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/dml/dcn32/dcn32_fpu.c:1375:6: warning: no previous prototype for function 'dcn32_split_stream_for_mpc_or_odm' [-Wmissing-prototypes] bool dcn32_split_stream_for_mpc_or_odm( ^ drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/dcn32_fpu.c:1375:1: note: declare 'static' if the function is not intended to be used outside of this translation unit bool dcn32_split_stream_for_mpc_or_odm( ^ static 1 warning generated. vim +/dcn32_split_stream_for_mpc_or_odm +1375 drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/dcn32_fpu.c 1374 > 1375 bool dcn32_split_stream_for_mpc_or_odm( 1376 const struct dc *dc, 1377 struct resource_context *res_ctx, 1378 struct pipe_ctx *pri_pipe, 1379 struct pipe_ctx *sec_pipe, 1380 bool odm) 1381 { 1382 int pipe_idx = sec_pipe->pipe_idx; 1383 const struct resource_pool *pool = dc->res_pool; 1384 1385 DC_LOGGER_INIT(dc->ctx->logger); 1386 1387 if (odm && pri_pipe->plane_state) { 1388 /* ODM + window MPO, where MPO window is on left half only */ 1389 if (pri_pipe->plane_state->clip_rect.x + pri_pipe->plane_state->clip_rect.width <= 1390 pri_pipe->stream->src.x + pri_pipe->stream->src.width/2) { 1391 1392 DC_LOG_SCALER("%s - ODM + window MPO(left). pri_pipe:%d\n", 1393 __func__, 1394 pri_pipe->pipe_idx); 1395 return true; 1396 } 1397 1398 /* ODM + window MPO, where MPO window is on right half only */ 1399 if (pri_pipe->plane_state->clip_rect.x >= pri_pipe->stream->src.x + pri_pipe->stream->src.width/2) { 1400 1401 DC_LOG_SCALER("%s - ODM + window MPO(right). pri_pipe:%d\n", 1402 __func__, 1403 pri_pipe->pipe_idx); 1404 return true; 1405 } 1406 } 1407 1408 *sec_pipe = *pri_pipe; 1409 1410 sec_pipe->pipe_idx = pipe_idx; 1411 sec_pipe->plane_res.mi = pool->mis[pipe_idx]; 1412 sec_pipe->plane_res.hubp = pool->hubps[pipe_idx]; 1413 sec_pipe->plane_res.ipp = pool->ipps[pipe_idx]; 1414 sec_pipe->plane_res.xfm = pool->transforms[pipe_idx]; 1415 sec_pipe->plane_res.dpp = pool->dpps[pipe_idx]; 1416 sec_pipe->plane_res.mpcc_inst = pool->dpps[pipe_idx]->inst; 1417 sec_pipe->stream_res.dsc = NULL; 1418 if (odm) { 1419 if (pri_pipe->next_odm_pipe) { 1420 ASSERT(pri_pipe->next_odm_pipe != sec_pipe); 1421 sec_pipe->next_odm_pipe = pri_pipe->next_odm_pipe; 1422 sec_pipe->next_odm_pipe->prev_odm_pipe = sec_pipe; 1423 } 1424 if (pri_pipe->top_pipe && pri_pipe->top_pipe->next_odm_pipe) { 1425 pri_pipe->top_pipe->next_odm_pipe->bottom_pipe = sec_pipe; 1426 sec_pipe->top_pipe = pri_pipe->top_pipe->next_odm_pipe; 1427 } 1428 if (pri_pipe->bottom_pipe && pri_pipe->bottom_pipe->next_odm_pipe) { 1429 pri_pipe->bottom_pipe->next_odm_pipe->top_pipe = sec_pipe; 1430 sec_pipe->bottom_pipe = pri_pipe->bottom_pipe->next_odm_pipe; 1431 } 1432 pri_pipe->next_odm_pipe = sec_pipe; 1433 sec_pipe->prev_odm_pipe = pri_pipe; 1434 ASSERT(sec_pipe->top_pipe == NULL); 1435 1436 if (!sec_pipe->top_pipe) 1437 sec_pipe->stream_res.opp = pool->opps[pipe_idx]; 1438 else 1439 sec_pipe->stream_res.opp = sec_pipe->top_pipe->stream_res.opp; 1440 if (sec_pipe->stream->timing.flags.DSC == 1) { 1441 dcn20_acquire_dsc(dc, res_ctx, &sec_pipe->stream_res.dsc, pipe_idx); 1442 ASSERT(sec_pipe->stream_res.dsc); 1443 if (sec_pipe->stream_res.dsc == NULL) 1444 return false; 1445 } 1446 } else { 1447 if (pri_pipe->bottom_pipe) { 1448 ASSERT(pri_pipe->bottom_pipe != sec_pipe); 1449 sec_pipe->bottom_pipe = pri_pipe->bottom_pipe; 1450 sec_pipe->bottom_pipe->top_pipe = sec_pipe; 1451 } 1452 pri_pipe->bottom_pipe = sec_pipe; 1453 sec_pipe->top_pipe = pri_pipe; 1454 1455 ASSERT(pri_pipe->plane_state); 1456 } 1457 1458 return true; 1459 } 1460 -- 0-DAY CI Kernel Test Service https://01.org/lkp