All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: dri-devel@lists.freedesktop.org
Cc: Ayan Halder <Ayan.Halder@arm.com>,
	kernel@collabora.com, David Airlie <airlied@linux.ie>,
	Liviu Dudau <liviu.dudau@arm.com>,
	Sandy Huang <hjc@rock-chips.com>,
	Andrzej Pietrasiewicz <andrzej.p@collabora.com>,
	James Wang <james.qian.wang@arm.com>,
	Mihail Atanassov <mihail.atanassov@arm.com>,
	Sean Paul <sean@poorly.run>
Subject: [PATCHv4 03/36] drm/gem-fb-helper: Allow drivers to allocate struct drm_framebuffer on their own
Date: Fri, 13 Dec 2019 16:58:34 +0100	[thread overview]
Message-ID: <20191213155907.16581-4-andrzej.p@collabora.com> (raw)
In-Reply-To: <20191213155907.16581-1-andrzej.p@collabora.com>

Prepare tools for drivers which need to allocate a struct drm_framebuffer
(or a container of struct drm_framebuffer) explicitly, before calling
helpers. In such a case we need new helpers which omit allocating the
struct drm_framebuffer and this patch provides them. Consequently, they
are used also inside the helpers themselves.

The interested drivers will likely need to be able to perform object
lookups and size checks in separate invocations and this patch provides
that as well. Helpers themselves are updated, too.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
---
 drivers/gpu/drm/drm_gem_framebuffer_helper.c | 184 ++++++++++++++-----
 include/drm/drm_gem_framebuffer_helper.h     |  17 ++
 2 files changed, 153 insertions(+), 48 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index b9bcd310ca2d..787edb9a916b 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -54,6 +54,44 @@ struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb,
 }
 EXPORT_SYMBOL_GPL(drm_gem_fb_get_obj);
 
+int drm_gem_fb_init_with_funcs(struct drm_framebuffer *fb,
+			       struct drm_device *dev,
+			       const struct drm_mode_fb_cmd2 *mode_cmd,
+			       struct drm_gem_object **obj,
+			       unsigned int num_planes,
+			       const struct drm_framebuffer_funcs *funcs)
+{
+	int ret, i;
+
+	drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
+
+	for (i = 0; i < num_planes; i++)
+		fb->obj[i] = obj[i];
+
+	ret = drm_framebuffer_init(dev, fb, funcs);
+	if (ret)
+		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
+			      ret);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
+
+static const struct drm_framebuffer_funcs drm_gem_fb_funcs = {
+	.destroy	= drm_gem_fb_destroy,
+	.create_handle	= drm_gem_fb_create_handle,
+};
+
+int drm_gem_fb_init(struct drm_framebuffer *fb,
+		    struct drm_device *dev,
+		    const struct drm_mode_fb_cmd2 *mode_cmd,
+		    struct drm_gem_object **obj, unsigned int num_planes)
+{
+	return drm_gem_fb_init_with_funcs(fb, dev, mode_cmd, obj, num_planes,
+					  &drm_gem_fb_funcs);
+}
+EXPORT_SYMBOL_GPL(drm_gem_fb_init);
+
 static struct drm_framebuffer *
 drm_gem_fb_alloc(struct drm_device *dev,
 		 const struct drm_mode_fb_cmd2 *mode_cmd,
@@ -61,21 +99,15 @@ drm_gem_fb_alloc(struct drm_device *dev,
 		 const struct drm_framebuffer_funcs *funcs)
 {
 	struct drm_framebuffer *fb;
-	int ret, i;
+	int ret;
 
 	fb = kzalloc(sizeof(*fb), GFP_KERNEL);
 	if (!fb)
 		return ERR_PTR(-ENOMEM);
 
-	drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
-
-	for (i = 0; i < num_planes; i++)
-		fb->obj[i] = obj[i];
-
-	ret = drm_framebuffer_init(dev, fb, funcs);
+	ret = drm_gem_fb_init_with_funcs(fb, dev, mode_cmd, obj, num_planes,
+					 funcs);
 	if (ret) {
-		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
-			      ret);
 		kfree(fb);
 		return ERR_PTR(ret);
 	}
@@ -124,79 +156,135 @@ int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
 EXPORT_SYMBOL(drm_gem_fb_create_handle);
 
 /**
- * drm_gem_fb_create_with_funcs() - Helper function for the
- *                                  &drm_mode_config_funcs.fb_create
- *                                  callback
+ * drm_gem_fb_lookup() - Helper function for use in
+ *			 &drm_mode_config_funcs.fb_create implementations
  * @dev: DRM device
  * @file: DRM file that holds the GEM handle(s) backing the framebuffer
  * @mode_cmd: Metadata from the userspace framebuffer creation request
- * @funcs: vtable to be used for the new framebuffer object
  *
- * This function can be used to set &drm_framebuffer_funcs for drivers that need
- * custom framebuffer callbacks. Use drm_gem_fb_create() if you don't need to
- * change &drm_framebuffer_funcs. The function does buffer size validation.
+ * This function can be used to look up the objects for all planes.
+ * In case an error is returned all the objects are put by the
+ * function before returning.
  *
  * Returns:
- * Pointer to a &drm_framebuffer on success or an error pointer on failure.
+ * Number of planes on success or a negative error code on failure.
  */
-struct drm_framebuffer *
-drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
-			     const struct drm_mode_fb_cmd2 *mode_cmd,
-			     const struct drm_framebuffer_funcs *funcs)
+int drm_gem_fb_lookup(struct drm_device *dev,
+		      struct drm_file *file,
+		      const struct drm_mode_fb_cmd2 *mode_cmd,
+		      struct drm_gem_object **objs)
 {
 	const struct drm_format_info *info;
-	struct drm_gem_object *objs[4];
-	struct drm_framebuffer *fb;
 	int ret, i;
 
 	info = drm_get_format_info(dev, mode_cmd);
 	if (!info)
-		return ERR_PTR(-EINVAL);
+		return -EINVAL;
 
 	for (i = 0; i < info->num_planes; i++) {
-		unsigned int width = mode_cmd->width / (i ? info->hsub : 1);
-		unsigned int height = mode_cmd->height / (i ? info->vsub : 1);
-		unsigned int min_size;
-
 		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
 		if (!objs[i]) {
 			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
 			ret = -ENOENT;
 			goto err_gem_object_put;
 		}
+	}
+
+	return i;
+
+err_gem_object_put:
+	for (i--; i >= 0; i--)
+		drm_gem_object_put_unlocked(objs[i]);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(drm_gem_fb_lookup);
+
+/**
+ * drm_gem_fb_size_check() - Helper function for use in
+ *			     &drm_mode_config_funcs.fb_create implementations
+ * @dev: DRM device
+ * @mode_cmd: Metadata from the userspace framebuffer creation request
+ *
+ * This function can be used to verify buffer sizes for all planes.
+ * It is caller's responsibility to put the objects on failure.
+ *
+ * Returns:
+ * Zero on success or a negative error code on failure.
+ */
+int drm_gem_fb_size_check(struct drm_device *dev,
+			  const struct drm_mode_fb_cmd2 *mode_cmd,
+			  struct drm_gem_object **objs)
+{
+	const struct drm_format_info *info;
+	int i;
+
+	info = drm_get_format_info(dev, mode_cmd);
+	if (!info)
+		return -EINVAL;
+
+	for (i = 0; i < info->num_planes; i++) {
+		unsigned int width = mode_cmd->width / (i ? info->hsub : 1);
+		unsigned int height = mode_cmd->height / (i ? info->vsub : 1);
+		unsigned int min_size;
 
 		min_size = (height - 1) * mode_cmd->pitches[i]
 			 + drm_format_info_min_pitch(info, i, width)
 			 + mode_cmd->offsets[i];
 
-		if (objs[i]->size < min_size) {
-			drm_gem_object_put_unlocked(objs[i]);
-			ret = -EINVAL;
-			goto err_gem_object_put;
-		}
+		if (objs[i]->size < min_size)
+			return -EINVAL;
 	}
 
-	fb = drm_gem_fb_alloc(dev, mode_cmd, objs, i, funcs);
-	if (IS_ERR(fb)) {
-		ret = PTR_ERR(fb);
-		goto err_gem_object_put;
-	}
+	return 0;
 
-	return fb;
+}
+EXPORT_SYMBOL_GPL(drm_gem_fb_size_check);
 
-err_gem_object_put:
-	for (i--; i >= 0; i--)
-		drm_gem_object_put_unlocked(objs[i]);
+/**
+ * drm_gem_fb_create_with_funcs() - Helper function for the
+ *                                  &drm_mode_config_funcs.fb_create
+ *                                  callback
+ * @dev: DRM device
+ * @file: DRM file that holds the GEM handle(s) backing the framebuffer
+ * @mode_cmd: Metadata from the userspace framebuffer creation request
+ * @funcs: vtable to be used for the new framebuffer object
+ *
+ * This function can be used to set &drm_framebuffer_funcs for drivers that need
+ * custom framebuffer callbacks. Use drm_gem_fb_create() if you don't need to
+ * change &drm_framebuffer_funcs. The function does buffer size validation.
+ *
+ * Returns:
+ * Pointer to a &drm_framebuffer on success or an error pointer on failure.
+ */
+struct drm_framebuffer *
+drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
+			     const struct drm_mode_fb_cmd2 *mode_cmd,
+			     const struct drm_framebuffer_funcs *funcs)
+{
+	struct drm_gem_object *objs[4];
+	struct drm_framebuffer *fb;
+	int ret, num_planes;
+
+	ret = drm_gem_fb_lookup(dev, file, mode_cmd, objs);
+	if (ret < 0)
+		return ERR_PTR(ret);
+	num_planes = ret;
+
+	ret = drm_gem_fb_size_check(dev, mode_cmd, objs);
+	if (ret)
+		fb = ERR_PTR(ret);
+	else
+		fb = drm_gem_fb_alloc(dev, mode_cmd, objs, num_planes, funcs);
 
-	return ERR_PTR(ret);
+	if (IS_ERR(fb))
+		for (num_planes--; num_planes >= 0; num_planes--)
+			drm_gem_object_put_unlocked(objs[num_planes]);
+
+	return fb;
 }
 EXPORT_SYMBOL_GPL(drm_gem_fb_create_with_funcs);
 
