[Intel-gfx] [PATCH 07/10] lib/igt_kms: Shuffle kmtests_ functions

Daniel Vetter daniel.vetter at ffwll.ch
Tue Aug 12 12:12:02 CEST 2014


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 at ffwll.ch>
---
 lib/igt_kms.c | 372 +++++++++++++++++++++++++++++-----------------------------
 lib/igt_kms.h |  19 +--
 2 files changed, 196 insertions(+), 195 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index e28d7a825683..76812a2dff12 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -227,34 +227,6 @@ int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id)
 	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)
 {
 	int fd;
@@ -310,6 +282,115 @@ void kmstest_set_vt_graphics_mode(void)
 	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,
 				      drmModeModeInfo *mode)
 {
@@ -423,120 +504,109 @@ err1:
 	return -1;
 }
 
-static int get_card_number(int fd)
+void kmstest_free_connector_config(struct kmstest_connector_config *config)
 {
-	struct stat buf;
-
-	/* find the minor number of the device */
-	fstat(fd, &buf);
-
-	return minor(buf.st_rdev) & 0x3f;
+	drmModeFreeCrtc(config->crtc);
+	drmModeFreeEncoder(config->encoder);
+	drmModeFreeConnector(config->connector);
 }
 
-static char* get_debugfs_connector_path(int drm_fd, drmModeConnector *connector,
-					const char *file)
+void kmstest_set_connector_dpms(int fd, drmModeConnector *connector, int mode)
 {
-	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);
+	int i, dpms = 0;
+	bool found_it = false;
 
-	return path;
-}
+	for (i = 0; i < connector->count_props; i++) {
+		struct drm_mode_get_property prop;
 
-/**
- * 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;
+		prop.prop_id = connector->props[i];
+		prop.count_values = 0;
+		prop.count_enum_blobs = 0;
+		if (drmIoctl(fd, DRM_IOCTL_MODE_GETPROPERTY, &prop))
+			continue;
 
-	switch (state) {
-	case FORCE_CONNECTOR_ON:
-		value = "on";
-		break;
-	case FORCE_CONNECTOR_DIGITAL:
-		value = "digital";
-		break;
-	case FORCE_CONNECTOR_OFF:
-		value = "off";
-		break;
+		if (strcmp(prop.name, "DPMS"))
+			continue;
 
-	default:
-	case FORCE_CONNECTOR_UNSPECIFIED:
-		value = "unspecified";
+		dpms = prop.prop_id;
+		found_it = true;
 		break;
 	}
+	igt_assert_f(found_it, "DPMS property not found on %d\n",
+		     connector->connector_id);
 
-	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;
+	igt_assert(drmModeConnectorSetProperty(fd, connector->connector_id,
+					       dpms, mode) == 0);
 }
 
 /**
- * kmstest_force_edid:
+ * kmstest_get_property:
  * @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
+ * @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.
  *
- * Set the EDID data on @connector to @edid. See #generic_edid and
- * #kmstest_generic_edid for a set of generic EDID data blocks.
+ * Finds a property with the given name on the given object.
  *
- * If @length is zero, the forced EDID will be removed.
+ * Returns: true in case we found something.
  */
-void kmstest_force_edid(int drm_fd, drmModeConnector *connector,
-			const unsigned char *edid, size_t length)
+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 */)
 {
-	char *path;
-	int debugfs_fd, ret;
-
-	path = get_debugfs_connector_path(drm_fd, connector, "edid_override");
-
-	debugfs_fd = open(path, O_WRONLY | O_TRUNC);
+	drmModeObjectPropertiesPtr proplist;
+	drmModePropertyPtr _prop;
+	bool found = false;
+	int i;
 
-	free(path);
+	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;
 
-	igt_assert(debugfs_fd != -1);
+		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);
 
-	if (length == 0)
-		ret = write(debugfs_fd, "reset", 5);
-	else
-		ret = write(debugfs_fd, edid, length);
-	close(debugfs_fd);
+			break;
+		}
+		drmModeFreeProperty(_prop);
+	}
 
-	igt_assert(ret != -1);
+	drmModeFreeObjectProperties(proplist);
+	return found;
 }
 
-void kmstest_free_connector_config(struct kmstest_connector_config *config)
+/**
+ * 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)
 {
-	drmModeFreeCrtc(config->crtc);
-	drmModeFreeEncoder(config->encoder);
-	drmModeFreeConnector(config->connector);
+	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);
+	}
 }
 
 /*
@@ -615,58 +685,6 @@ static void igt_output_refresh(igt_output_t *output)
 	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
 get_plane_property(int drm_fd, uint32_t plane_id, const char *name,
 		   uint32_t *prop_id /* out */, uint64_t *value /* out */,
@@ -1586,21 +1604,3 @@ 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);
-	}
-}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 09f15455396d..0acfeba1e491 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -98,6 +98,12 @@ const char *kmstest_connector_status_str(int status);
  */
 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 {
 	drmModeCrtc *crtc;
 	drmModeConnector *connector;
@@ -141,20 +147,18 @@ enum kmstest_generic_edid {
 	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,
 				      drmModeModeInfo *mode);
 int kmstest_get_connector_config(int drm_fd, uint32_t connector_id,
 				 unsigned long crtc_idx_mask,
 				 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_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);
 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,
@@ -165,9 +169,6 @@ void kmstest_unset_all_crtcs(int drm_fd, drmModeResPtr resources);
  * 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 */
 enum igt_commit_style {
 	COMMIT_LEGACY = 0,
-- 
2.0.1




More information about the Intel-gfx mailing list