/**
* igt_debugfs_open:
- * @debugfs: debugfs access structure
* @filename: name of the debugfs node to open
* @mode: mode bits as used by open()
*
* This opens a debugfs file as a Unix file descriptor. The filename should be
* relative to the drm device's root, i.e without "drm/<minor>".
+ *
+ * Returns:
+ * The Unix file descriptor for the debugfs file or -1 if that didn't work out.
*/
-int igt_debugfs_open(igt_debugfs_t *debugfs, const char *filename, int mode)
+int igt_debugfs_open(const char *filename, int mode)
{
char buf[1024];
+ igt_debugfs_t *debugfs = __igt_debugfs_singleton();
+
+ if (!debugfs)
+ return -1;
sprintf(buf, "%s/%s", debugfs->dri_path, filename);
return open(buf, mode);
static void igt_pipe_crc_reset(void)
{
- igt_debugfs_t debugfs;
int fd;
- igt_debugfs_init(&debugfs);
- fd = igt_debugfs_open(&debugfs, "i915_display_crc_ctl", O_WRONLY);
+ fd = igt_debugfs_open("i915_display_crc_ctl", O_WRONLY);
igt_pipe_crc_pipe_off(fd, PIPE_A);
igt_pipe_crc_pipe_off(fd, PIPE_B);
pipe_crc = calloc(1, sizeof(struct _igt_pipe_crc));
- pipe_crc->ctl_fd = igt_debugfs_open(debugfs,
- "i915_display_crc_ctl", O_WRONLY);
+ pipe_crc->ctl_fd = igt_debugfs_open("i915_display_crc_ctl", O_WRONLY);
igt_assert(pipe_crc->ctl_fd != -1);
sprintf(buf, "i915_pipe_%c_crc", pipe_name(pipe));
- pipe_crc->crc_fd = igt_debugfs_open(debugfs, buf, O_RDONLY);
+ pipe_crc->crc_fd = igt_debugfs_open(buf, O_RDONLY);
igt_assert(pipe_crc->crc_fd != -1);
pipe_crc->line_len = PIPE_CRC_LINE_LEN;
*/
void igt_drop_caches_set(uint64_t val)
{
- igt_debugfs_t debugfs;
int fd;
char data[19];
size_t nbytes;
sprintf(data, "0x%" PRIx64, val);
- igt_debugfs_init(&debugfs);
- fd = igt_debugfs_open(&debugfs, "i915_gem_drop_caches", O_WRONLY);
+ fd = igt_debugfs_open("i915_gem_drop_caches", O_WRONLY);
igt_assert(fd >= 0);
nbytes = write(fd, data, strlen(data) + 1);
* This functions opens the debugfs forcewake file and so prevents the GT from
* suspending. The reference is automatically dropped when the is closed.
*
- * Returns: The file descriptor of the forcewake handle or -1 if that didn't
- * work out.
+ * Returns:
+ * The file descriptor of the forcewake handle or -1 if that didn't work out.
*/
int igt_open_forcewake_handle(void)
{
- igt_debugfs_t debugfs;
- int fd;
-
- if (!__igt_debugfs_init(&debugfs))
- return -1;
-
- fd = igt_debugfs_open(&debugfs, "i915_forcewake_user", O_WRONLY);
-
- return fd;
+ return igt_debugfs_open("i915_forcewake_user", O_WRONLY);
}
#define CONTEXT_DESTROY_IOCTL DRM_IOWR(DRM_COMMAND_BASE + 0x2e, struct local_drm_i915_gem_context_destroy)
#define GET_RESET_STATS_IOCTL DRM_IOWR(DRM_COMMAND_BASE + 0x32, struct local_drm_i915_reset_stats)
-static igt_debugfs_t dfs;
-
#define LOCAL_I915_EXEC_VEBOX (4 << 0)
struct target_ring;
igt_assert((mask & ~((1 << NUM_RINGS) - 1)) == 0);
igt_assert(snprintf(buf, sizeof(buf), "0x%02x", mask) == 4);
- fd = igt_debugfs_open(&dfs, "i915_ring_stop", O_WRONLY);
+ fd = igt_debugfs_open("i915_ring_stop", O_WRONLY);
igt_assert(fd >= 0);
igt_assert(write(fd, buf, 4) == 4);
igt_skip_on_f(ret != 0 && (errno == ENODEV || errno == EINVAL),
"Kernel is too old, or contexts not supported: %s\n",
strerror(errno));
-
- igt_debugfs_init(&dfs);
}
igt_subtest("params")
{ "cur", "r", NULL }, { "min", "rb+", NULL }, { "max", "rb+", NULL }, { "RP0", "r", NULL }, { "RP1", "r", NULL }, { "RPn", "r", NULL }, { NULL, NULL, NULL }
};
-static igt_debugfs_t dfs;
-
static int readval(FILE *filp)
{
int val;
int fd;
static const char data[] = "0xf";
- fd = igt_debugfs_open(&dfs, "i915_ring_stop", O_WRONLY);
+ fd = igt_debugfs_open("i915_ring_stop", O_WRONLY);
igt_assert(fd >= 0);
igt_debug("injecting ring stop\n");
static char buf[128];
unsigned long long val;
- fd = igt_debugfs_open(&dfs, "i915_ring_stop", O_RDONLY);
+ fd = igt_debugfs_open("i915_ring_stop", O_RDONLY);
igt_assert(fd >= 0);
igt_assert(read(fd, buf, sizeof(buf)) > 0);
igt_install_exit_handler(pm_rps_exit_handler);
load_helper_init();
-
- igt_debugfs_init(&dfs);
}
igt_subtest("basic-api")