summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMark Janes <[email protected]>2019-08-05 14:40:29 -0700
committerMark Janes <[email protected]>2019-08-07 21:33:55 -0700
commitea66484e8604edf75df9f95c9e94b73f1e80639d (patch)
tree1a1cfe3002258bbf806a76a351fc381885cf9f20 /src
parent07d3bd5c46f98df977e9f305d527e3b3a18ea850 (diff)
intel/perf: use common ioctl wrapper
There were multiple ioctl-wrapper functions, so a common implementation was put in gen_gem.h. With a common implementation, perf no longer needs the caller to configure one for it. Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/intel/perf/gen_perf.c7
-rw-r--r--src/intel/perf/gen_perf.h7
-rw-r--r--src/mesa/drivers/dri/i965/brw_performance_query.c2
3 files changed, 6 insertions, 10 deletions
diff --git a/src/intel/perf/gen_perf.c b/src/intel/perf/gen_perf.c
index 758353956fc..9289accb91f 100644
--- a/src/intel/perf/gen_perf.c
+++ b/src/intel/perf/gen_perf.c
@@ -31,6 +31,7 @@
#include <drm-uapi/i915_drm.h>
+#include "common/gen_gem.h"
#include "gen_perf.h"
#include "perf/gen_perf_metrics.h"
@@ -214,8 +215,8 @@ kernel_has_dynamic_config_support(struct gen_perf_config *perf, int fd)
{
uint64_t invalid_config_id = UINT64_MAX;
- return perf->ioctl(fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG,
- &invalid_config_id) < 0 && errno == ENOENT;
+ return gen_ioctl(fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG,
+ &invalid_config_id) < 0 && errno == ENOENT;
}
bool
@@ -259,7 +260,7 @@ init_oa_configs(struct gen_perf_config *perf, int fd)
config.n_flex_regs = query->n_flex_regs;
config.flex_regs_ptr = (uintptr_t) query->flex_regs;
- ret = perf->ioctl(fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, &config);
+ ret = gen_ioctl(fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, &config);
if (ret < 0) {
DBG("Failed to load \"%s\" (%s) metrics set in kernel: %s\n",
query->name, query->guid, strerror(errno));
diff --git a/src/intel/perf/gen_perf.h b/src/intel/perf/gen_perf.h
index cb2768e45ce..f6de5caf8c9 100644
--- a/src/intel/perf/gen_perf.h
+++ b/src/intel/perf/gen_perf.h
@@ -188,8 +188,6 @@ struct gen_perf_config {
/* Location of the device's sysfs entry. */
char sysfs_dev_dir[256];
-
- int (*ioctl)(int, unsigned long, void *);
};
static inline size_t
@@ -264,12 +262,9 @@ gen_perf_query_info_add_basic_stat_reg(struct gen_perf_query_info *query,
}
static inline struct gen_perf_config *
-gen_perf_new(void *ctx, int (*ioctl_cb)(int, unsigned long, void *))
+gen_perf_new(void *ctx)
{
struct gen_perf_config *perf = rzalloc(ctx, struct gen_perf_config);
-
- perf->ioctl = ioctl_cb;
-
return perf;
}
diff --git a/src/mesa/drivers/dri/i965/brw_performance_query.c b/src/mesa/drivers/dri/i965/brw_performance_query.c
index eb2830a21f9..5a3794a113e 100644
--- a/src/mesa/drivers/dri/i965/brw_performance_query.c
+++ b/src/mesa/drivers/dri/i965/brw_performance_query.c
@@ -1733,7 +1733,7 @@ brw_init_perf_query_info(struct gl_context *ctx)
if (brw->perfquery.perf)
return brw->perfquery.perf->n_queries;
- brw->perfquery.perf = gen_perf_new(brw, drmIoctl);
+ brw->perfquery.perf = gen_perf_new(brw);
init_pipeline_statistic_query_registers(brw);
brw_perf_query_register_mdapi_statistic_query(brw);