[igt-dev] [PATCH i-g-t v3 1/3] lib/ioctl_wrapper: Add i915_get_param helper

Nautiyal, Ankit K ankit.k.nautiyal at intel.com
Tue Nov 27 06:42:32 UTC 2018



-----Original Message-----
From: igt-dev [mailto:igt-dev-bounces at lists.freedesktop.org] On Behalf Of Lukasz Kalamarz
Sent: Monday, November 26, 2018 9:06 PM
To: igt-dev at lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t v3 1/3] lib/ioctl_wrapper: Add i915_get_param helper

getparam is used in few places across IGT, but no helper function is used to reduce code duplication.
v2: Added doc part and changed return value in case of error

Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz at intel.com>

Cc: Michal Winiarski <michal.winiarski at intel.com>
Cc: Katarzyna Dec <katarzyna.dec at intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
---
 lib/ioctl_wrappers.c | 22 ++++++++++++++++++++++  lib/ioctl_wrappers.h |  1 +
 2 files changed, 23 insertions(+)

diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c index 9f255508..aec4f15e 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -468,6 +468,28 @@ void gem_sync(int fd, uint32_t handle)
 	errno = 0;
 }
 
+/**
+ * drm_get_param:
+ * @fd: open i915 drm file descriptor
+ * @param: drm parameter we want to read
+ *
+ * Helper function that execute GETPARAM ioctl for a given parameter.
+ *
+ * Return: Read value from GETPARAM
+ */
+int drm_get_param(int fd, uint32_t param) {
+	int value;
+	drm_i915_getparam_t gp = {
+		.param = param,
+		.value = &value
+	};
+
+	if (igt_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp) == -1)
+		return -EINVAL;
+

I think the ioctl can return some error value other than -1.
Shouldn’t  < 0 a proper check?
I suggest store the return value of the ioctl, check for < 0 and return the ret value in case of ioctl failure.

-Ankit

+	return value;
+}
 
 bool gem_create__has_stolen_support(int fd)  { diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h index b22b36b0..90174d13 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -74,6 +74,7 @@ int __gem_set_domain(int fd, uint32_t handle, uint32_t read, uint32_t write);  void gem_set_domain(int fd, uint32_t handle, uint32_t read, uint32_t write);  int gem_wait(int fd, uint32_t handle, int64_t *timeout_ns);  void gem_sync(int fd, uint32_t handle);
+int drm_get_param(int fd, uint32_t param);
 bool gem_create__has_stolen_support(int fd);  uint32_t __gem_create_stolen(int fd, uint64_t size);  uint32_t gem_create_stolen(int fd, uint64_t size);
--
2.17.2

_______________________________________________
igt-dev mailing list
igt-dev at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list