From: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Petri Latvala <Petri.latvala@intel.com>
Subject: [igt-dev] [PATCH i-g-t v4 1/3] lib/ioctl_wrapper: Add i915_get_param helper
Date: Tue, 4 Dec 2018 17:25:24 +0100 [thread overview]
Message-ID: <20181204162526.26687-1-lukasz.kalamarz@intel.com> (raw)
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
v3: Renamed function to i915_get_param, created internal error
checking function and helper function to check if given feature
is enabled.
Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Katarzyna Dec <katarzyna.dec@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Petri Latvala <Petri.latvala@intel.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Ankit K Nautiyal <ankit.k.nautiyal@intel.com>
---
lib/ioctl_wrappers.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
lib/ioctl_wrappers.h | 2 ++
2 files changed, 52 insertions(+)
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 9f255508..b48dad5b 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -468,6 +468,56 @@ void gem_sync(int fd, uint32_t handle)
errno = 0;
}
+static int
+__i915_get_param(int fd, struct drm_i915_getparam *gp)
+{
+ int err;
+
+ err = 0;
+ if (igt_ioctl(fd, DRM_IOCTL_I915_GETPARAM, gp))
+ err = -errno;
+
+ errno = 0;
+ return err;
+}
+
+/**
+ * i915_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 i915_get_param(int fd, uint32_t param)
+{
+ int value;
+ drm_i915_getparam_t gp = {
+ .param = param,
+ .value = &value
+ };
+
+ igt_assert_eq(__i915_get_param(fd, &gp), 0);
+
+ return value;
+}
+
+/**
+ * i915_has_feature:
+ * @fd: open i915 drm file descriptor
+ * @param: drm parameter we want to read
+ *
+ * Helper function that check if given functionality is enabled.
+ * Check is done via getparam IOCTL.
+ *
+ * Return: Value whether feature is enabled or not
+ */
+
+bool i915_has_feature(int fd, uint32_t param)
+{
+ return i915_get_param(fd, param) > 0;
+}
bool gem_create__has_stolen_support(int fd)
{
diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
index b22b36b0..c314a070 100644
--- a/lib/ioctl_wrappers.h
+++ b/lib/ioctl_wrappers.h
@@ -74,6 +74,8 @@ 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 i915_get_param(int fd, uint32_t param);
+bool i915_has_feature(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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next reply other threads:[~2018-12-04 16:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-04 16:25 Lukasz Kalamarz [this message]
2018-12-04 16:25 ` [igt-dev] [PATCH i-g-t v4 2/3] tests: Use i915_get_param where applicable Lukasz Kalamarz
2018-12-04 16:25 ` [igt-dev] [PATCH i-g-t v4 3/3] lib: Use i915_get_param where it is applicable Lukasz Kalamarz
2018-12-04 16:41 ` Chris Wilson
2018-12-04 16:39 ` [igt-dev] [PATCH i-g-t v4 1/3] lib/ioctl_wrapper: Add i915_get_param helper Chris Wilson
2018-12-04 16:40 ` Chris Wilson
2018-12-04 17:12 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v4,1/3] " Patchwork
2018-12-05 0:39 ` [igt-dev] [PATCH i-g-t v4 1/3] " Daniele Ceraolo Spurio
2018-12-05 2:24 ` [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,v4,1/3] " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181204162526.26687-1-lukasz.kalamarz@intel.com \
--to=lukasz.kalamarz@intel.com \
--cc=Petri.latvala@intel.com \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox