[igt-dev] [PATCH i-g-t v5 1/4] lib/igt_vc4: Rework igt_vc4_get_param()

Maíra Canal mcanal at igalia.com
Thu Jan 12 19:37:39 UTC 2023


Instead of returning the error code of the DRM_IOCTL_VC4_GET_PARAM ioctl,
make igt_vc4_get_param() return the value of the parameter, considering
that the current return is not being used and the value of the parameter
is being used. If an invalid parameter is passed to the ioctl, return 0.

Signed-off-by: Maíra Canal <mcanal at igalia.com>
---
 lib/igt_vc4.c                | 17 +++++++++++++----
 lib/igt_vc4.h                |  2 +-
 tests/vc4/vc4_purgeable_bo.c |  5 +----
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 6b6ad16c..3ec8a2c4 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -168,7 +168,17 @@ uint64_t igt_vc4_get_tiling(int fd, uint32_t handle)
 	return get.modifier;
 }
 
-int igt_vc4_get_param(int fd, uint32_t param, uint64_t *val)
+/**
+ * igt_vc4_get_param:
+ * @fd: device file descriptor
+ * @param: vc4 parameter
+ *
+ * This wraps the GET_PARAM ioctl.
+ *
+ * Returns the current value of the parameter. If the parameter is
+ * invalid, returns 0.
+ */
+uint64_t igt_vc4_get_param(int fd, uint32_t param)
 {
 	struct drm_vc4_get_param arg = {
 		.param = param,
@@ -177,10 +187,9 @@ int igt_vc4_get_param(int fd, uint32_t param, uint64_t *val)
 
 	ret = igt_ioctl(fd, DRM_IOCTL_VC4_GET_PARAM, &arg);
 	if (ret)
-		return ret;
+		return 0;
 
-	*val = arg.value;
-	return 0;
+	return arg.value;
 }
 
 bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable)
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index 384d7d6e..4c08f175 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -31,7 +31,7 @@
 uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval);
 int igt_vc4_create_bo(int fd, size_t size);
 void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
-int igt_vc4_get_param(int fd, uint32_t param, uint64_t *val);
+uint64_t igt_vc4_get_param(int fd, uint32_t param);
 bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable);
 bool igt_vc4_is_tiled(uint64_t modifier);
 bool igt_vc4_is_v3d(int fd);
diff --git a/tests/vc4/vc4_purgeable_bo.c b/tests/vc4/vc4_purgeable_bo.c
index 676bc1f3..27771012 100644
--- a/tests/vc4/vc4_purgeable_bo.c
+++ b/tests/vc4/vc4_purgeable_bo.c
@@ -102,11 +102,8 @@ igt_main
 	int fd, ret;
 
 	igt_fixture {
-		uint64_t val = 0;
-
 		fd = drm_open_driver(DRIVER_VC4);
-		igt_vc4_get_param(fd, DRM_VC4_PARAM_SUPPORTS_MADVISE, &val);
-		igt_require(val);
+		igt_require(igt_vc4_get_param(fd, DRM_VC4_PARAM_SUPPORTS_MADVISE));
 		IGT_INIT_LIST_HEAD(&list);
 	}
 
-- 
2.39.0



More information about the igt-dev mailing list