drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:968:31: warning: variable 'num_dspp' set but not used
From: kernel test robot
Date: Thu Sep 03 2020 - 22:54:42 EST
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 <lkp@xxxxxxxxx>
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-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip