igt_kms: add kmstest_unset_all_crtcs()

Both pm_rpm.c and pm_lpsp.c call it "disable_all_screens", but let's
give it a name that better describes what the implementation does.

v2: Rename to kmstest_unset_all_crtcs (Daniel).

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
This commit is contained in:
Paulo Zanoni 2014-08-06 14:31:53 -03:00
parent da458758e7
commit d52365677e
4 changed files with 23 additions and 21 deletions

View File

@ -1561,3 +1561,21 @@ void igt_reset_connectors(void)
close(drm_fd);
}
/**
* kmstest_unset_all_crtcs:
* @drm_fd: the DRM fd
* @resources: libdrm resources pointer
*
* Disables all the screens.
*/
void kmstest_unset_all_crtcs(int drm_fd, drmModeResPtr resources)
{
int i, rc;
for (i = 0; i < resources->count_crtcs; i++) {
rc = drmModeSetCrtc(drm_fd, resources->crtcs[i], -1, 0, 0, NULL,
0, NULL);
igt_assert(rc == 0);
}
}

View File

@ -146,6 +146,7 @@ void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode);
bool kmstest_get_property(int drm_fd, uint32_t object_id, uint32_t object_type,
const char *name, uint32_t *prop_id, uint64_t *value,
drmModePropertyPtr *prop);
void kmstest_unset_all_crtcs(int drm_fd, drmModeResPtr resources);
/*
* A small modeset API

View File

@ -70,22 +70,11 @@ static bool lpsp_is_enabled(int drm_fd)
return !(val & HSW_PWR_WELL_STATE_ENABLED);
}
static void disable_all_screens(int drm_fd, drmModeResPtr drm_resources)
{
int i, rc;
for (i = 0; i < drm_resources->count_crtcs; i++) {
rc = drmModeSetCrtc(drm_fd, drm_resources->crtcs[i], -1, 0, 0,
NULL, 0, NULL);
igt_assert(rc == 0);
}
}
/* The LPSP mode is all about an enabled pipe, but we expect to also be in the
* low power mode when no pipes are enabled, so do this check anyway. */
static void screens_disabled_subtest(int drm_fd, drmModeResPtr drm_res)
{
disable_all_screens(drm_fd, drm_res);
kmstest_unset_all_crtcs(drm_fd, drm_res);
igt_assert(lpsp_is_enabled(drm_fd));
}
@ -131,7 +120,7 @@ static void edp_subtest(int drm_fd, drmModeResPtr drm_res,
.name = "Custom 1024x768",
};
disable_all_screens(drm_fd, drm_res);
kmstest_unset_all_crtcs(drm_fd, drm_res);
for (i = 0; i < drm_res->count_connectors; i++) {
drmModeConnectorPtr c = drm_connectors[i];
@ -193,7 +182,7 @@ static void non_edp_subtest(int drm_fd, drmModeResPtr drm_res,
uint32_t connector_id = 0, crtc_id = 0, buffer_id = 0;
drmModeModeInfoPtr mode = NULL;
disable_all_screens(drm_fd, drm_res);
kmstest_unset_all_crtcs(drm_fd, drm_res);
for (i = 0; i < drm_res->count_connectors; i++) {
drmModeConnectorPtr c = drm_connectors[i];

View File

@ -232,13 +232,7 @@ static void disable_all_screens_dpms(struct mode_set_data *data)
static void disable_all_screens(struct mode_set_data *data)
{
int i, rc;
for (i = 0; i < data->res->count_crtcs; i++) {
rc = drmModeSetCrtc(drm_fd, data->res->crtcs[i], -1, 0, 0,
NULL, 0, NULL);
igt_assert(rc == 0);
}
kmstest_unset_all_crtcs(drm_fd, data->res);
}
static struct scanout_fb *create_fb(struct mode_set_data *data, int width,