[drm-intel:drm-intel-next 14/14] drivers/gpu/drm/i915/display/intel_fb.c:1232:23: warning: unused parameter 'file'
kernel test robot
lkp at intel.com
Sat Aug 28 17:36:30 UTC 2021
tree: git://anongit.freedesktop.org/drm-intel drm-intel-next
head: 705d4feeb269e22c4850ad66e2210b737b553236
commit: 705d4feeb269e22c4850ad66e2210b737b553236 [14/14] drm/i915/fb: move user framebuffer stuff to intel_fb.c
config: i386-randconfig-a004-20210827 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1076082a0d97bd5c16a25ee7cf3dbb6ee4b5a9fe)
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 remote add drm-intel git://anongit.freedesktop.org/drm-intel
git fetch --no-tags drm-intel drm-intel-next
git checkout 705d4feeb269e22c4850ad66e2210b737b553236
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/i915/i915_gpu_error.h:299:65: warning: unused parameter 'ee' [-Wunused-parameter]
intel_engine_coredump_add_request(struct intel_engine_coredump *ee,
^
drivers/gpu/drm/i915/i915_gpu_error.h:300:28: warning: unused parameter 'rq' [-Wunused-parameter]
struct i915_request *rq,
^
drivers/gpu/drm/i915/i915_gpu_error.h:301:13: warning: unused parameter 'gfp' [-Wunused-parameter]
gfp_t gfp)
^
drivers/gpu/drm/i915/i915_gpu_error.h:307:61: warning: unused parameter 'ee' [-Wunused-parameter]
intel_engine_coredump_add_vma(struct intel_engine_coredump *ee,
^
drivers/gpu/drm/i915/i915_gpu_error.h:308:43: warning: unused parameter 'capture' [-Wunused-parameter]
struct intel_engine_capture_vma *capture,
^
drivers/gpu/drm/i915/i915_gpu_error.h:309:36: warning: unused parameter 'compress' [-Wunused-parameter]
struct i915_vma_compress *compress)
^
drivers/gpu/drm/i915/i915_gpu_error.h:314:52: warning: unused parameter 'gt' [-Wunused-parameter]
i915_vma_capture_prepare(struct intel_gt_coredump *gt)
^
drivers/gpu/drm/i915/i915_gpu_error.h:320:51: warning: unused parameter 'gt' [-Wunused-parameter]
i915_vma_capture_finish(struct intel_gt_coredump *gt,
^
drivers/gpu/drm/i915/i915_gpu_error.h:321:30: warning: unused parameter 'compress' [-Wunused-parameter]
struct i915_vma_compress *compress)
^
drivers/gpu/drm/i915/i915_gpu_error.h:326:50: warning: unused parameter 'error' [-Wunused-parameter]
i915_error_state_store(struct i915_gpu_coredump *error)
^
drivers/gpu/drm/i915/i915_gpu_error.h:330:68: warning: unused parameter 'gpu' [-Wunused-parameter]
static inline void i915_gpu_coredump_put(struct i915_gpu_coredump *gpu)
^
drivers/gpu/drm/i915/i915_gpu_error.h:335:49: warning: unused parameter 'i915' [-Wunused-parameter]
i915_first_error_state(struct drm_i915_private *i915)
^
drivers/gpu/drm/i915/i915_gpu_error.h:340:68: warning: unused parameter 'i915' [-Wunused-parameter]
static inline void i915_reset_error_state(struct drm_i915_private *i915)
^
drivers/gpu/drm/i915/i915_gpu_error.h:344:70: warning: unused parameter 'i915' [-Wunused-parameter]
static inline void i915_disable_error_state(struct drm_i915_private *i915,
^
drivers/gpu/drm/i915/i915_gpu_error.h:345:14: warning: unused parameter 'err' [-Wunused-parameter]
int err)
^
In file included from drivers/gpu/drm/i915/display/intel_fb.c:10:
drivers/gpu/drm/i915/display/intel_display_types.h:1757:8: warning: comparison of integers of different signs: 'enum pipe' and 'unsigned int' [-Wsign-compare]
pipe < ARRAY_SIZE(i915->pipe_to_crtc_mapping) &&
~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/intel_fb.c:715:61: warning: comparison of integers of different signs: 'int' and 'const unsigned int' [-Wsign-compare]
(*x + plane_width) * fb->base.format->cpp[color_plane] > fb->base.pitches[color_plane]) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/intel_fb.c:763:69: warning: unused parameter 'color_plane' [-Wunused-parameter]
plane_view_dst_stride_tiles(const struct intel_framebuffer *fb, int color_plane,
^
drivers/gpu/drm/i915/display/intel_fb.c:777:56: warning: unused parameter 'fb' [-Wunused-parameter]
plane_view_width_tiles(const struct intel_framebuffer *fb, int color_plane,
^
drivers/gpu/drm/i915/display/intel_fb.c:777:64: warning: unused parameter 'color_plane' [-Wunused-parameter]
plane_view_width_tiles(const struct intel_framebuffer *fb, int color_plane,
^
drivers/gpu/drm/i915/display/intel_fb.c:785:57: warning: unused parameter 'fb' [-Wunused-parameter]
plane_view_height_tiles(const struct intel_framebuffer *fb, int color_plane,
^
drivers/gpu/drm/i915/display/intel_fb.c:785:65: warning: unused parameter 'color_plane' [-Wunused-parameter]
plane_view_height_tiles(const struct intel_framebuffer *fb, int color_plane,
^
drivers/gpu/drm/i915/display/intel_fb.c:817:3: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
check_array_bounds(i915, view->gtt.rotated.plane, color_plane);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/intel_fb.c:14:70: note: expanded from macro 'check_array_bounds'
#define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
include/drm/drm_print.h:563:19: note: expanded from macro 'drm_WARN_ON'
drm_WARN((drm), (x), "%s", \
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_print.h:553:7: note: expanded from macro 'drm_WARN'
WARN(condition, "%s %s: " format, \
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:130:25: note: expanded from macro 'WARN'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
drivers/gpu/drm/i915/display/intel_fb.c:841:3: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
check_array_bounds(i915, view->gtt.remapped.plane, color_plane);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/intel_fb.c:14:70: note: expanded from macro 'check_array_bounds'
#define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
include/drm/drm_print.h:563:19: note: expanded from macro 'drm_WARN_ON'
drm_WARN((drm), (x), "%s", \
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_print.h:553:7: note: expanded from macro 'drm_WARN'
WARN(condition, "%s %s: " format, \
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:130:25: note: expanded from macro 'WARN'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
drivers/gpu/drm/i915/display/intel_fb.c:937:16: warning: variable 'cpp' set but not used [-Wunused-but-set-variable]
unsigned int cpp, size;
^
>> drivers/gpu/drm/i915/display/intel_fb.c:1232:23: warning: unused parameter 'file' [-Wunused-parameter]
struct drm_file *file,
^
>> drivers/gpu/drm/i915/display/intel_fb.c:1233:19: warning: unused parameter 'flags' [-Wunused-parameter]
unsigned int flags, unsigned int color,
^
>> drivers/gpu/drm/i915/display/intel_fb.c:1233:39: warning: unused parameter 'color' [-Wunused-parameter]
unsigned int flags, unsigned int color,
^
>> drivers/gpu/drm/i915/display/intel_fb.c:1234:28: warning: unused parameter 'clips' [-Wunused-parameter]
struct drm_clip_rect *clips,
^
>> drivers/gpu/drm/i915/display/intel_fb.c:1235:19: warning: unused parameter 'num_clips' [-Wunused-parameter]
unsigned int num_clips)
^
>> drivers/gpu/drm/i915/display/intel_fb.c:1364:23: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
if (fb->pitches[i] != ccs_aux_stride) {
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/intel_fb.c:1417:50: warning: unused parameter 'dev' [-Wunused-parameter]
intel_user_framebuffer_create(struct drm_device *dev,
^
1713 warnings generated.
vim +/file +1232 drivers/gpu/drm/i915/display/intel_fb.c
1230
1231 static int intel_user_framebuffer_dirty(struct drm_framebuffer *fb,
> 1232 struct drm_file *file,
> 1233 unsigned int flags, unsigned int color,
> 1234 struct drm_clip_rect *clips,
> 1235 unsigned int num_clips)
1236 {
1237 struct drm_i915_gem_object *obj = intel_fb_obj(fb);
1238
1239 i915_gem_object_flush_if_display(obj);
1240 intel_frontbuffer_flush(to_intel_frontbuffer(fb), ORIGIN_DIRTYFB);
1241
1242 return 0;
1243 }
1244
1245 static const struct drm_framebuffer_funcs intel_fb_funcs = {
1246 .destroy = intel_user_framebuffer_destroy,
1247 .create_handle = intel_user_framebuffer_create_handle,
1248 .dirty = intel_user_framebuffer_dirty,
1249 };
1250
1251 int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
1252 struct drm_i915_gem_object *obj,
1253 struct drm_mode_fb_cmd2 *mode_cmd)
1254 {
1255 struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
1256 struct drm_framebuffer *fb = &intel_fb->base;
1257 u32 max_stride;
1258 unsigned int tiling, stride;
1259 int ret = -EINVAL;
1260 int i;
1261
1262 intel_fb->frontbuffer = intel_frontbuffer_get(obj);
1263 if (!intel_fb->frontbuffer)
1264 return -ENOMEM;
1265
1266 i915_gem_object_lock(obj, NULL);
1267 tiling = i915_gem_object_get_tiling(obj);
1268 stride = i915_gem_object_get_stride(obj);
1269 i915_gem_object_unlock(obj);
1270
1271 if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) {
1272 /*
1273 * If there's a fence, enforce that
1274 * the fb modifier and tiling mode match.
1275 */
1276 if (tiling != I915_TILING_NONE &&
1277 tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) {
1278 drm_dbg_kms(&dev_priv->drm,
1279 "tiling_mode doesn't match fb modifier\n");
1280 goto err;
1281 }
1282 } else {
1283 if (tiling == I915_TILING_X) {
1284 mode_cmd->modifier[0] = I915_FORMAT_MOD_X_TILED;
1285 } else if (tiling == I915_TILING_Y) {
1286 drm_dbg_kms(&dev_priv->drm,
1287 "No Y tiling for legacy addfb\n");
1288 goto err;
1289 }
1290 }
1291
1292 if (!drm_any_plane_has_format(&dev_priv->drm,
1293 mode_cmd->pixel_format,
1294 mode_cmd->modifier[0])) {
1295 drm_dbg_kms(&dev_priv->drm,
1296 "unsupported pixel format %p4cc / modifier 0x%llx\n",
1297 &mode_cmd->pixel_format, mode_cmd->modifier[0]);
1298 goto err;
1299 }
1300
1301 /*
1302 * gen2/3 display engine uses the fence if present,
1303 * so the tiling mode must match the fb modifier exactly.
1304 */
1305 if (DISPLAY_VER(dev_priv) < 4 &&
1306 tiling != intel_fb_modifier_to_tiling(mode_cmd->modifier[0])) {
1307 drm_dbg_kms(&dev_priv->drm,
1308 "tiling_mode must match fb modifier exactly on gen2/3\n");
1309 goto err;
1310 }
1311
1312 max_stride = intel_fb_max_stride(dev_priv, mode_cmd->pixel_format,
1313 mode_cmd->modifier[0]);
1314 if (mode_cmd->pitches[0] > max_stride) {
1315 drm_dbg_kms(&dev_priv->drm,
1316 "%s pitch (%u) must be at most %d\n",
1317 mode_cmd->modifier[0] != DRM_FORMAT_MOD_LINEAR ?
1318 "tiled" : "linear",
1319 mode_cmd->pitches[0], max_stride);
1320 goto err;
1321 }
1322
1323 /*
1324 * If there's a fence, enforce that
1325 * the fb pitch and fence stride match.
1326 */
1327 if (tiling != I915_TILING_NONE && mode_cmd->pitches[0] != stride) {
1328 drm_dbg_kms(&dev_priv->drm,
1329 "pitch (%d) must match tiling stride (%d)\n",
1330 mode_cmd->pitches[0], stride);
1331 goto err;
1332 }
1333
1334 /* FIXME need to adjust LINOFF/TILEOFF accordingly. */
1335 if (mode_cmd->offsets[0] != 0) {
1336 drm_dbg_kms(&dev_priv->drm,
1337 "plane 0 offset (0x%08x) must be 0\n",
1338 mode_cmd->offsets[0]);
1339 goto err;
1340 }
1341
1342 drm_helper_mode_fill_fb_struct(&dev_priv->drm, fb, mode_cmd);
1343
1344 for (i = 0; i < fb->format->num_planes; i++) {
1345 u32 stride_alignment;
1346
1347 if (mode_cmd->handles[i] != mode_cmd->handles[0]) {
1348 drm_dbg_kms(&dev_priv->drm, "bad plane %d handle\n",
1349 i);
1350 goto err;
1351 }
1352
1353 stride_alignment = intel_fb_stride_alignment(fb, i);
1354 if (fb->pitches[i] & (stride_alignment - 1)) {
1355 drm_dbg_kms(&dev_priv->drm,
1356 "plane %d pitch (%d) must be at least %u byte aligned\n",
1357 i, fb->pitches[i], stride_alignment);
1358 goto err;
1359 }
1360
1361 if (is_gen12_ccs_plane(fb, i) && !is_gen12_ccs_cc_plane(fb, i)) {
1362 int ccs_aux_stride = gen12_ccs_aux_stride(fb, i);
1363
> 1364 if (fb->pitches[i] != ccs_aux_stride) {
1365 drm_dbg_kms(&dev_priv->drm,
1366 "ccs aux plane %d pitch (%d) must be %d\n",
1367 i,
1368 fb->pitches[i], ccs_aux_stride);
1369 goto err;
1370 }
1371 }
1372
1373 /* TODO: Add POT stride remapping support for CCS formats as well. */
1374 if (IS_ALDERLAKE_P(dev_priv) &&
1375 mode_cmd->modifier[i] != DRM_FORMAT_MOD_LINEAR &&
1376 !intel_fb_needs_pot_stride_remap(intel_fb) &&
1377 !is_power_of_2(mode_cmd->pitches[i])) {
1378 drm_dbg_kms(&dev_priv->drm,
1379 "plane %d pitch (%d) must be power of two for tiled buffers\n",
1380 i, mode_cmd->pitches[i]);
1381 goto err;
1382 }
1383
1384 fb->obj[i] = &obj->base;
1385 }
1386
1387 ret = intel_fill_fb_info(dev_priv, intel_fb);
1388 if (ret)
1389 goto err;
1390
1391 if (intel_fb_uses_dpt(fb)) {
1392 struct i915_address_space *vm;
1393
1394 vm = intel_dpt_create(intel_fb);
1395 if (IS_ERR(vm)) {
1396 ret = PTR_ERR(vm);
1397 goto err;
1398 }
1399
1400 intel_fb->dpt_vm = vm;
1401 }
1402
1403 ret = drm_framebuffer_init(&dev_priv->drm, fb, &intel_fb_funcs);
1404 if (ret) {
1405 drm_err(&dev_priv->drm, "framebuffer init failed %d\n", ret);
1406 goto err;
1407 }
1408
1409 return 0;
1410
1411 err:
1412 intel_frontbuffer_put(intel_fb->frontbuffer);
1413 return ret;
1414 }
1415
1416 struct drm_framebuffer *
> 1417 intel_user_framebuffer_create(struct drm_device *dev,
1418 struct drm_file *filp,
1419 const struct drm_mode_fb_cmd2 *user_mode_cmd)
1420 {
1421 struct drm_framebuffer *fb;
1422 struct drm_i915_gem_object *obj;
1423 struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd;
1424 struct drm_i915_private *i915;
1425
1426 obj = i915_gem_object_lookup(filp, mode_cmd.handles[0]);
1427 if (!obj)
1428 return ERR_PTR(-ENOENT);
1429
1430 /* object is backed with LMEM for discrete */
1431 i915 = to_i915(obj->base.dev);
1432 if (HAS_LMEM(i915) && !i915_gem_object_can_migrate(obj, INTEL_REGION_LMEM)) {
1433 /* object is "remote", not in local memory */
1434 i915_gem_object_put(obj);
1435 return ERR_PTR(-EREMOTE);
1436 }
1437
1438 fb = intel_framebuffer_create(obj, &mode_cmd);
1439 i915_gem_object_put(obj);
1440
1441 return fb;
1442 }
1443
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 45778 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20210829/e2e87ab0/attachment-0001.gz>
More information about the dri-devel
mailing list