Hi Dmitry, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm/drm-next] [also build test WARNING on v5.17-rc2 next-20220203] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Dmitry-Baryshkov/drm-msm-dpu-cleanup-dpu-encoder-code/20220203-162806 base: git://anongit.freedesktop.org/drm/drm drm-next config: arc-randconfig-r043-20220130 (https://download.01.org/0day-ci/archive/20220203/202202031835.R3GWD0oa-lkp(a)intel.com/config) compiler: arc-elf-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://github.com/0day-ci/linux/commit/4661d4d24ba160d3be73c1760f78cddcdc113004 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Dmitry-Baryshkov/drm-msm-dpu-cleanup-dpu-encoder-code/20220203-162806 git checkout 4661d4d24ba160d3be73c1760f78cddcdc113004 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/gpu/drm/msm/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function 'dpu_encoder_virt_atomic_check': >> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:572:40: warning: variable 'mode' set but not used [-Wunused-but-set-variable] 572 | const struct drm_display_mode *mode; | ^~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function 'dpu_encoder_virt_enable': drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1119:33: warning: variable 'priv' set but not used [-Wunused-but-set-variable] 1119 | struct msm_drm_private *priv; | ^~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function 'dpu_encoder_virt_disable': drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1156:33: warning: variable 'priv' set but not used [-Wunused-but-set-variable] 1156 | struct msm_drm_private *priv; | ^~~~ vim +/mode +572 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 521 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 522 static struct msm_display_topology dpu_encoder_get_topology( 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 523 struct dpu_encoder_virt *dpu_enc, 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 524 struct dpu_kms *dpu_kms, 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 525 struct drm_display_mode *mode) 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 526 { 5fddd4f5db8730 Kalyan Thota 2020-06-11 527 struct msm_display_topology topology = {0}; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 528 int i, intf_count = 0; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 529 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 530 for (i = 0; i < MAX_PHYS_ENCODERS_PER_VIRTUAL; i++) 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 531 if (dpu_enc->phys_encs[i]) 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 532 intf_count++; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 533 42a558b71c9ead Kalyan Thota 2019-11-25 534 /* Datapath topology selection 42a558b71c9ead Kalyan Thota 2019-11-25 535 * 42a558b71c9ead Kalyan Thota 2019-11-25 536 * Dual display 42a558b71c9ead Kalyan Thota 2019-11-25 537 * 2 LM, 2 INTF ( Split display using 2 interfaces) 42a558b71c9ead Kalyan Thota 2019-11-25 538 * 42a558b71c9ead Kalyan Thota 2019-11-25 539 * Single display 42a558b71c9ead Kalyan Thota 2019-11-25 540 * 1 LM, 1 INTF 42a558b71c9ead Kalyan Thota 2019-11-25 541 * 2 LM, 1 INTF (stream merge to support high resolution interfaces) 42a558b71c9ead Kalyan Thota 2019-11-25 542 * 5fddd4f5db8730 Kalyan Thota 2020-06-11 543 * Adding color blocks only to primary interface if available in 5fddd4f5db8730 Kalyan Thota 2020-06-11 544 * sufficient number 42a558b71c9ead Kalyan Thota 2019-11-25 545 */ 42a558b71c9ead Kalyan Thota 2019-11-25 546 if (intf_count == 2) 42a558b71c9ead Kalyan Thota 2019-11-25 547 topology.num_lm = 2; 42a558b71c9ead Kalyan Thota 2019-11-25 548 else if (!dpu_kms->catalog->caps->has_3d_merge) 42a558b71c9ead Kalyan Thota 2019-11-25 549 topology.num_lm = 1; 42a558b71c9ead Kalyan Thota 2019-11-25 550 else 42a558b71c9ead Kalyan Thota 2019-11-25 551 topology.num_lm = (mode->hdisplay > MAX_HDISPLAY_SPLIT) ? 2 : 1; 42a558b71c9ead Kalyan Thota 2019-11-25 552 f6393abee4827d Dmitry Baryshkov 2022-02-03 553 if (dpu_enc->disp_info.intf_type == INTF_DSI) { 5fddd4f5db8730 Kalyan Thota 2020-06-11 554 if (dpu_kms->catalog->dspp && 5fddd4f5db8730 Kalyan Thota 2020-06-11 555 (dpu_kms->catalog->dspp_count >= topology.num_lm)) e47616df008b10 Kalyan Thota 2020-03-24 556 topology.num_dspp = topology.num_lm; 5fddd4f5db8730 Kalyan Thota 2020-06-11 557 } e47616df008b10 Kalyan Thota 2020-03-24 558 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 559 topology.num_enc = 0; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 560 topology.num_intf = intf_count; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 561 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 562 return topology; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 563 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 564 static int dpu_encoder_virt_atomic_check( 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 565 struct drm_encoder *drm_enc, 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 566 struct drm_crtc_state *crtc_state, 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 567 struct drm_connector_state *conn_state) 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 568 { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 569 struct dpu_encoder_virt *dpu_enc; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 570 struct msm_drm_private *priv; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 571 struct dpu_kms *dpu_kms; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 @572 const struct drm_display_mode *mode; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 573 struct drm_display_mode *adj_mode; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 574 struct msm_display_topology topology; de3916c70a24e3 Drew Davenport 2020-02-19 575 struct dpu_global_state *global_state; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 576 int ret = 0; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 577 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 578 if (!drm_enc || !crtc_state || !conn_state) { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 579 DPU_ERROR("invalid arg(s), drm_enc %d, crtc/conn state %d/%d\n", e6790f7210062e Zheng Bin 2020-01-23 580 drm_enc != NULL, crtc_state != NULL, conn_state != NULL); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 581 return -EINVAL; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 582 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 583 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 584 dpu_enc = to_dpu_encoder_virt(drm_enc); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 585 DPU_DEBUG_ENC(dpu_enc, "\n"); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 586 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 587 priv = drm_enc->dev->dev_private; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 588 dpu_kms = to_dpu_kms(priv->kms); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 589 mode = &crtc_state->mode; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 590 adj_mode = &crtc_state->adjusted_mode; ccc862b957c641 Kalyan Thota 2020-08-10 591 global_state = dpu_kms_get_global_state(crtc_state->state); ccc862b957c641 Kalyan Thota 2020-08-10 592 if (IS_ERR(global_state)) ccc862b957c641 Kalyan Thota 2020-08-10 593 return PTR_ERR(global_state); ccc862b957c641 Kalyan Thota 2020-08-10 594 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 595 trace_dpu_enc_atomic_check(DRMID(drm_enc)); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 596 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 597 topology = dpu_encoder_get_topology(dpu_enc, dpu_kms, adj_mode); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 598 de3916c70a24e3 Drew Davenport 2020-02-19 599 /* Reserve dynamic resources now. */ 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 600 /* ccc862b957c641 Kalyan Thota 2020-08-10 601 * Release and Allocate resources on every modeset ccc862b957c641 Kalyan Thota 2020-08-10 602 * Dont allocate when active is false. 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 603 */ de3916c70a24e3 Drew Davenport 2020-02-19 604 if (drm_atomic_crtc_needs_modeset(crtc_state)) { ccc862b957c641 Kalyan Thota 2020-08-10 605 dpu_rm_release(global_state, drm_enc); ccc862b957c641 Kalyan Thota 2020-08-10 606 ccc862b957c641 Kalyan Thota 2020-08-10 607 if (!crtc_state->active_changed || crtc_state->active) de3916c70a24e3 Drew Davenport 2020-02-19 608 ret = dpu_rm_reserve(&dpu_kms->rm, global_state, de3916c70a24e3 Drew Davenport 2020-02-19 609 drm_enc, crtc_state, topology); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 610 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 611 5dce0c0b92d426 Ville Syrjälä 2020-04-28 612 trace_dpu_enc_atomic_check_flags(DRMID(drm_enc), adj_mode->flags); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 613 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 614 return ret; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 615 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 616 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org