[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