mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-12 10:26:12 +00:00
tests/debugfs_pipe_crc: test all pipes
And skip them if there's no suitable connector. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
e6ad75c1c4
commit
070904bf59
@ -58,14 +58,17 @@ static void test_bad_command(data_t *data, const char *cmd)
|
|||||||
igt_assert_cmpint(errno, ==, EINVAL);
|
igt_assert_cmpint(errno, ==, EINVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void connector_init(data_t *data, connector_t *connector, uint32_t id)
|
static void connector_init(data_t *data, connector_t *connector,
|
||||||
|
uint32_t id, uint32_t crtc_id_mask)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = kmstest_get_connector_config(data->drm_fd, id, -1UL,
|
ret = kmstest_get_connector_config(data->drm_fd, id, crtc_id_mask,
|
||||||
&connector->config);
|
&connector->config);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
connector->valid = true;
|
connector->valid = true;
|
||||||
|
else
|
||||||
|
connector->valid = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,19 +116,22 @@ connector_set_mode(data_t *data, connector_t *connector, drmModeModeInfo *mode)
|
|||||||
|
|
||||||
static void display_init(data_t *data)
|
static void display_init(data_t *data)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
data->resources = drmModeGetResources(data->drm_fd);
|
data->resources = drmModeGetResources(data->drm_fd);
|
||||||
igt_assert(data->resources);
|
igt_assert(data->resources);
|
||||||
|
|
||||||
data->n_connectors = data->resources->count_connectors;
|
data->n_connectors = data->resources->count_connectors;
|
||||||
data->connectors = calloc(data->n_connectors, sizeof(connector_t));
|
data->connectors = calloc(data->n_connectors, sizeof(connector_t));
|
||||||
igt_assert(data->connectors);
|
igt_assert(data->connectors);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void connectors_init(data_t *data, uint32_t crtc_id_mask)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < data->n_connectors; i++) {
|
for (i = 0; i < data->n_connectors; i++) {
|
||||||
uint32_t id = data->resources->connectors[i];
|
uint32_t id = data->resources->connectors[i];
|
||||||
|
|
||||||
connector_init(data, &data->connectors[i], id);
|
connector_init(data, &data->connectors[i], id, crtc_id_mask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,10 +147,13 @@ static void display_fini(data_t *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static connector_t *
|
static connector_t *
|
||||||
display_find_first_valid_connector(data_t *data)
|
display_find_first_valid_connector(data_t *data,
|
||||||
|
uint32_t crtc_id_mask)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
connectors_init(data, crtc_id_mask);
|
||||||
|
|
||||||
for (i = 0; i < data->n_connectors; i++) {
|
for (i = 0; i < data->n_connectors; i++) {
|
||||||
connector_t *connector = &data->connectors[i];
|
connector_t *connector = &data->connectors[i];
|
||||||
|
|
||||||
@ -155,15 +164,14 @@ display_find_first_valid_connector(data_t *data)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_read_crc(data_t *data)
|
static void test_read_crc(data_t *data, int pipe)
|
||||||
{
|
{
|
||||||
connector_t *connector;
|
connector_t *connector;
|
||||||
igt_pipe_crc_t *pipe_crc;
|
igt_pipe_crc_t *pipe_crc;
|
||||||
igt_crc_t *crcs = NULL;
|
igt_crc_t *crcs = NULL;
|
||||||
|
|
||||||
connector = display_find_first_valid_connector(data);
|
connector = display_find_first_valid_connector(data, 1 << pipe);
|
||||||
if (!connector)
|
igt_require_f(connector, "No connector found for pipe %i\n", pipe);
|
||||||
igt_skip("Could not find a valid connector \n");
|
|
||||||
|
|
||||||
pipe_crc = igt_pipe_crc_new(&data->debugfs, data->drm_fd,
|
pipe_crc = igt_pipe_crc_new(&data->debugfs, data->drm_fd,
|
||||||
connector->config.pipe,
|
connector->config.pipe,
|
||||||
@ -238,8 +246,14 @@ int main(int argc, char **argv)
|
|||||||
igt_subtest("bad-nb-words-3")
|
igt_subtest("bad-nb-words-3")
|
||||||
test_bad_command(&data, "pipe A none option");
|
test_bad_command(&data, "pipe A none option");
|
||||||
|
|
||||||
igt_subtest("read-crc")
|
igt_subtest("read-crc-pipe-A")
|
||||||
test_read_crc(&data);
|
test_read_crc(&data, 0);
|
||||||
|
|
||||||
|
igt_subtest("read-crc-pipe-B")
|
||||||
|
test_read_crc(&data, 1);
|
||||||
|
|
||||||
|
igt_subtest("read-crc-pipe-C")
|
||||||
|
test_read_crc(&data, 2);
|
||||||
|
|
||||||
igt_fixture {
|
igt_fixture {
|
||||||
igt_pipe_crc_reset();
|
igt_pipe_crc_reset();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user