Hi Diogo, Thank you for the patch! Yet something to improve: [auto build test ERROR on tegra/for-next] [also build test ERROR on drm/drm-next tegra-drm/drm/tegra/for-next linus/master v6.2-rc6 next-20230130] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Diogo-Ivo/drm-tegra-add-sector-layout-to-SET-GET_TILING-IOCTLs/20230120-190334 base: https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next patch link: https://lore.kernel.org/r/20230120105858.214440-3-diogo.ivo%40tecnico.ulisboa.pt patch subject: [PATCH 2/2] drm/tegra: add scanout support for implicit tiling parameters config: arm64-randconfig-r016-20230130 (https://download.01.org/0day-ci/archive/20230131/202301310334.4oiy5KGY-lkp@xxxxxxxxx/config) compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 4196ca3278f78c6e19246e54ab0ecb364e37d66a) 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 # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/intel-lab-lkp/linux/commit/fffef2135ccf679112cc60dee0532494c1389c78 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Diogo-Ivo/drm-tegra-add-sector-layout-to-SET-GET_TILING-IOCTLs/20230120-190334 git checkout fffef2135ccf679112cc60dee0532494c1389c78 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/tegra/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/gpu/drm/tegra/fb.c:149:4: error: expected expression unsigned long height = planes[0]->tiling.value; ^ >> drivers/gpu/drm/tegra/fb.c:151:8: error: use of undeclared identifier 'height' if (height > 5) { ^ >> drivers/gpu/drm/tegra/fb.c:151:8: error: use of undeclared identifier 'height' >> drivers/gpu/drm/tegra/fb.c:151:8: error: use of undeclared identifier 'height' drivers/gpu/drm/tegra/fb.c:153:6: error: use of undeclared identifier 'height' height); ^ drivers/gpu/drm/tegra/fb.c:159:49: error: use of undeclared identifier 'height' modifier = DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(height); ^ 6 errors generated. vim +149 drivers/gpu/drm/tegra/fb.c 110 111 static struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm, 112 const struct drm_mode_fb_cmd2 *mode_cmd, 113 struct tegra_bo **planes, 114 unsigned int num_planes) 115 { 116 struct drm_framebuffer *fb; 117 unsigned int i; 118 int err; 119 struct drm_mode_fb_cmd2 mode_cmd_local; 120 121 fb = kzalloc(sizeof(*fb), GFP_KERNEL); 122 if (!fb) 123 return ERR_PTR(-ENOMEM); 124 125 /* Check for implicitly defined modifiers using 126 * the state defined by tegra_gem_set_tiling(). 127 */ 128 if (!(mode_cmd->flags & DRM_MODE_FB_MODIFIERS)) { 129 uint64_t modifier; 130 131 mode_cmd_local = *mode_cmd; 132 133 switch (planes[0]->tiling.mode) { 134 case TEGRA_BO_TILING_MODE_PITCH: 135 modifier = DRM_FORMAT_MOD_LINEAR; 136 break; 137 138 case TEGRA_BO_TILING_MODE_TILED: 139 modifier = DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED; 140 break; 141 142 /* With all rigour this reconstruction of the modifier is 143 * incomplete, as it skips some fields (like page kind). 144 * However, along with the sector layout below it should 145 * contain all the bits of information needed by the 146 * scanout hardware. 147 */ 148 case TEGRA_BO_TILING_MODE_BLOCK: > 149 unsigned long height = planes[0]->tiling.value; 150 > 151 if (height > 5) { 152 dev_err(drm->dev, "invalid block height value: %ld\n", 153 height); 154 155 err = -EINVAL; 156 goto cleanup; 157 } 158 159 modifier = DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(height); 160 break; 161 162 default: 163 dev_err(drm->dev, "invalid tiling mode\n"); 164 err = -EINVAL; 165 goto cleanup; 166 } 167 168 if (planes[0]->tiling.sector_layout == DRM_TEGRA_GEM_SECTOR_LAYOUT_GPU) 169 modifier |= DRM_FORMAT_MOD_NVIDIA_SECTOR_LAYOUT; 170 171 mode_cmd_local.modifier[0] = modifier; 172 173 mode_cmd = &mode_cmd_local; 174 } 175 176 drm_helper_mode_fill_fb_struct(drm, fb, mode_cmd); 177 178 for (i = 0; i < fb->format->num_planes; i++) 179 fb->obj[i] = &planes[i]->gem; 180 181 err = drm_framebuffer_init(drm, fb, &tegra_fb_funcs); 182 if (err < 0) { 183 dev_err(drm->dev, "failed to initialize framebuffer: %d\n", 184 err); 185 goto cleanup; 186 } 187 188 return fb; 189 190 cleanup: 191 kfree(fb); 192 return ERR_PTR(err); 193 } 194 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests