mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 09:26:10 +00:00
lib: add igt_pipe_crc_check
No need to duplicate this all over the place. Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
3e37eb3c6c
commit
c1b7e722da
@ -205,6 +205,24 @@ static void pipe_crc_exit_handler(int sig)
|
||||
igt_pipe_crc_reset();
|
||||
}
|
||||
|
||||
void igt_pipe_crc_check(igt_debugfs_t *debugfs)
|
||||
{
|
||||
const char *cmd = "pipe A none";
|
||||
FILE *ctl;
|
||||
size_t written;
|
||||
int ret;
|
||||
|
||||
ctl = igt_debugfs_fopen(debugfs, "i915_display_crc_ctl", "r+");
|
||||
igt_require_f(ctl,
|
||||
"No display_crc_ctl found, kernel too old\n");
|
||||
written = fwrite(cmd, 1, strlen(cmd), ctl);
|
||||
ret = fflush(ctl);
|
||||
igt_require_f((written == strlen(cmd) && ret == 0) || errno != ENODEV,
|
||||
"CRCs not supported on this platform\n");
|
||||
|
||||
fclose(ctl);
|
||||
}
|
||||
|
||||
igt_pipe_crc_t *
|
||||
igt_pipe_crc_new(igt_debugfs_t *debugfs, int drm_fd, enum pipe pipe,
|
||||
enum intel_pipe_crc_source source)
|
||||
|
@ -70,6 +70,7 @@ bool igt_crc_is_null(igt_crc_t *crc);
|
||||
bool igt_crc_equal(igt_crc_t *a, igt_crc_t *b);
|
||||
char *igt_crc_to_string(igt_crc_t *crc);
|
||||
|
||||
void igt_pipe_crc_check(igt_debugfs_t *debugfs);
|
||||
igt_pipe_crc_t *
|
||||
igt_pipe_crc_new(igt_debugfs_t *debugfs, int drm_fd, enum pipe pipe,
|
||||
enum intel_pipe_crc_source source);
|
||||
|
@ -53,7 +53,6 @@ typedef struct {
|
||||
int drm_fd;
|
||||
igt_debugfs_t debugfs;
|
||||
drmModeRes *resources;
|
||||
FILE *ctl;
|
||||
uint32_t fb_id[NUM_CURSOR_TYPES];
|
||||
struct kmstest_fb fb[NUM_CURSOR_TYPES];
|
||||
igt_pipe_crc_t **pipe_crc;
|
||||
@ -333,23 +332,12 @@ igt_main
|
||||
igt_skip_on_simulation();
|
||||
|
||||
igt_fixture {
|
||||
size_t written;
|
||||
int ret;
|
||||
const char *cmd = "pipe A none";
|
||||
|
||||
data.drm_fd = drm_open_any();
|
||||
|
||||
igt_set_vt_graphics_mode();
|
||||
|
||||
igt_debugfs_init(&data.debugfs);
|
||||
data.ctl = igt_debugfs_fopen(&data.debugfs,
|
||||
"i915_display_crc_ctl", "r+");
|
||||
igt_require_f(data.ctl,
|
||||
"No display_crc_ctl found, kernel too old\n");
|
||||
written = fwrite(cmd, 1, strlen(cmd), data.ctl);
|
||||
ret = fflush(data.ctl);
|
||||
igt_require_f((written == strlen(cmd) && ret == 0) || errno != ENODEV,
|
||||
"CRCs not supported on this platform\n");
|
||||
igt_pipe_crc_check(&data.debugfs);
|
||||
|
||||
display_init(&data);
|
||||
|
||||
@ -376,8 +364,6 @@ igt_main
|
||||
igt_subtest("cursor-black-invisible-offscreen")
|
||||
run_test(&data, BLACK_INVISIBLE, false);
|
||||
|
||||
igt_fixture {
|
||||
igt_fixture
|
||||
display_fini(&data);
|
||||
fclose(data.ctl);
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,6 @@ typedef struct {
|
||||
int drm_fd;
|
||||
igt_debugfs_t debugfs;
|
||||
drmModeRes *resources;
|
||||
FILE *ctl;
|
||||
igt_crc_t ref_crc[2];
|
||||
igt_pipe_crc_t **pipe_crc;
|
||||
drm_intel_bufmgr *bufmgr;
|
||||
@ -485,9 +484,6 @@ igt_main
|
||||
igt_skip_on_simulation();
|
||||
|
||||
igt_fixture {
|
||||
size_t written;
|
||||
int ret;
|
||||
const char *cmd = "pipe A none";
|
||||
char buf[64];
|
||||
FILE *status;
|
||||
|
||||
@ -497,14 +493,7 @@ igt_main
|
||||
data.devid = intel_get_drm_devid(data.drm_fd);
|
||||
|
||||
igt_debugfs_init(&data.debugfs);
|
||||
data.ctl = igt_debugfs_fopen(&data.debugfs,
|
||||
"i915_display_crc_ctl", "r+");
|
||||
igt_require_f(data.ctl,
|
||||
"No display_crc_ctl found, kernel too old\n");
|
||||
written = fwrite(cmd, 1, strlen(cmd), data.ctl);
|
||||
ret = fflush(data.ctl);
|
||||
igt_require_f((written == strlen(cmd) && ret == 0) || errno != ENODEV,
|
||||
"CRCs not supported on this platform\n");
|
||||
igt_pipe_crc_check(&data.debugfs);
|
||||
|
||||
status = igt_debugfs_fopen(&data.debugfs, "i915_fbc_status", "r");
|
||||
igt_require_f(status, "No i915_fbc_status found\n");
|
||||
@ -532,6 +521,5 @@ igt_main
|
||||
igt_fixture {
|
||||
drm_intel_bufmgr_destroy(data.bufmgr);
|
||||
display_fini(&data);
|
||||
fclose(data.ctl);
|
||||
}
|
||||
}
|
||||
|
@ -45,18 +45,21 @@ typedef struct {
|
||||
drmModeRes *resources;
|
||||
int n_connectors;
|
||||
connector_t *connectors;
|
||||
FILE *ctl;
|
||||
} data_t;
|
||||
|
||||
static void test_bad_command(data_t *data, const char *cmd)
|
||||
{
|
||||
FILE *ctl;
|
||||
size_t written;
|
||||
|
||||
written = fwrite(cmd, 1, strlen(cmd), data->ctl);
|
||||
fflush(data->ctl);
|
||||
ctl = igt_debugfs_fopen(&data->debugfs, "i915_display_crc_ctl", "r+");
|
||||
written = fwrite(cmd, 1, strlen(cmd), ctl);
|
||||
fflush(ctl);
|
||||
igt_assert_cmpint(written, ==, (strlen(cmd)));
|
||||
igt_assert(ferror(data->ctl));
|
||||
igt_assert(ferror(ctl));
|
||||
igt_assert_cmpint(errno, ==, EINVAL);
|
||||
|
||||
fclose(ctl);
|
||||
}
|
||||
|
||||
static void connector_init(data_t *data, connector_t *connector,
|
||||
@ -214,10 +217,6 @@ igt_main
|
||||
igt_skip_on_simulation();
|
||||
|
||||
igt_fixture {
|
||||
size_t written;
|
||||
int ret;
|
||||
const char *cmd = "pipe A none";
|
||||
|
||||
data.drm_fd = drm_open_any();
|
||||
|
||||
igt_set_vt_graphics_mode();
|
||||
@ -225,14 +224,7 @@ igt_main
|
||||
display_init(&data);
|
||||
|
||||
igt_debugfs_init(&data.debugfs);
|
||||
data.ctl = igt_debugfs_fopen(&data.debugfs,
|
||||
"i915_display_crc_ctl", "r+");
|
||||
igt_require_f(data.ctl,
|
||||
"No display_crc_ctl found, kernel too old\n");
|
||||
written = fwrite(cmd, 1, strlen(cmd), data.ctl);
|
||||
ret = fflush(data.ctl);
|
||||
igt_require_f((written == strlen(cmd) && ret == 0) || errno != ENODEV,
|
||||
"CRCs not supported on this platform\n");
|
||||
igt_pipe_crc_check(&data.debugfs);
|
||||
}
|
||||
|
||||
igt_subtest("bad-pipe")
|
||||
@ -257,6 +249,5 @@ igt_main
|
||||
|
||||
igt_fixture {
|
||||
display_fini(&data);
|
||||
fclose(data.ctl);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user