All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: dri-devel@lists.freedesktop.org
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCH 04/23] drm: omapdrm: fb: Simplify objects lookup when creating framebuffer
Date: Tue, 26 Apr 2016 23:35:26 +0300	[thread overview]
Message-ID: <1461702945-14185-5-git-send-email-laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <1461702945-14185-1-git-send-email-laurent.pinchart@ideasonboard.com>

Merge the single-user objects_lookup inline function into its caller,
allowing reuse of the error code path.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/omapdrm/omap_drv.h | 25 -------------------------
 drivers/gpu/drm/omapdrm/omap_fb.c  | 30 +++++++++++++++++++-----------
 2 files changed, 19 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index 0fbe17d0ec6f..ed15b2dbe47a 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -254,29 +254,4 @@ static inline int align_pitch(int pitch, int width, int bpp)
 uint32_t pipe2vbl(struct drm_crtc *crtc);
 struct omap_dss_device *omap_encoder_get_dssdev(struct drm_encoder *encoder);
 
-/* should these be made into common util helpers?
- */
-
-static inline int objects_lookup(struct drm_device *dev,
-		struct drm_file *filp, uint32_t pixel_format,
-		struct drm_gem_object **bos, const uint32_t *handles)
-{
-	int i, n = drm_format_num_planes(pixel_format);
-
-	for (i = 0; i < n; i++) {
-		bos[i] = drm_gem_object_lookup(dev, filp, handles[i]);
-		if (!bos[i])
-			goto fail;
-
-	}
-
-	return 0;
-
-fail:
-	while (--i > 0)
-		drm_gem_object_unreference_unlocked(bos[i]);
-
-	return -ENOENT;
-}
-
 #endif /* __OMAP_DRV_H__ */
diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index ca7726e4d23e..015b6a50c581 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -374,22 +374,30 @@ void omap_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m)
 struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
 		struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd)
 {
+	unsigned int num_planes = drm_format_num_planes(mode_cmd->pixel_format);
 	struct drm_gem_object *bos[4];
 	struct drm_framebuffer *fb;
-	int ret;
+	int i;
 
-	ret = objects_lookup(dev, file, mode_cmd->pixel_format,
-			bos, mode_cmd->handles);
-	if (ret)
-		return ERR_PTR(ret);
+	for (i = 0; i < num_planes; i++) {
+		bos[i] = drm_gem_object_lookup(dev, file, mode_cmd->handles[i]);
+		if (!bos[i]) {
+			fb = ERR_PTR(-ENOENT);
+			goto error;
+		}
 
-	fb = omap_framebuffer_init(dev, mode_cmd, bos);
-	if (IS_ERR(fb)) {
-		int i, n = drm_format_num_planes(mode_cmd->pixel_format);
-		for (i = 0; i < n; i++)
-			drm_gem_object_unreference_unlocked(bos[i]);
-		return fb;
 	}
+
+	fb = omap_framebuffer_init(dev, mode_cmd, bos);
+	if (IS_ERR(fb))
+		goto error;
+
+	return fb;
+
+error:
+	while (--i > 0)
+		drm_gem_object_unreference_unlocked(bos[i]);
+
 	return fb;
 }
 
-- 
2.7.3

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

  parent reply	other threads:[~2016-04-26 20:35 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-26 20:35 [PATCH 00/23] OMAP DRM fixes and improvements Laurent Pinchart
2016-04-26 20:35 ` [PATCH 01/23] drm: omapdrm: fb: Limit number of planes per framebuffer to two Laurent Pinchart
2016-04-26 20:35 ` [PATCH 02/23] drm: omapdrm: fb: Don't store format BPP for each plane Laurent Pinchart
2016-05-02 15:43   ` Tomi Valkeinen
2016-05-02 21:01     ` Rob Clark
2016-05-03  6:08       ` Tomi Valkeinen
2016-05-03 11:22         ` Ville Syrjälä
2016-05-09 20:57       ` Laurent Pinchart
2016-05-10  7:14         ` Tomi Valkeinen
2016-06-06  1:39           ` Laurent Pinchart
2016-06-06  6:27             ` Daniel Vetter
2016-05-09 20:55     ` Laurent Pinchart
2016-05-10  7:34       ` Tomi Valkeinen
2016-04-26 20:35 ` [PATCH 03/23] drm: omapdrm: fb: Store number of planes in format structure Laurent Pinchart
2016-04-26 20:35 ` Laurent Pinchart [this message]
2016-05-09 14:20   ` [PATCH 04/23] drm: omapdrm: fb: Simplify objects lookup when creating framebuffer Tomi Valkeinen
2016-04-26 20:35 ` [PATCH 05/23] drm: omapdrm: fb: Simplify mode command checks " Laurent Pinchart
2016-05-09 15:15   ` Tomi Valkeinen
2016-06-06  0:24     ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 06/23] drm: omapdrm: fb: Turn framebuffer creation error messages into debug Laurent Pinchart
2016-05-09 14:28   ` Tomi Valkeinen
2016-04-26 20:35 ` [PATCH 07/23] drm: omapdrm: Handle FIFO underflow IRQs internally Laurent Pinchart
2016-05-09 14:42   ` Tomi Valkeinen
2016-06-05 23:21     ` Laurent Pinchart
2016-06-06 10:50       ` Tomi Valkeinen
2016-06-06 22:51         ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 08/23] drm: omapdrm: Handle CRTC error IRQs directly Laurent Pinchart
2016-05-10 12:58   ` Tomi Valkeinen
2016-04-26 20:35 ` [PATCH 09/23] drm: omapdrm: Handle OCP error IRQ directly Laurent Pinchart
2016-05-10 13:10   ` Tomi Valkeinen
2016-06-06  0:45     ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 10/23] drm: omapdrm: Use atomic state instead of local device state Laurent Pinchart
2016-05-10 13:24   ` Tomi Valkeinen
2016-05-11  7:37     ` Daniel Vetter
2016-06-06  1:14       ` Laurent Pinchart
2016-06-06 10:37         ` Tomi Valkeinen
2016-06-06 22:53           ` Laurent Pinchart
2016-09-18 10:37         ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 11/23] drm: omapdrm: Check DSS manager state in the enable/disable helpers Laurent Pinchart
2016-05-10 13:28   ` Tomi Valkeinen
2016-05-11  7:40     ` Daniel Vetter
2016-06-06  1:36       ` Laurent Pinchart
2016-06-06  1:38     ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 12/23] drm: omapdrm: Prevent processing the same event multiple times Laurent Pinchart
2016-04-26 20:35 ` [PATCH 13/23] drm: omapdrm: Use a spinlock to protect the CRTC pending flag Laurent Pinchart
2016-04-26 20:35 ` [PATCH 14/23] drm: omapdrm: Keep vblank interrupt enabled while CRTC is active Laurent Pinchart
2016-04-26 20:35 ` [PATCH 15/23] drm: omapdrm: Don't expose the omap_irq_(un)register() functions Laurent Pinchart
2016-05-11 11:05   ` Tomi Valkeinen
2016-06-06  0:53     ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 16/23] drm: omapdrm: Don't call DISPC power handling in IRQ wait functions Laurent Pinchart
2016-04-26 20:35 ` [PATCH 17/23] drm: omapdrm: Make pipe2vbl function static Laurent Pinchart
2016-05-11 11:01   ` Tomi Valkeinen
2016-06-06  0:49     ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 18/23] drm: omapdrm: Simplify IRQ wait implementation Laurent Pinchart
2016-04-26 20:35 ` [PATCH 19/23] drm: omapdrm: Remove global variables Laurent Pinchart
2016-04-26 20:35 ` [PATCH 20/23] drm: omapdrm: panel-lgphilips-lb035q02: Remove unused backlight GPIO Laurent Pinchart
2016-05-10 10:55   ` Tomi Valkeinen
2016-04-26 20:35 ` [PATCH 21/23] drm: omapdrm: Remove unused omap_framebuffer_bo function Laurent Pinchart
2016-05-10 11:00   ` Tomi Valkeinen
2016-06-06  0:29     ` Laurent Pinchart
2016-04-26 20:35 ` [PATCH 22/23] drm: omapdrm: Remove unused omap_gem_tiled_size function Laurent Pinchart
2016-05-10 10:57   ` Tomi Valkeinen
2016-04-26 20:35 ` [PATCH 23/23] drm: omapdrm: Remove buffer synchronization support Laurent Pinchart
2016-05-11 11:12   ` Tomi Valkeinen

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=1461702945-14185-5-git-send-email-laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=tomi.valkeinen@ti.com \
    /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.