diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2017-03-21 17:16:03 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2017-03-21 17:36:02 +0000 |
commit | 83884e97e18739e3588c6467a210838099d42073 (patch) | |
tree | 778bab4b309c852d3649cc901952267d0cbb5992 /tests/drv_missed_irq.c | |
parent | 25fbae15262cf570e207e62f50e7c5233e06bc67 (diff) |
Restore "lib: Open debugfs files for the given DRM device"
This reverts commit 25fbae15262cf570e207e62f50e7c5233e06bc67, restoring
commit 301ad44cdf1b868b1ab89096721da91fa8541fdc
Author: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Thu Mar 2 10:37:11 2017 +0100
lib: Open debugfs files for the given DRM device
with fixes.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/drv_missed_irq.c')
-rw-r--r-- | tests/drv_missed_irq.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/tests/drv_missed_irq.c b/tests/drv_missed_irq.c index 7283a17b..652cbc20 100644 --- a/tests/drv_missed_irq.c +++ b/tests/drv_missed_irq.c @@ -29,6 +29,8 @@ IGT_TEST_DESCRIPTION("Inject missed interrupts and make sure they are caught"); +static int drm_fd; + static void trigger_missed_interrupt(int fd, unsigned ring) { const int gen = intel_gen(intel_get_drm_devid(fd)); @@ -116,16 +118,16 @@ static uint32_t engine_mask(void) uint32_t mask; FILE *file; - file = igt_debugfs_fopen("i915_ring_test_irq", "w"); + file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); fprintf(file, "0x%x", -1); fclose(file); mask = -1; - file = igt_debugfs_fopen("i915_ring_test_irq", "r"); + file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "r"); igt_ignore_warn(fscanf(file, "%x", &mask)); fclose(file); - file = igt_debugfs_fopen("i915_ring_test_irq", "w"); + file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); fprintf(file, "0"); fclose(file); @@ -136,7 +138,7 @@ static void enable_missed_irq(void) { FILE *file; - file = igt_debugfs_fopen("i915_ring_test_irq", "w"); + file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); fprintf(file, "0x%x", -1); fclose(file); } @@ -146,11 +148,11 @@ static uint32_t disable_missed_irq(void) FILE *file; uint32_t mask = 0; - file = igt_debugfs_fopen("i915_ring_test_irq", "r"); + file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "r"); igt_ignore_warn(fscanf(file, "%x", &mask)); fclose(file); - file = igt_debugfs_fopen("i915_ring_test_irq", "w"); + file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); fprintf(file, "0"); fclose(file); @@ -163,20 +165,19 @@ igt_simple_main unsigned expect_rings; unsigned missed_rings; unsigned check_rings; - int fd; igt_skip_on_simulation(); bind_to_cpu(0); - fd = drm_open_driver(DRIVER_INTEL); - igt_require_gem(fd); - gem_require_mmap_wc(fd); - igt_fork_hang_detector(fd); + drm_fd = drm_open_driver(DRIVER_INTEL); + igt_require_gem(drm_fd); + gem_require_mmap_wc(drm_fd); + igt_fork_hang_detector(drm_fd); expect_rings = engine_mask(); igt_debug("Clearing rings %x\n", expect_rings); - intel_detect_and_clear_missed_interrupts(fd); + intel_detect_and_clear_missed_interrupts(drm_fd); for (e = intel_execution_engines; e->name; e++) { if (expect_rings == -1 && e->exec_id) continue; @@ -186,9 +187,9 @@ igt_simple_main igt_debug("Clearing ring %s [%x]\n", e->name, e->exec_id | e->flags); - trigger_missed_interrupt(fd, e->exec_id | e->flags); + trigger_missed_interrupt(drm_fd, e->exec_id | e->flags); } - igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0); + igt_assert_eq(intel_detect_and_clear_missed_interrupts(drm_fd), 0); igt_debug("Testing rings %x\n", expect_rings); enable_missed_irq(); @@ -201,9 +202,9 @@ igt_simple_main igt_debug("Executing on ring %s [%x]\n", e->name, e->exec_id | e->flags); - trigger_missed_interrupt(fd, e->exec_id | e->flags); + trigger_missed_interrupt(drm_fd, e->exec_id | e->flags); } - missed_rings = intel_detect_and_clear_missed_interrupts(fd); + missed_rings = intel_detect_and_clear_missed_interrupts(drm_fd); check_rings = disable_missed_irq(); igt_assert_eq_u32(check_rings, expect_rings); @@ -214,5 +215,5 @@ igt_simple_main igt_assert_eq_u32(missed_rings, expect_rings); igt_stop_hang_detector(); - close(fd); + close(drm_fd); } |