diff options
Diffstat (limited to 'tests/drv_missed_irq.c')
-rw-r--r-- | tests/drv_missed_irq.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/tests/drv_missed_irq.c b/tests/drv_missed_irq.c index 652cbc20..7283a17b 100644 --- a/tests/drv_missed_irq.c +++ b/tests/drv_missed_irq.c @@ -29,8 +29,6 @@ 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)); @@ -118,16 +116,16 @@ static uint32_t engine_mask(void) uint32_t mask; FILE *file; - file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); + file = igt_debugfs_fopen("i915_ring_test_irq", "w"); fprintf(file, "0x%x", -1); fclose(file); mask = -1; - file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "r"); + file = igt_debugfs_fopen("i915_ring_test_irq", "r"); igt_ignore_warn(fscanf(file, "%x", &mask)); fclose(file); - file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); + file = igt_debugfs_fopen("i915_ring_test_irq", "w"); fprintf(file, "0"); fclose(file); @@ -138,7 +136,7 @@ static void enable_missed_irq(void) { FILE *file; - file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); + file = igt_debugfs_fopen("i915_ring_test_irq", "w"); fprintf(file, "0x%x", -1); fclose(file); } @@ -148,11 +146,11 @@ static uint32_t disable_missed_irq(void) FILE *file; uint32_t mask = 0; - file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "r"); + file = igt_debugfs_fopen("i915_ring_test_irq", "r"); igt_ignore_warn(fscanf(file, "%x", &mask)); fclose(file); - file = igt_debugfs_fopen(drm_fd, "i915_ring_test_irq", "w"); + file = igt_debugfs_fopen("i915_ring_test_irq", "w"); fprintf(file, "0"); fclose(file); @@ -165,19 +163,20 @@ igt_simple_main unsigned expect_rings; unsigned missed_rings; unsigned check_rings; + int fd; igt_skip_on_simulation(); bind_to_cpu(0); - drm_fd = drm_open_driver(DRIVER_INTEL); - igt_require_gem(drm_fd); - gem_require_mmap_wc(drm_fd); - igt_fork_hang_detector(drm_fd); + fd = drm_open_driver(DRIVER_INTEL); + igt_require_gem(fd); + gem_require_mmap_wc(fd); + igt_fork_hang_detector(fd); expect_rings = engine_mask(); igt_debug("Clearing rings %x\n", expect_rings); - intel_detect_and_clear_missed_interrupts(drm_fd); + intel_detect_and_clear_missed_interrupts(fd); for (e = intel_execution_engines; e->name; e++) { if (expect_rings == -1 && e->exec_id) continue; @@ -187,9 +186,9 @@ igt_simple_main igt_debug("Clearing ring %s [%x]\n", e->name, e->exec_id | e->flags); - trigger_missed_interrupt(drm_fd, e->exec_id | e->flags); + trigger_missed_interrupt(fd, e->exec_id | e->flags); } - igt_assert_eq(intel_detect_and_clear_missed_interrupts(drm_fd), 0); + igt_assert_eq(intel_detect_and_clear_missed_interrupts(fd), 0); igt_debug("Testing rings %x\n", expect_rings); enable_missed_irq(); @@ -202,9 +201,9 @@ igt_simple_main igt_debug("Executing on ring %s [%x]\n", e->name, e->exec_id | e->flags); - trigger_missed_interrupt(drm_fd, e->exec_id | e->flags); + trigger_missed_interrupt(fd, e->exec_id | e->flags); } - missed_rings = intel_detect_and_clear_missed_interrupts(drm_fd); + missed_rings = intel_detect_and_clear_missed_interrupts(fd); check_rings = disable_missed_irq(); igt_assert_eq_u32(check_rings, expect_rings); @@ -215,5 +214,5 @@ igt_simple_main igt_assert_eq_u32(missed_rings, expect_rings); igt_stop_hang_detector(); - close(drm_fd); + close(fd); } |