From: Mark Janes Date: Mon, 5 Aug 2019 21:40:29 +0000 (-0700) Subject: intel/perf: use common ioctl wrapper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ea66484e8604edf75df9f95c9e94b73f1e80639d;p=mesa.git 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 --- 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 +#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);