Hi Ankit,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-tip/drm-tip next-20200316]
[cannot apply to v5.6-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Ankit-Navik/Dynamic-EU-configuration-of-Slice-Sub-slice-EU/20200317-070836
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

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

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_device_info.c: In function 
'intel_device_info_runtime_init':
>> drivers/gpu/drm/i915/intel_device_info.c:1061:24: warning: assignment 
>> discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
      dev_priv->opt_config = chv_config;
                           ^
   drivers/gpu/drm/i915/intel_device_info.c:1073:25: warning: assignment 
discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       dev_priv->opt_config = glk_gt1_config;
                            ^
   drivers/gpu/drm/i915/intel_device_info.c:1078:25: warning: assignment 
discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       dev_priv->opt_config = kbl_gt2_config;
                            ^
   drivers/gpu/drm/i915/intel_device_info.c:1083:25: warning: assignment 
discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
       dev_priv->opt_config = kbl_gt3_config;
                            ^

vim +/const +1061 drivers/gpu/drm/i915/intel_device_info.c

   929  
   930  /**
   931   * intel_device_info_runtime_init - initialize runtime info
   932   * @dev_priv: the i915 device
   933   *
   934   * Determine various intel_device_info fields at runtime.
   935   *
   936   * Use it when either:
   937   *   - it's judged too laborious to fill n static structures with the 
limit
   938   *     when a simple if statement does the job,
   939   *   - run-time checks (eg read fuse/strap registers) are needed.
   940   *
   941   * This function needs to be called:
   942   *   - after the MMIO has been setup as we are reading registers,
   943   *   - after the PCH has been detected,
   944   *   - before the first usage of the fields it can tweak.
   945   */
   946  void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
   947  {
   948          struct intel_device_info *info = mkwrite_device_info(dev_priv);
   949          struct intel_runtime_info *runtime = RUNTIME_INFO(dev_priv);
   950          enum pipe pipe;
   951  
   952          if (INTEL_GEN(dev_priv) >= 10) {
   953                  for_each_pipe(dev_priv, pipe)
   954                          runtime->num_scalers[pipe] = 2;
   955          } else if (IS_GEN(dev_priv, 9)) {
   956                  runtime->num_scalers[PIPE_A] = 2;
   957                  runtime->num_scalers[PIPE_B] = 2;
   958                  runtime->num_scalers[PIPE_C] = 1;
   959          }
   960  
   961          BUILD_BUG_ON(BITS_PER_TYPE(intel_engine_mask_t) < 
I915_NUM_ENGINES);
   962  
   963          if (INTEL_GEN(dev_priv) >= 11)
   964                  for_each_pipe(dev_priv, pipe)
   965                          runtime->num_sprites[pipe] = 6;
   966          else if (IS_GEN(dev_priv, 10) || IS_GEMINILAKE(dev_priv))
   967                  for_each_pipe(dev_priv, pipe)
   968                          runtime->num_sprites[pipe] = 3;
   969          else if (IS_BROXTON(dev_priv)) {
   970                  /*
   971                   * Skylake and Broxton currently don't expose the 
topmost plane as its
   972                   * use is exclusive with the legacy cursor and we only 
want to expose
   973                   * one of those, not both. Until we can safely expose 
the topmost plane
   974                   * as a DRM_PLANE_TYPE_CURSOR with all the features 
exposed/supported,
   975                   * we don't expose the topmost plane at all to prevent 
ABI breakage
   976                   * down the line.
   977                   */
   978  
   979                  runtime->num_sprites[PIPE_A] = 2;
   980                  runtime->num_sprites[PIPE_B] = 2;
   981                  runtime->num_sprites[PIPE_C] = 1;
   982          } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
   983                  for_each_pipe(dev_priv, pipe)
   984                          runtime->num_sprites[pipe] = 2;
   985          } else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv)) {
   986                  for_each_pipe(dev_priv, pipe)
   987                          runtime->num_sprites[pipe] = 1;
   988          }
   989  
   990          if (HAS_DISPLAY(dev_priv) && IS_GEN_RANGE(dev_priv, 7, 8) &&
   991              HAS_PCH_SPLIT(dev_priv)) {
   992                  u32 fuse_strap = I915_READ(FUSE_STRAP);
   993                  u32 sfuse_strap = I915_READ(SFUSE_STRAP);
   994  
   995                  /*
   996                   * SFUSE_STRAP is supposed to have a bit signalling the 
display
   997                   * is fused off. Unfortunately it seems that, at least 
in
   998                   * certain cases, fused off display means that PCH 
display
   999                   * reads don't land anywhere. In that case, we read 0s.
  1000                   *
  1001                   * On CPT/PPT, we can detect this case as 
SFUSE_STRAP_FUSE_LOCK
  1002                   * should be set when taking over after the firmware.
  1003                   */
  1004                  if (fuse_strap & ILK_INTERNAL_DISPLAY_DISABLE ||
  1005                      sfuse_strap & SFUSE_STRAP_DISPLAY_DISABLED ||
  1006                      (HAS_PCH_CPT(dev_priv) &&
  1007                       !(sfuse_strap & SFUSE_STRAP_FUSE_LOCK))) {
  1008                          drm_info(&dev_priv->drm,
  1009                                   "Display fused off, disabling\n");
  1010                          info->pipe_mask = 0;
  1011                  } else if (fuse_strap & IVB_PIPE_C_DISABLE) {
  1012                          drm_info(&dev_priv->drm, "PipeC fused off\n");
  1013                          info->pipe_mask &= ~BIT(PIPE_C);
  1014                  }
  1015          } else if (HAS_DISPLAY(dev_priv) && INTEL_GEN(dev_priv) >= 9) {
  1016                  u32 dfsm = I915_READ(SKL_DFSM);
  1017                  u8 enabled_mask = info->pipe_mask;
  1018  
  1019                  if (dfsm & SKL_DFSM_PIPE_A_DISABLE)
  1020                          enabled_mask &= ~BIT(PIPE_A);
  1021                  if (dfsm & SKL_DFSM_PIPE_B_DISABLE)
  1022                          enabled_mask &= ~BIT(PIPE_B);
  1023                  if (dfsm & SKL_DFSM_PIPE_C_DISABLE)
  1024                          enabled_mask &= ~BIT(PIPE_C);
  1025                  if (INTEL_GEN(dev_priv) >= 12 &&
  1026                      (dfsm & TGL_DFSM_PIPE_D_DISABLE))
  1027                          enabled_mask &= ~BIT(PIPE_D);
  1028  
  1029                  /*
  1030                   * At least one pipe should be enabled and if there are
  1031                   * disabled pipes, they should be the last ones, with 
no holes
  1032                   * in the mask.
  1033                   */
  1034                  if (enabled_mask == 0 || !is_power_of_2(enabled_mask + 
1))
  1035                          drm_err(&dev_priv->drm,
  1036                                  "invalid pipe fuse configuration: 
enabled_mask=0x%x\n",
  1037                                  enabled_mask);
  1038                  else
  1039                          info->pipe_mask = enabled_mask;
  1040  
  1041                  if (dfsm & SKL_DFSM_DISPLAY_HDCP_DISABLE)
  1042                          info->display.has_hdcp = 0;
  1043  
  1044                  if (dfsm & SKL_DFSM_DISPLAY_PM_DISABLE)
  1045                          info->display.has_fbc = 0;
  1046  
  1047                  if (INTEL_GEN(dev_priv) >= 11 && (dfsm & 
ICL_DFSM_DMC_DISABLE))
  1048                          info->display.has_csr = 0;
  1049  
  1050                  if (INTEL_GEN(dev_priv) >= 10 &&
  1051                      (dfsm & CNL_DFSM_DISPLAY_DSC_DISABLE))
  1052                          info->display.has_dsc = 0;
  1053          }
  1054  
  1055          /* Initialize slice/subslice/EU info */
  1056          if (IS_HASWELL(dev_priv))
  1057                  hsw_sseu_info_init(dev_priv);
  1058          else if (IS_CHERRYVIEW(dev_priv)) {
  1059                  cherryview_sseu_info_init(dev_priv);
  1060                  BUILD_BUG_ON(ARRAY_SIZE(chv_config) != LOAD_TYPE_LAST);
> 1061                  dev_priv->opt_config = chv_config;
  1062          }
  1063          else if (IS_BROADWELL(dev_priv))
  1064                  bdw_sseu_info_init(dev_priv);
  1065          else if (IS_GEN(dev_priv, 9)) {
  1066                  gen9_sseu_info_init(dev_priv);
  1067  
  1068                  switch (info->gt) {
  1069                  default: /* fall through */
  1070                  case 1:
  1071                          BUILD_BUG_ON(ARRAY_SIZE(glk_gt1_config) !=
  1072                                                  LOAD_TYPE_LAST);
  1073                          dev_priv->opt_config = glk_gt1_config;
  1074                  break;
  1075                  case 2:
  1076                          BUILD_BUG_ON(ARRAY_SIZE(kbl_gt2_config) !=
  1077                                                  LOAD_TYPE_LAST);
  1078                          dev_priv->opt_config = kbl_gt2_config;
  1079                  break;
  1080                  case 3:
  1081                          BUILD_BUG_ON(ARRAY_SIZE(kbl_gt3_config) !=
  1082                                                  LOAD_TYPE_LAST);
  1083                          dev_priv->opt_config = kbl_gt3_config;
  1084                  break;
  1085                  }
  1086          }
  1087          else if (IS_GEN(dev_priv, 10))
  1088                  gen10_sseu_info_init(dev_priv);
  1089          else if (IS_GEN(dev_priv, 11))
  1090                  gen11_sseu_info_init(dev_priv);
  1091          else if (INTEL_GEN(dev_priv) >= 12)
  1092                  gen12_sseu_info_init(dev_priv);
  1093  
  1094          if (IS_GEN(dev_priv, 6) && intel_vtd_active()) {
  1095                  drm_info(&dev_priv->drm,
  1096                           "Disabling ppGTT for VT-d support\n");
  1097                  info->ppgtt_type = INTEL_PPGTT_NONE;
  1098          }
  1099  
  1100          runtime->rawclk_freq = intel_read_rawclk(dev_priv);
  1101          drm_dbg(&dev_priv->drm, "rawclk rate: %d kHz\n", 
runtime->rawclk_freq);
  1102  
  1103          /* Initialize command stream timestamp frequency */
  1104          runtime->cs_timestamp_frequency_khz =
  1105                  read_timestamp_frequency(dev_priv);
  1106          if (runtime->cs_timestamp_frequency_khz) {
  1107                  runtime->cs_timestamp_period_ns =
  1108                          div_u64(1e6, 
runtime->cs_timestamp_frequency_khz);
  1109                  drm_dbg(&dev_priv->drm,
  1110                          "CS timestamp wraparound in %lldms\n",
  1111                          
div_u64(mul_u32_u32(runtime->cs_timestamp_period_ns,
  1112                                              S32_MAX),
  1113                                  USEC_PER_SEC));
  1114          }
  1115  }
  1116  

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to