mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-09 00:46:17 +00:00
lib: add igt_enable_connectors and igt_reset_connectors
igt_enable_connectors forces connectors to be enabled where doing so is known to work well. igt_reset_connectors resets the force state on all connectors.
This commit is contained in:
parent
13cd79c128
commit
b6ed9fb0d9
@ -1381,3 +1381,73 @@ void igt_wait_for_vblank(int drm_fd, enum pipe pipe)
|
|||||||
|
|
||||||
igt_assert(drmWaitVBlank(drm_fd, &wait_vbl) == 0);
|
igt_assert(drmWaitVBlank(drm_fd, &wait_vbl) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void reset_connectors_at_exit(int sig)
|
||||||
|
{
|
||||||
|
igt_reset_connectors();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* igt_enable_connectors:
|
||||||
|
*
|
||||||
|
* Force connectors to be enabled where this is known to work well. Use
|
||||||
|
* #igt_reset_connectors to revert the changes.
|
||||||
|
*
|
||||||
|
* An exit handler is installed to ensure connectors are reset when the test
|
||||||
|
* exits.
|
||||||
|
*/
|
||||||
|
void igt_enable_connectors(void)
|
||||||
|
{
|
||||||
|
drmModeRes *res;
|
||||||
|
drmModeConnector *c;
|
||||||
|
int drm_fd;
|
||||||
|
|
||||||
|
drm_fd = drm_open_any();
|
||||||
|
|
||||||
|
res = drmModeGetResources(drm_fd);
|
||||||
|
|
||||||
|
for (int i = 0; i < res->count_connectors; i++) {
|
||||||
|
|
||||||
|
c = drmModeGetConnector(drm_fd, res->connectors[i]);
|
||||||
|
|
||||||
|
/* don't attempt to force connectors that are already connected
|
||||||
|
*/
|
||||||
|
if (c->connection == DRM_MODE_CONNECTED)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* just enable VGA for now */
|
||||||
|
if (c->connector_type == DRM_MODE_CONNECTOR_VGA)
|
||||||
|
kmstest_force_connector(drm_fd, c, FORCE_CONNECTOR_ON);
|
||||||
|
|
||||||
|
drmModeFreeConnector(c);
|
||||||
|
}
|
||||||
|
close(drm_fd);
|
||||||
|
|
||||||
|
igt_install_exit_handler(reset_connectors_at_exit);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* igt_reset_connectors:
|
||||||
|
*
|
||||||
|
* Remove any forced state from the connectors.
|
||||||
|
*/
|
||||||
|
void igt_reset_connectors(void)
|
||||||
|
{
|
||||||
|
drmModeRes *res;
|
||||||
|
drmModeConnector *c;
|
||||||
|
int drm_fd;
|
||||||
|
|
||||||
|
drm_fd = drm_open_any();
|
||||||
|
res = drmModeGetResources(drm_fd);
|
||||||
|
|
||||||
|
for (int i = 0; i < res->count_connectors; i++) {
|
||||||
|
|
||||||
|
c = drmModeGetConnector(drm_fd, res->connectors[i]);
|
||||||
|
|
||||||
|
kmstest_force_connector(drm_fd, c, FORCE_CONNECTOR_UNSPECIFIED);
|
||||||
|
|
||||||
|
drmModeFreeConnector(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
close(drm_fd);
|
||||||
|
}
|
||||||
|
@ -228,5 +228,8 @@ void igt_wait_for_vblank(int drm_fd, enum pipe pipe);
|
|||||||
|
|
||||||
#define IGT_FIXED(i,f) ((i) << 16 | (f))
|
#define IGT_FIXED(i,f) ((i) << 16 | (f))
|
||||||
|
|
||||||
|
void igt_enable_connectors(void);
|
||||||
|
void igt_reset_connectors(void);
|
||||||
|
|
||||||
#endif /* __IGT_KMS_H__ */
|
#endif /* __IGT_KMS_H__ */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user