[PATCH 2/2] drm/tegra: add scanout support for implicit tiling parameters
kernel test robot
lkp at intel.com
Mon Jan 30 19:43:00 UTC 2023
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@intel.com/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 at intel.com>
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
More information about the dri-devel
mailing list