Hi Dmitry,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 26ffb3d6f02cd0935fb9fa3db897767beee1cb2a]

url:    
https://github.com/intel-lab-lkp/linux/commits/Dmitry-Baryshkov/drm-msm-disp-set-num_planes-to-1-for-interleaved-YUV-formats/20250705-104933
base:   26ffb3d6f02cd0935fb9fa3db897767beee1cb2a
patch link:    
https://lore.kernel.org/r/20250705-dpu-formats-v1-11-40f0bb31b8c8%40oss.qualcomm.com
patch subject: [PATCH 11/12] drm/msm/dpu: rewrite 
_dpu_format_populate_plane_sizes_ubwc()
config: powerpc64-randconfig-003-20250705 
(https://download.01.org/0day-ci/archive/20250706/202507060149.j2xwjhut-...@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 
61529d9e36fa86782a2458e6bdeedf7f376ef4b5)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250706/202507060149.j2xwjhut-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202507060149.j2xwjhut-...@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:79:7: warning: variable 
>> 'sclines' is used uninitialized whenever 'if' condition is false 
>> [-Wsometimes-uninitialized]
      79 |                 if (fmt->pixel_format == DRM_FORMAT_NV12 ||
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      80 |                     fmt->pixel_format == DRM_FORMAT_P010) {
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:104:4: note: uninitialized use 
occurs here
     104 |                         sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT);
         |                         ^~~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:79:3: note: remove the 'if' if 
its condition is always true
      79 |                 if (fmt->pixel_format == DRM_FORMAT_NV12 ||
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      80 |                     fmt->pixel_format == DRM_FORMAT_P010) {
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:74:31: note: initialize the 
variable 'sclines' to silence this warning
      74 |                 unsigned int stride, sclines;
         |                                             ^
         |                                              = 0
>> drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:79:7: warning: variable 'stride' 
>> is used uninitialized whenever 'if' condition is false 
>> [-Wsometimes-uninitialized]
      79 |                 if (fmt->pixel_format == DRM_FORMAT_NV12 ||
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      80 |                     fmt->pixel_format == DRM_FORMAT_P010) {
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:102:28: note: uninitialized use 
occurs here
     102 |                 layout->plane_pitch[0] = stride;
         |                                          ^~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:79:3: note: remove the 'if' if 
its condition is always true
      79 |                 if (fmt->pixel_format == DRM_FORMAT_NV12 ||
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      80 |                     fmt->pixel_format == DRM_FORMAT_P010) {
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:74:22: note: initialize the 
variable 'stride' to silence this warning
      74 |                 unsigned int stride, sclines;
         |                                    ^
         |                                     = 0
   2 warnings generated.


vim +79 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c

    65  
    66  static int _dpu_format_populate_plane_sizes_ubwc(
    67                  const struct msm_format *fmt,
    68                  struct drm_framebuffer *fb,
    69                  struct dpu_hw_fmt_layout *layout)
    70  {
    71          bool meta = MSM_FORMAT_IS_UBWC(fmt);
    72  
    73          if (MSM_FORMAT_IS_YUV(fmt)) {
    74                  unsigned int stride, sclines;
    75                  unsigned int y_tile_width, y_tile_height;
    76                  unsigned int y_meta_stride, y_meta_scanlines;
    77                  unsigned int uv_meta_stride, uv_meta_scanlines;
    78  
  > 79                  if (fmt->pixel_format == DRM_FORMAT_NV12 ||
    80                      fmt->pixel_format == DRM_FORMAT_P010) {
    81                          if (MSM_FORMAT_IS_DX(fmt)) {
    82                                  if (fmt->flags & 
MSM_FORMAT_FLAG_UNPACK_TIGHT) {
    83                                          stride = 
MSM_MEDIA_ALIGN(fb->width, 192);
    84                                          stride = MSM_MEDIA_ALIGN(stride 
* 4 / 3, 256);
    85                                          y_tile_width = 48;
    86                                  } else {
    87                                          stride = 
MSM_MEDIA_ALIGN(fb->width * 2, 256);
    88                                          y_tile_width = 32;
    89                                  }
    90  
    91                                  sclines = MSM_MEDIA_ALIGN(fb->height, 
16);
    92                                  y_tile_height = 4;
    93                          } else {
    94                                  stride = MSM_MEDIA_ALIGN(fb->width, 
128);
    95                                  y_tile_width = 32;
    96  
    97                                  sclines = MSM_MEDIA_ALIGN(fb->height, 
32);
    98                                  y_tile_height = 8;
    99                          }
   100                  }
   101  
   102                  layout->plane_pitch[0] = stride;
   103                  layout->plane_size[0] = 
MSM_MEDIA_ALIGN(layout->plane_pitch[0] *
   104                          sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT);
   105  
   106                  layout->plane_pitch[1] = stride;
   107                  layout->plane_size[1] = 
MSM_MEDIA_ALIGN(layout->plane_pitch[1] *
   108                          sclines, DPU_UBWC_PLANE_SIZE_ALIGNMENT);
   109  
   110                  if (!meta)
   111                          return 0;
   112  
   113                  y_meta_stride = MSM_MEDIA_ROUNDUP(fb->width, 
y_tile_width);
   114                  layout->plane_pitch[2] = MSM_MEDIA_ALIGN(y_meta_stride, 
64);
   115  
   116                  y_meta_scanlines = MSM_MEDIA_ROUNDUP(fb->height, 
y_tile_height);
   117                  y_meta_scanlines = MSM_MEDIA_ALIGN(y_meta_scanlines, 
16);
   118                  layout->plane_size[2] = 
MSM_MEDIA_ALIGN(layout->plane_pitch[2] *
   119                          y_meta_scanlines, 
DPU_UBWC_PLANE_SIZE_ALIGNMENT);
   120  
   121                  uv_meta_stride = MSM_MEDIA_ROUNDUP((fb->width+1)>>1, 
y_tile_width / 2);
   122                  layout->plane_pitch[3] = 
MSM_MEDIA_ALIGN(uv_meta_stride, 64);
   123  
   124                  uv_meta_scanlines = 
MSM_MEDIA_ROUNDUP((fb->height+1)>>1, y_tile_height);
   125                  uv_meta_scanlines = MSM_MEDIA_ALIGN(uv_meta_scanlines, 
16);
   126                  layout->plane_size[3] = 
MSM_MEDIA_ALIGN(layout->plane_pitch[3] *
   127                          uv_meta_scanlines, 
DPU_UBWC_PLANE_SIZE_ALIGNMENT);
   128          } else {
   129                  unsigned int rgb_scanlines, rgb_meta_scanlines, 
rgb_meta_stride;
   130  
   131                  layout->plane_pitch[0] = MSM_MEDIA_ALIGN(fb->width * 
fmt->bpp, 256);
   132                  rgb_scanlines = MSM_MEDIA_ALIGN(fb->height, 16);
   133                  layout->plane_size[0] = 
MSM_MEDIA_ALIGN(layout->plane_pitch[0] *
   134                          rgb_scanlines, DPU_UBWC_PLANE_SIZE_ALIGNMENT);
   135  
   136                  if (!meta)
   137                          return 0;
   138  
   139                  /* uAPI leaves plane[1] empty and plane[2] as meta */
   140                  layout->num_planes += 1;
   141  
   142                  rgb_meta_stride = MSM_MEDIA_ROUNDUP(fb->width, 16);
   143                  layout->plane_pitch[2] = 
MSM_MEDIA_ALIGN(rgb_meta_stride, 64);
   144  
   145                  rgb_meta_scanlines = MSM_MEDIA_ROUNDUP(fb->height, 4);
   146                  rgb_meta_scanlines = 
MSM_MEDIA_ALIGN(rgb_meta_scanlines, 16);
   147  
   148                  layout->plane_size[2] = 
MSM_MEDIA_ALIGN(layout->plane_pitch[2] *
   149                          rgb_meta_scanlines, 
DPU_UBWC_PLANE_SIZE_ALIGNMENT);
   150          }
   151  
   152          return 0;
   153  }
   154  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to