[Intel-gfx] [PATCH v2 2/3] drm: Create a format/modifier blob

Daniel Stone daniel at fooishbar.org
Tue May 23 16:39:46 UTC 2017


Hi Ben,

On 16 May 2017 at 22:31, Ben Widawsky <ben at bwidawsk.net> wrote:
> Updated blob layout (Rob, Daniel, Kristian, xerpi)

If you take the attached fixup, this is:
Reviewed-by: Daniel Stone <daniels at collabora.com>

The rest of the series looks fine to me, so you can take my Acked-by,
but I'm currently off work sick and am away next week, so please don't
block on me for merging.

Cheers,
Daniel
-------------- next part --------------
commit 250f3b2c2a824516b18fe21623ddc86ccf31eddb
Author: Daniel Stone <daniels at collabora.com>
Date:   Tue May 23 17:36:55 2017 +0100

    fixup! drm: Create a format/modifier blob

diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index f5b032b5f761..083231750583 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -77,18 +77,12 @@ modifiers_ptr(struct drm_format_modifier_blob *blob)
 static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane)
 {
 	const struct drm_mode_config *config = &dev->mode_config;
-	const uint64_t *temp_modifiers = plane->modifiers;
-	unsigned int format_modifier_count = 0;
 	struct drm_property_blob *blob = NULL;
 	struct drm_format_modifier *mod;
 	size_t blob_size = 0, formats_size, modifiers_size;
 	struct drm_format_modifier_blob *blob_data;
 	int i, j, ret = 0;
 
-	if (plane->modifiers)
-		while (*temp_modifiers++ != DRM_FORMAT_MOD_INVALID)
-			format_modifier_count++;
-
 	formats_size = sizeof(*plane->format_types) * plane->format_count;
 	if (WARN_ON(!formats_size)) {
 		/* 0 formats are never expected */
@@ -96,7 +90,7 @@ static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane
 	}
 
 	modifiers_size =
-		sizeof(struct drm_format_modifier) * format_modifier_count;
+		sizeof(struct drm_format_modifier) * plane->modifier_count;
 
 	blob_size = sizeof(struct drm_format_modifier_blob);
 	blob_size += ALIGN(formats_size, 8);
@@ -110,7 +104,7 @@ static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane
 	blob_data->version = FORMAT_BLOB_CURRENT;
 	blob_data->count_formats = plane->format_count;
 	blob_data->formats_offset = sizeof(struct drm_format_modifier_blob);
-	blob_data->count_modifiers = format_modifier_count;
+	blob_data->count_modifiers = plane->modifier_count;
 
 	/* Modifiers offset is a pointer to a struct with a 64 bit field so it
 	 * should be naturally aligned to 8B.
@@ -125,7 +119,7 @@ static int create_in_format_blob(struct drm_device *dev, struct drm_plane *plane
 		goto done;
 
 	mod = modifiers_ptr(blob_data);
-	for (i = 0; i < format_modifier_count; i++) {
+	for (i = 0; i < plane->modifier_count; i++) {
 		for (j = 0; j < plane->format_count; j++) {
 			if (plane->funcs->format_mod_supported(plane,
 							       plane->format_types[j],


More information about the dri-devel mailing list