Hi Kalyan,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   e28f0104343d0c132fa37f479870c9e43355fee4
commit: e47616df008b1059c57892fb34883403a6933231 drm/msm/dpu: add support for 
color processing blocks in dpu driver
date:   4 months ago
config: arm64-randconfig-r013-20200904 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.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 checkout e47616df008b1059c57892fb34883403a6933231
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function 
'dpu_encoder_virt_mode_set':
>> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:968:31: warning: variable 
>> 'num_dspp' set but not used [-Wunused-but-set-variable]
     968 |  int num_lm, num_ctl, num_pp, num_dspp;
         |                               ^~~~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:963:30: warning: variable 
'topology' set but not used [-Wunused-but-set-variable]
     963 |  struct msm_display_topology topology;
         |                              ^~~~~~~~

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e47616df008b1059c57892fb34883403a6933231
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e47616df008b1059c57892fb34883403a6933231
vim +/num_dspp +968 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c

   950  
   951  static void dpu_encoder_virt_mode_set(struct drm_encoder *drm_enc,
   952                                        struct drm_display_mode *mode,
   953                                        struct drm_display_mode *adj_mode)
   954  {
   955          struct dpu_encoder_virt *dpu_enc;
   956          struct msm_drm_private *priv;
   957          struct dpu_kms *dpu_kms;
   958          struct list_head *connector_list;
   959          struct drm_connector *conn = NULL, *conn_iter;
   960          struct drm_crtc *drm_crtc;
   961          struct dpu_crtc_state *cstate;
   962          struct dpu_global_state *global_state;
   963          struct msm_display_topology topology;
   964          struct dpu_hw_blk *hw_pp[MAX_CHANNELS_PER_ENC];
   965          struct dpu_hw_blk *hw_ctl[MAX_CHANNELS_PER_ENC];
   966          struct dpu_hw_blk *hw_lm[MAX_CHANNELS_PER_ENC];
   967          struct dpu_hw_blk *hw_dspp[MAX_CHANNELS_PER_ENC] = { NULL };
 > 968          int num_lm, num_ctl, num_pp, num_dspp;
   969          int i, j;
   970  
   971          if (!drm_enc) {
   972                  DPU_ERROR("invalid encoder\n");
   973                  return;
   974          }
   975  
   976          dpu_enc = to_dpu_encoder_virt(drm_enc);
   977          DPU_DEBUG_ENC(dpu_enc, "\n");
   978  
   979          priv = drm_enc->dev->dev_private;
   980          dpu_kms = to_dpu_kms(priv->kms);
   981          connector_list = &dpu_kms->dev->mode_config.connector_list;
   982  
   983          global_state = dpu_kms_get_existing_global_state(dpu_kms);
   984          if (IS_ERR_OR_NULL(global_state)) {
   985                  DPU_ERROR("Failed to get global state");
   986                  return;
   987          }
   988  
   989          trace_dpu_enc_mode_set(DRMID(drm_enc));
   990  
   991          list_for_each_entry(conn_iter, connector_list, head)
   992                  if (conn_iter->encoder == drm_enc)
   993                          conn = conn_iter;
   994  
   995          if (!conn) {
   996                  DPU_ERROR_ENC(dpu_enc, "failed to find attached 
connector\n");
   997                  return;
   998          } else if (!conn->state) {
   999                  DPU_ERROR_ENC(dpu_enc, "invalid connector state\n");
  1000                  return;
  1001          }
  1002  
  1003          drm_for_each_crtc(drm_crtc, drm_enc->dev)
  1004                  if (drm_crtc->state->encoder_mask & 
drm_encoder_mask(drm_enc))
  1005                          break;
  1006  
  1007          topology = dpu_encoder_get_topology(dpu_enc, dpu_kms, adj_mode);
  1008  
  1009          /* Query resource that have been reserved in atomic check step. 
*/
  1010          num_pp = dpu_rm_get_assigned_resources(&dpu_kms->rm, 
global_state,
  1011                  drm_enc->base.id, DPU_HW_BLK_PINGPONG, hw_pp,
  1012                  ARRAY_SIZE(hw_pp));
  1013          num_ctl = dpu_rm_get_assigned_resources(&dpu_kms->rm, 
global_state,
  1014                  drm_enc->base.id, DPU_HW_BLK_CTL, hw_ctl, 
ARRAY_SIZE(hw_ctl));
  1015          num_lm = dpu_rm_get_assigned_resources(&dpu_kms->rm, 
global_state,
  1016                  drm_enc->base.id, DPU_HW_BLK_LM, hw_lm, 
ARRAY_SIZE(hw_lm));
  1017          num_dspp = dpu_rm_get_assigned_resources(&dpu_kms->rm, 
global_state,
  1018                  drm_enc->base.id, DPU_HW_BLK_DSPP, hw_dspp,
  1019                  ARRAY_SIZE(hw_dspp));
  1020  
  1021          for (i = 0; i < MAX_CHANNELS_PER_ENC; i++)
  1022                  dpu_enc->hw_pp[i] = i < num_pp ? 
to_dpu_hw_pingpong(hw_pp[i])
  1023                                                  : NULL;
  1024  
  1025          cstate = to_dpu_crtc_state(drm_crtc->state);
  1026  
  1027          for (i = 0; i < num_lm; i++) {
  1028                  int ctl_idx = (i < num_ctl) ? i : (num_ctl-1);
  1029  
  1030                  cstate->mixers[i].hw_lm = to_dpu_hw_mixer(hw_lm[i]);
  1031                  cstate->mixers[i].lm_ctl = 
to_dpu_hw_ctl(hw_ctl[ctl_idx]);
  1032                  cstate->mixers[i].hw_dspp = to_dpu_hw_dspp(hw_dspp[i]);
  1033          }
  1034  
  1035          cstate->num_mixers = num_lm;
  1036  
  1037          for (i = 0; i < dpu_enc->num_phys_encs; i++) {
  1038                  int num_blk;
  1039                  struct dpu_hw_blk *hw_blk[MAX_CHANNELS_PER_ENC];
  1040                  struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i];
  1041  
  1042                  if (!dpu_enc->hw_pp[i]) {
  1043                          DPU_ERROR_ENC(dpu_enc,
  1044                                  "no pp block assigned at idx: %d\n", i);
  1045                          return;
  1046                  }
  1047  
  1048                  if (!hw_ctl[i]) {
  1049                          DPU_ERROR_ENC(dpu_enc,
  1050                                  "no ctl block assigned at idx: %d\n", 
i);
  1051                          return;
  1052                  }
  1053  
  1054                  phys->hw_pp = dpu_enc->hw_pp[i];
  1055                  phys->hw_ctl = to_dpu_hw_ctl(hw_ctl[i]);
  1056  
  1057                  num_blk = dpu_rm_get_assigned_resources(&dpu_kms->rm,
  1058                          global_state, drm_enc->base.id, DPU_HW_BLK_INTF,
  1059                          hw_blk, ARRAY_SIZE(hw_blk));
  1060                  for (j = 0; j < num_blk; j++) {
  1061                          struct dpu_hw_intf *hw_intf;
  1062  
  1063                          hw_intf = to_dpu_hw_intf(hw_blk[i]);
  1064                          if (hw_intf->idx == phys->intf_idx)
  1065                                  phys->hw_intf = hw_intf;
  1066                  }
  1067  
  1068                  if (!phys->hw_intf) {
  1069                          DPU_ERROR_ENC(dpu_enc,
  1070                                        "no intf block assigned at idx: 
%d\n", i);
  1071                          return;
  1072                  }
  1073  
  1074                  phys->connector = conn->state->connector;
  1075                  if (phys->ops.mode_set)
  1076                          phys->ops.mode_set(phys, mode, adj_mode);
  1077          }
  1078  }
  1079  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to