mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-20 14:26:17 +00:00
lib/igt_kms: Shuffle kmtests_ functions
Group them a bit both in the header and .c file, and make sure they appear in the same order in both. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
33f0884f3c
commit
3b39bfff60
414
lib/igt_kms.c
414
lib/igt_kms.c
@ -227,34 +227,6 @@ int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id)
|
|||||||
return pfci.pipe;
|
return pfci.pipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode)
|
|
||||||
{
|
|
||||||
int i, dpms = 0;
|
|
||||||
bool found_it = false;
|
|
||||||
|
|
||||||
for (i = 0; i < connector->count_props; i++) {
|
|
||||||
struct drm_mode_get_property prop;
|
|
||||||
|
|
||||||
prop.prop_id = connector->props[i];
|
|
||||||
prop.count_values = 0;
|
|
||||||
prop.count_enum_blobs = 0;
|
|
||||||
if (drmIoctl(fd, DRM_IOCTL_MODE_GETPROPERTY, &prop))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (strcmp(prop.name, "DPMS"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
dpms = prop.prop_id;
|
|
||||||
found_it = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
igt_assert_f(found_it, "DPMS property not found on %d\n",
|
|
||||||
connector->connector_id);
|
|
||||||
|
|
||||||
igt_assert(drmModeConnectorSetProperty(fd, connector->connector_id,
|
|
||||||
dpms, mode) == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static signed long set_vt_mode(unsigned long mode)
|
static signed long set_vt_mode(unsigned long mode)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
@ -310,6 +282,115 @@ void kmstest_set_vt_graphics_mode(void)
|
|||||||
orig_vt_mode = ret;
|
orig_vt_mode = ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int get_card_number(int fd)
|
||||||
|
{
|
||||||
|
struct stat buf;
|
||||||
|
|
||||||
|
/* find the minor number of the device */
|
||||||
|
fstat(fd, &buf);
|
||||||
|
|
||||||
|
return minor(buf.st_rdev) & 0x3f;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char* get_debugfs_connector_path(int drm_fd, drmModeConnector *connector,
|
||||||
|
const char *file)
|
||||||
|
{
|
||||||
|
char *path;
|
||||||
|
|
||||||
|
asprintf(&path, "/sys/kernel/debug/dri/%d/%s-%d/%s",
|
||||||
|
get_card_number(drm_fd),
|
||||||
|
kmstest_connector_type_str(connector->connector_type),
|
||||||
|
connector->connector_type_id,
|
||||||
|
file);
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* kmstest_force_connector:
|
||||||
|
* @fd: drm file descriptor
|
||||||
|
* @connector: connector
|
||||||
|
* @state: state to force on @connector
|
||||||
|
*
|
||||||
|
* Force the specified state on the specified connector.
|
||||||
|
*
|
||||||
|
* Returns: true on success
|
||||||
|
*/
|
||||||
|
bool kmstest_force_connector(int drm_fd, drmModeConnector *connector,
|
||||||
|
enum kmstest_force_connector_state state)
|
||||||
|
{
|
||||||
|
char *path;
|
||||||
|
const char *value;
|
||||||
|
int debugfs_fd, ret;
|
||||||
|
|
||||||
|
switch (state) {
|
||||||
|
case FORCE_CONNECTOR_ON:
|
||||||
|
value = "on";
|
||||||
|
break;
|
||||||
|
case FORCE_CONNECTOR_DIGITAL:
|
||||||
|
value = "digital";
|
||||||
|
break;
|
||||||
|
case FORCE_CONNECTOR_OFF:
|
||||||
|
value = "off";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
case FORCE_CONNECTOR_UNSPECIFIED:
|
||||||
|
value = "unspecified";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
path = get_debugfs_connector_path(drm_fd, connector, "force");
|
||||||
|
debugfs_fd = open(path, O_WRONLY | O_TRUNC);
|
||||||
|
free(path);
|
||||||
|
|
||||||
|
if (debugfs_fd == -1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = write(debugfs_fd, value, strlen(value));
|
||||||
|
close(debugfs_fd);
|
||||||
|
|
||||||
|
igt_assert(ret != -1);
|
||||||
|
return (ret == -1) ? false : true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* kmstest_force_edid:
|
||||||
|
* @drm_fd: drm file descriptor
|
||||||
|
* @connector: connector to set @edid on
|
||||||
|
* @edid: An EDID data block
|
||||||
|
* @length: length of the EDID data. #EDID_LENGTH defines the standard EDID
|
||||||
|
* length
|
||||||
|
*
|
||||||
|
* Set the EDID data on @connector to @edid. See #generic_edid and
|
||||||
|
* #kmstest_generic_edid for a set of generic EDID data blocks.
|
||||||
|
*
|
||||||
|
* If @length is zero, the forced EDID will be removed.
|
||||||
|
*/
|
||||||
|
void kmstest_force_edid(int drm_fd, drmModeConnector *connector,
|
||||||
|
const unsigned char *edid, size_t length)
|
||||||
|
{
|
||||||
|
char *path;
|
||||||
|
int debugfs_fd, ret;
|
||||||
|
|
||||||
|
path = get_debugfs_connector_path(drm_fd, connector, "edid_override");
|
||||||
|
|
||||||
|
debugfs_fd = open(path, O_WRONLY | O_TRUNC);
|
||||||
|
|
||||||
|
free(path);
|
||||||
|
|
||||||
|
igt_assert(debugfs_fd != -1);
|
||||||
|
|
||||||
|
if (length == 0)
|
||||||
|
ret = write(debugfs_fd, "reset", 5);
|
||||||
|
else
|
||||||
|
ret = write(debugfs_fd, edid, length);
|
||||||
|
close(debugfs_fd);
|
||||||
|
|
||||||
|
igt_assert(ret != -1);
|
||||||
|
}
|
||||||
|
|
||||||
int kmstest_get_connector_default_mode(int drm_fd, drmModeConnector *connector,
|
int kmstest_get_connector_default_mode(int drm_fd, drmModeConnector *connector,
|
||||||
drmModeModeInfo *mode)
|
drmModeModeInfo *mode)
|
||||||
{
|
{
|
||||||
@ -423,115 +504,6 @@ err1:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int get_card_number(int fd)
|
|
||||||
{
|
|
||||||
struct stat buf;
|
|
||||||
|
|
||||||
/* find the minor number of the device */
|
|
||||||
fstat(fd, &buf);
|
|
||||||
|
|
||||||
return minor(buf.st_rdev) & 0x3f;
|
|
||||||
}
|
|
||||||
|
|
||||||
static char* get_debugfs_connector_path(int drm_fd, drmModeConnector *connector,
|
|
||||||
const char *file)
|
|
||||||
{
|
|
||||||
char *path;
|
|
||||||
|
|
||||||
asprintf(&path, "/sys/kernel/debug/dri/%d/%s-%d/%s",
|
|
||||||
get_card_number(drm_fd),
|
|
||||||
kmstest_connector_type_str(connector->connector_type),
|
|
||||||
connector->connector_type_id,
|
|
||||||
file);
|
|
||||||
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* kmstest_force_connector:
|
|
||||||
* @fd: drm file descriptor
|
|
||||||
* @connector: connector
|
|
||||||
* @state: state to force on @connector
|
|
||||||
*
|
|
||||||
* Force the specified state on the specified connector.
|
|
||||||
*
|
|
||||||
* Returns: true on success
|
|
||||||
*/
|
|
||||||
bool kmstest_force_connector(int drm_fd, drmModeConnector *connector,
|
|
||||||
enum kmstest_force_connector_state state)
|
|
||||||
{
|
|
||||||
char *path;
|
|
||||||
const char *value;
|
|
||||||
int debugfs_fd, ret;
|
|
||||||
|
|
||||||
switch (state) {
|
|
||||||
case FORCE_CONNECTOR_ON:
|
|
||||||
value = "on";
|
|
||||||
break;
|
|
||||||
case FORCE_CONNECTOR_DIGITAL:
|
|
||||||
value = "digital";
|
|
||||||
break;
|
|
||||||
case FORCE_CONNECTOR_OFF:
|
|
||||||
value = "off";
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
case FORCE_CONNECTOR_UNSPECIFIED:
|
|
||||||
value = "unspecified";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
path = get_debugfs_connector_path(drm_fd, connector, "force");
|
|
||||||
debugfs_fd = open(path, O_WRONLY | O_TRUNC);
|
|
||||||
free(path);
|
|
||||||
|
|
||||||
if (debugfs_fd == -1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = write(debugfs_fd, value, strlen(value));
|
|
||||||
close(debugfs_fd);
|
|
||||||
|
|
||||||
igt_assert(ret != -1);
|
|
||||||
return (ret == -1) ? false : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* kmstest_force_edid:
|
|
||||||
* @drm_fd: drm file descriptor
|
|
||||||
* @connector: connector to set @edid on
|
|
||||||
* @edid: An EDID data block
|
|
||||||
* @length: length of the EDID data. #EDID_LENGTH defines the standard EDID
|
|
||||||
* length
|
|
||||||
*
|
|
||||||
* Set the EDID data on @connector to @edid. See #generic_edid and
|
|
||||||
* #kmstest_generic_edid for a set of generic EDID data blocks.
|
|
||||||
*
|
|
||||||
* If @length is zero, the forced EDID will be removed.
|
|
||||||
*/
|
|
||||||
void kmstest_force_edid(int drm_fd, drmModeConnector *connector,
|
|
||||||
const unsigned char *edid, size_t length)
|
|
||||||
{
|
|
||||||
char *path;
|
|
||||||
int debugfs_fd, ret;
|
|
||||||
|
|
||||||
path = get_debugfs_connector_path(drm_fd, connector, "edid_override");
|
|
||||||
|
|
||||||
debugfs_fd = open(path, O_WRONLY | O_TRUNC);
|
|
||||||
|
|
||||||
free(path);
|
|
||||||
|
|
||||||
igt_assert(debugfs_fd != -1);
|
|
||||||
|
|
||||||
if (length == 0)
|
|
||||||
ret = write(debugfs_fd, "reset", 5);
|
|
||||||
else
|
|
||||||
ret = write(debugfs_fd, edid, length);
|
|
||||||
close(debugfs_fd);
|
|
||||||
|
|
||||||
igt_assert(ret != -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void kmstest_free_connector_config(struct kmstest_connector_config *config)
|
void kmstest_free_connector_config(struct kmstest_connector_config *config)
|
||||||
{
|
{
|
||||||
drmModeFreeCrtc(config->crtc);
|
drmModeFreeCrtc(config->crtc);
|
||||||
@ -539,6 +511,104 @@ void kmstest_free_connector_config(struct kmstest_connector_config *config)
|
|||||||
drmModeFreeConnector(config->connector);
|
drmModeFreeConnector(config->connector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode)
|
||||||
|
{
|
||||||
|
int i, dpms = 0;
|
||||||
|
bool found_it = false;
|
||||||
|
|
||||||
|
for (i = 0; i < connector->count_props; i++) {
|
||||||
|
struct drm_mode_get_property prop;
|
||||||
|
|
||||||
|
prop.prop_id = connector->props[i];
|
||||||
|
prop.count_values = 0;
|
||||||
|
prop.count_enum_blobs = 0;
|
||||||
|
if (drmIoctl(fd, DRM_IOCTL_MODE_GETPROPERTY, &prop))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (strcmp(prop.name, "DPMS"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
dpms = prop.prop_id;
|
||||||
|
found_it = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
igt_assert_f(found_it, "DPMS property not found on %d\n",
|
||||||
|
connector->connector_id);
|
||||||
|
|
||||||
|
igt_assert(drmModeConnectorSetProperty(fd, connector->connector_id,
|
||||||
|
dpms, mode) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* kmstest_get_property:
|
||||||
|
* @drm_fd: drm file descriptor
|
||||||
|
* @object_id: object whose properties we're going to get
|
||||||
|
* @object_type: type of obj_id (DRM_MODE_OBJECT_*)
|
||||||
|
* @name: name of the property we're going to get
|
||||||
|
* @prop_id: if not NULL, returns the property id
|
||||||
|
* @value: if not NULL, returns the property value
|
||||||
|
* @prop: if not NULL, returns the property, and the caller will have to free
|
||||||
|
* it manually.
|
||||||
|
*
|
||||||
|
* Finds a property with the given name on the given object.
|
||||||
|
*
|
||||||
|
* Returns: true in case we found something.
|
||||||
|
*/
|
||||||
|
bool
|
||||||
|
kmstest_get_property(int drm_fd, uint32_t object_id, uint32_t object_type,
|
||||||
|
const char *name, uint32_t *prop_id /* out */,
|
||||||
|
uint64_t *value /* out */,
|
||||||
|
drmModePropertyPtr *prop /* out */)
|
||||||
|
{
|
||||||
|
drmModeObjectPropertiesPtr proplist;
|
||||||
|
drmModePropertyPtr _prop;
|
||||||
|
bool found = false;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
proplist = drmModeObjectGetProperties(drm_fd, object_id, object_type);
|
||||||
|
for (i = 0; i < proplist->count_props; i++) {
|
||||||
|
_prop = drmModeGetProperty(drm_fd, proplist->props[i]);
|
||||||
|
if (!_prop)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (strcmp(_prop->name, name) == 0) {
|
||||||
|
found = true;
|
||||||
|
if (prop_id)
|
||||||
|
*prop_id = proplist->props[i];
|
||||||
|
if (value)
|
||||||
|
*value = proplist->prop_values[i];
|
||||||
|
if (prop)
|
||||||
|
*prop = _prop;
|
||||||
|
else
|
||||||
|
drmModeFreeProperty(_prop);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
drmModeFreeProperty(_prop);
|
||||||
|
}
|
||||||
|
|
||||||
|
drmModeFreeObjectProperties(proplist);
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A small modeset API
|
* A small modeset API
|
||||||
*/
|
*/
|
||||||
@ -615,58 +685,6 @@ static void igt_output_refresh(igt_output_t *output)
|
|||||||
display->pipes_in_use |= 1 << output->config.pipe;
|
display->pipes_in_use |= 1 << output->config.pipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* kmstest_get_property:
|
|
||||||
* @drm_fd: drm file descriptor
|
|
||||||
* @object_id: object whose properties we're going to get
|
|
||||||
* @object_type: type of obj_id (DRM_MODE_OBJECT_*)
|
|
||||||
* @name: name of the property we're going to get
|
|
||||||
* @prop_id: if not NULL, returns the property id
|
|
||||||
* @value: if not NULL, returns the property value
|
|
||||||
* @prop: if not NULL, returns the property, and the caller will have to free
|
|
||||||
* it manually.
|
|
||||||
*
|
|
||||||
* Finds a property with the given name on the given object.
|
|
||||||
*
|
|
||||||
* Returns: true in case we found something.
|
|
||||||
*/
|
|
||||||
bool
|
|
||||||
kmstest_get_property(int drm_fd, uint32_t object_id, uint32_t object_type,
|
|
||||||
const char *name, uint32_t *prop_id /* out */,
|
|
||||||
uint64_t *value /* out */,
|
|
||||||
drmModePropertyPtr *prop /* out */)
|
|
||||||
{
|
|
||||||
drmModeObjectPropertiesPtr proplist;
|
|
||||||
drmModePropertyPtr _prop;
|
|
||||||
bool found = false;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
proplist = drmModeObjectGetProperties(drm_fd, object_id, object_type);
|
|
||||||
for (i = 0; i < proplist->count_props; i++) {
|
|
||||||
_prop = drmModeGetProperty(drm_fd, proplist->props[i]);
|
|
||||||
if (!_prop)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (strcmp(_prop->name, name) == 0) {
|
|
||||||
found = true;
|
|
||||||
if (prop_id)
|
|
||||||
*prop_id = proplist->props[i];
|
|
||||||
if (value)
|
|
||||||
*value = proplist->prop_values[i];
|
|
||||||
if (prop)
|
|
||||||
*prop = _prop;
|
|
||||||
else
|
|
||||||
drmModeFreeProperty(_prop);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
drmModeFreeProperty(_prop);
|
|
||||||
}
|
|
||||||
|
|
||||||
drmModeFreeObjectProperties(proplist);
|
|
||||||
return found;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
get_plane_property(int drm_fd, uint32_t plane_id, const char *name,
|
get_plane_property(int drm_fd, uint32_t plane_id, const char *name,
|
||||||
uint32_t *prop_id /* out */, uint64_t *value /* out */,
|
uint32_t *prop_id /* out */, uint64_t *value /* out */,
|
||||||
@ -1586,21 +1604,3 @@ void igt_reset_connectors(void)
|
|||||||
|
|
||||||
close(drm_fd);
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -98,6 +98,12 @@ const char *kmstest_connector_status_str(int status);
|
|||||||
*/
|
*/
|
||||||
const char *kmstest_connector_type_str(int type);
|
const char *kmstest_connector_type_str(int type);
|
||||||
|
|
||||||
|
void kmstest_dump_mode(drmModeModeInfo *mode);
|
||||||
|
|
||||||
|
int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);
|
||||||
|
void kmstest_set_vt_graphics_mode(void);
|
||||||
|
|
||||||
|
|
||||||
struct kmstest_connector_config {
|
struct kmstest_connector_config {
|
||||||
drmModeCrtc *crtc;
|
drmModeCrtc *crtc;
|
||||||
drmModeConnector *connector;
|
drmModeConnector *connector;
|
||||||
@ -141,20 +147,18 @@ enum kmstest_generic_edid {
|
|||||||
MAX_EDIDS
|
MAX_EDIDS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool kmstest_force_connector(int fd, drmModeConnector *connector,
|
||||||
|
enum kmstest_force_connector_state state);
|
||||||
|
void kmstest_force_edid(int drm_fd, drmModeConnector *connector,
|
||||||
|
const unsigned char *edid, size_t length);
|
||||||
|
|
||||||
int kmstest_get_connector_default_mode(int drm_fd, drmModeConnector *connector,
|
int kmstest_get_connector_default_mode(int drm_fd, drmModeConnector *connector,
|
||||||
drmModeModeInfo *mode);
|
drmModeModeInfo *mode);
|
||||||
int kmstest_get_connector_config(int drm_fd, uint32_t connector_id,
|
int kmstest_get_connector_config(int drm_fd, uint32_t connector_id,
|
||||||
unsigned long crtc_idx_mask,
|
unsigned long crtc_idx_mask,
|
||||||
struct kmstest_connector_config *config);
|
struct kmstest_connector_config *config);
|
||||||
bool kmstest_force_connector(int fd, drmModeConnector *connector,
|
|
||||||
enum kmstest_force_connector_state state);
|
|
||||||
void kmstest_force_edid(int drm_fd, drmModeConnector *connector,
|
|
||||||
const unsigned char *edid, size_t length);
|
|
||||||
void kmstest_free_connector_config(struct kmstest_connector_config *config);
|
void kmstest_free_connector_config(struct kmstest_connector_config *config);
|
||||||
|
|
||||||
void kmstest_dump_mode(drmModeModeInfo *mode);
|
|
||||||
int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);
|
|
||||||
void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode);
|
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,
|
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,
|
const char *name, uint32_t *prop_id, uint64_t *value,
|
||||||
@ -165,9 +169,6 @@ void kmstest_unset_all_crtcs(int drm_fd, drmModeResPtr resources);
|
|||||||
* A small modeset API
|
* A small modeset API
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* set vt into graphics mode, required to prevent fbcon from interfering */
|
|
||||||
void kmstest_set_vt_graphics_mode(void);
|
|
||||||
|
|
||||||
/* High-level kms api with igt_ prefix */
|
/* High-level kms api with igt_ prefix */
|
||||||
enum igt_commit_style {
|
enum igt_commit_style {
|
||||||
COMMIT_LEGACY = 0,
|
COMMIT_LEGACY = 0,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user