mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									da458758e7
								
							
						
					
					
						commit
						d52365677e
					
				@ -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);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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];
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user