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 at ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
---
 drivers/gpu/drm/omapdrm/omap_drv.h | 25 -------------------------
 drivers/gpu/drm/omapdrm/omap_fb.c  | 29 ++++++++++++++++++-----------
 2 files changed, 18 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h 
b/drivers/gpu/drm/omapdrm/omap_drv.h
index dcc30a98b9d4..897c5656908b 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -240,29 +240,4 @@ struct drm_gem_object *omap_gem_prime_import(struct 
drm_device *dev,
 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_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(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 3cd627f49e5d..705901bcdfb1 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/drivers/gpu/drm/omapdrm/omap_fb.c
@@ -354,22 +354,29 @@ 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(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(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;
-       }
+       if (IS_ERR(fb))
+               goto error;
+
+       return fb;
+
+error:
+       while (--i > 0)
+               drm_gem_object_unreference_unlocked(bos[i]);
+
        return fb;
 }

-- 
Regards,

Laurent Pinchart

Reply via email to