-static const struct drm_framebuffer_funcs drm_gem_fb_funcs = {
-	.destroy	= drm_gem_fb_destroy,
-	.create_handle	= drm_gem_fb_create_handle,
-};
-
 /**
  * drm_gem_fb_create() - Helper function for the
  *                       &drm_mode_config_funcs.fb_create callback
diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h
index d9f13fd25b0a..c85d4b152e91 100644
--- a/include/drm/drm_gem_framebuffer_helper.h
+++ b/include/drm/drm_gem_framebuffer_helper.h
@@ -14,10 +14,27 @@ struct drm_simple_display_pipe;
 
 struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb,
 					  unsigned int plane);
+int drm_gem_fb_init_with_funcs(struct drm_framebuffer *fb,
+			       struct drm_device *dev,
+			       const struct drm_mode_fb_cmd2 *mode_cmd,
+			       struct drm_gem_object **obj,
+			       unsigned int num_planes,
+			       const struct drm_framebuffer_funcs *funcs);
+int drm_gem_fb_init(struct drm_framebuffer *fb,
+		    struct drm_device *dev,
+		    const struct drm_mode_fb_cmd2 *mode_cmd,
+		    struct drm_gem_object **obj, unsigned int num_planes);
 void drm_gem_fb_destroy(struct drm_framebuffer *fb);
 int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
 			     unsigned int *handle);
 
+int drm_gem_fb_lookup(struct drm_device *dev,
+		      struct drm_file *file,
+		      const struct drm_mode_fb_cmd2 *mode_cmd,
+		      struct drm_gem_object **objs);
+int drm_gem_fb_size_check(struct drm_device *dev,
+			  const struct drm_mode_fb_cmd2 *mode_cmd,
+			  struct drm_gem_object **objs);
 struct drm_framebuffer *
 drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
 			     const struct drm_mode_fb_cmd2 *mode_cmd,
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2019-12-13 21:24 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-13 15:58 [PATCHv4 00/36] AFBC support for Rockchip Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 01/36] drm/framebuffer: Add optional modifier info Andrzej Pietrasiewicz
2020-02-17  5:50   ` [PATCHv4,01/36] " james qian wang (Arm Technology China)
2019-12-13 15:58 ` [PATCHv4 02/36] drm/core: Add afbc helper functions Andrzej Pietrasiewicz
2020-02-17  6:09   ` [PATCHv4,02/36] " james qian wang (Arm Technology China)
2019-12-13 15:58 ` Andrzej Pietrasiewicz [this message]
2019-12-16 17:08   ` [PATCHv4 03/36] drm/gem-fb-helper: Allow drivers to allocate struct drm_framebuffer on their own Liviu Dudau
2019-12-16 20:37     ` Andrzej Pietrasiewicz
2020-02-17  6:39   ` [PATCHv4,03/36] " james qian wang (Arm Technology China)
2019-12-13 15:58 ` [PATCHv4 04/36] drm/gem-fb-helper: Add special version of drm_gem_fb_size_check Andrzej Pietrasiewicz
2019-12-16 17:11   ` Liviu Dudau
2020-02-17  8:16   ` [PATCHv4,04/36] " james qian wang (Arm Technology China)
2020-02-17 10:55     ` Andrzej Pietrasiewicz
2020-02-17 11:34       ` james qian wang (Arm Technology China)
2019-12-13 15:58 ` [PATCHv4 05/36] drm/gem-fb-helper: Add generic afbc size checks Andrzej Pietrasiewicz
2019-12-16 17:19   ` Liviu Dudau
2019-12-16 18:41     ` Andrzej Pietrasiewicz
2019-12-17  9:18       ` Liviu Dudau
2020-02-17 11:02   ` [PATCHv4,05/36] " james qian wang (Arm Technology China)
2019-12-13 15:58 ` [PATCHv4 06/36] drm/gem-fb-helper: Add method to allocate struct drm_framebuffer Andrzej Pietrasiewicz
2019-12-13 17:33   ` Daniel Vetter
2019-12-17 14:49     ` [PATCHv5 00/34] Add AFBC support for Rockchip Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 01/34] drm/core: Add afbc helper functions Andrzej Pietrasiewicz
2020-02-18  3:13         ` james qian wang (Arm Technology China)
2020-02-20  9:19         ` Boris Brezillon
2020-02-20 10:47         ` Boris Brezillon
2019-12-17 14:49       ` [PATCHv5 02/34] drm/gem-fb-helper: Allow drivers to allocate struct drm_framebuffer on their own Andrzej Pietrasiewicz
2020-02-18  3:34         ` james qian wang (Arm Technology China)
2020-02-20  9:47         ` Boris Brezillon
2019-12-17 14:49       ` [PATCHv5 03/34] drm/gem-fb-helper: Add special version of drm_gem_fb_size_check Andrzej Pietrasiewicz
2020-02-18  3:42         ` james qian wang (Arm Technology China)
2020-02-20  9:59         ` Boris Brezillon
2019-12-17 14:49       ` [PATCHv5 04/34] drm/gem-fb-helper: Add generic afbc size checks Andrzej Pietrasiewicz
2020-02-18  5:02         ` james qian wang (Arm Technology China)
2019-12-17 14:49       ` [PATCHv5 05/34] drm/komeda: Use afbc helper Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 06/34] drm/komeda: Move checking src coordinates to komeda_fb_create Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 07/34] drm/komeda: Use the already available local variable Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 08/34] drm/komeda: Retrieve drm_format_info once Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 09/34] drm/komeda: Explicitly require 1 plane for AFBC Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 10/34] drm/komeda: Move pitches comparison to komeda_fb_create Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 11/34] drm/komeda: Provide and use komeda_fb_get_pixel_addr variant not requiring a fb Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 12/34] drm/komeda: Factor out object lookups for non-afbc case Andrzej Pietrasiewicz
2019-12-17 14:49       ` [PATCHv5 13/34] drm/komeda: Make komeda_fb_none_size_check independent from framebuffer Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 14/34] drm/komeda: Factor out object lookups for afbc case Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 15/34] drm/komeda: Free komeda_fb_afbc_size_check from framebuffer dependency Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 16/34] drm/komeda: Simplify error handling Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 17/34] drm/komeda: Move object lookup before size checks Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 18/34] drm/komeda: Move object assignments to framebuffer to after " Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 19/34] drm/komeda: Make the size checks independent from framebuffer structure Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 20/34] drm/komeda: Move helper invocation to after size checks Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 21/34] drm/komeda: Use helper for common tasks Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 22/34] drm/komeda: Use return value of drm_gem_fb_lookup Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 23/34] drm/komeda: Use special helper for non-afbc size checks Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 24/34] drm/komeda: Factor in the invocation of special helper Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 25/34] drm/komeda: Use special helper for afbc case size check Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 26/34] drm/komeda: Factor in the invocation of special helper, afbc case Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 27/34] drm/komeda: Move special helper invocation outside if-else Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 28/34] drm/komeda: Move to helper checking afbc buffer size Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 29/34] drm/arm/malidp: Make verify funcitons invocations independent Andrzej Pietrasiewicz
2020-02-20 11:26         ` Boris Brezillon
2020-02-20 11:29           ` Boris Brezillon
2020-02-20 11:35             ` Boris Brezillon
2019-12-17 14:50       ` [PATCHv5 30/34] drm/arm/malidp: Integrate verify functions Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 31/34] drm/arm/malidp: Factor in afbc framebuffer verification Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 32/34] drm/arm/malidp: Use generic helpers for afbc checks Andrzej Pietrasiewicz
2019-12-17 14:50       ` [PATCHv5 33/34] drm/rockchip: Use helper for common task Andrzej Pietrasiewicz
2020-02-20 11:24         ` Boris Brezillon
2019-12-17 14:50       ` [PATCHv5 34/34] drm/rockchip: Add support for afbc Andrzej Pietrasiewicz
2020-02-20 11:20         ` Boris Brezillon
2020-01-30  9:08       ` [PATCHv5 00/34] Add AFBC support for Rockchip Andrzej Pietrasiewicz
2020-01-30 11:44         ` Liviu Dudau
2020-01-30 11:57           ` Andrzej Pietrasiewicz
2020-02-07 11:44         ` Andrzej Pietrasiewicz
2020-02-07 17:10           ` Liviu Dudau
2020-02-20 16:54       ` Daniel Vetter
2020-02-21 19:54         ` Daniel Vetter
2019-12-13 15:58 ` [PATCHv4 07/36] drm/komeda: Use afbc helper Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 08/36] drm/komeda: Move checking src coordinates to komeda_fb_create Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 09/36] drm/komeda: Use the already available local variable Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 10/36] drm/komeda: Retrieve drm_format_info once Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 11/36] drm/komeda: Explicitly require 1 plane for AFBC Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 12/36] drm/komeda: Move pitches comparison to komeda_fb_create Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 13/36] drm/komeda: Provide and use komeda_fb_get_pixel_addr variant not requiring a fb Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 14/36] drm/komeda: Factor out object lookups for non-afbc case Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 15/36] drm/komeda: Make komeda_fb_none_size_check independent from framebuffer Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 16/36] drm/komeda: Factor out object lookups for afbc case Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 17/36] drm/komeda: Free komeda_fb_afbc_size_check from framebuffer dependency Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 18/36] drm/komeda: Simplify error handling Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 19/36] drm/komeda: Move object lookup before size checks Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 20/36] drm/komeda: Move object assignments to framebuffer to after " Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 21/36] drm/komeda: Make the size checks independent from framebuffer structure Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 22/36] drm/komeda: Move helper invocation to after size checks Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 23/36] drm/komeda: Use helper for common tasks Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 24/36] drm/komeda: Use return value of drm_gem_fb_lookup Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 25/36] drm/komeda: Use special helper for non-afbc size checks Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 26/36] drm/komeda: Factor in the invocation of special helper Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 27/36] drm/komeda: Use special helper for afbc case size check Andrzej Pietrasiewicz
2019-12-13 15:58 ` [PATCHv4 28/36] drm/komeda: Factor in the invocation of special helper, afbc case Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 29/36] drm/komeda: Move special helper invocation outside if-else Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 30/36] drm/komeda: Move to helper checking afbc buffer size Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 31/36] drm/arm/malidp: Make verify funcitons invocations independent Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 32/36] drm/arm/malidp: Integrate verify functions Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 33/36] drm/arm/malidp: Factor in afbc framebuffer verification Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 34/36] drm/arm/malidp: Use generic helpers for afbc checks Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 35/36] drm/rockchip: Use helper for common task Andrzej Pietrasiewicz
2019-12-13 15:59 ` [PATCHv4 36/36] drm/rockchip: Add support for afbc Andrzej Pietrasiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191213155907.16581-4-andrzej.p@collabora.com \
    --to=andrzej.p@collabora.com \
    --cc=Ayan.Halder@arm.com \
    --cc=airlied@linux.ie \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hjc@rock-chips.com \
    --cc=james.qian.wang@arm.com \
    --cc=kernel@collabora.com \
    --cc=liviu.dudau@arm.com \
    --cc=mihail.atanassov@arm.com \
    --cc=sean@poorly.run \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.