From patchwork Tue Sep 1 07:22:51 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joonyoung Shim X-Patchwork-Id: 7103591 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 965849F6CE for ; Tue, 1 Sep 2015 07:23:01 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 68E5B20531 for ; Tue, 1 Sep 2015 07:23:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 5074420414 for ; Tue, 1 Sep 2015 07:22:59 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EA8CE6E2A3; Tue, 1 Sep 2015 00:22:54 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72EE26E237 for ; Tue, 1 Sep 2015 00:22:52 -0700 (PDT) Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NTZ01KU0LU2Y830@mailout2.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 01 Sep 2015 16:22:50 +0900 (KST) Received: from epcpsbgm2new.samsung.com ( [172.20.52.115]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id DA.CB.17770.A4255E55; Tue, 1 Sep 2015 16:22:50 +0900 (KST) X-AuditID: cbfee691-f79ca6d00000456a-d4-55e5524a7ecc Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2new.samsung.com (EPCPMTA) with SMTP id FE.9F.18629.A4255E55; Tue, 1 Sep 2015 16:22:50 +0900 (KST) Received: from localhost.localdomain ([10.252.81.123]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NTZ00AOGLU2EMF0@mmp2.samsung.com>; Tue, 01 Sep 2015 16:22:50 +0900 (KST) From: Joonyoung Shim To: dri-devel@lists.freedesktop.org Subject: [PATCH 5/9] drm/exynos: cleanup to get gem object for fb Date: Tue, 01 Sep 2015 16:22:51 +0900 Message-id: <1441092175-18187-5-git-send-email-jy0922.shim@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1441092175-18187-1-git-send-email-jy0922.shim@samsung.com> References: <1441092175-18187-1-git-send-email-jy0922.shim@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPLMWRmVeSWpSXmKPExsWyRsSkWNcr6GmowerrVhZXvr5ns5h0fwKL xYt7F1ksZkx+yebA4nG/+ziTR9+WVYwBTFFcNimpOZllqUX6dglcGZ/XLmUtuC5Y0ftqDUsD 40a+LkZODgkBE4ldu/axQ9hiEhfurWfrYuTiEBJYwSjR+ukCE0zRq7PbmSASsxgl7szqY4Fw fjBK/LvxHaydTUBP4s6242AdIgLKEn8nrmIEsZkFPCVWrJoHFhcWcJT4PWk1WD2LgKrEtYPH mUFsXgF3ib0ntzFCbJOTOHlsMiuIzSngIXFv0xawXiGgmpMnXoMtlhD4zCaxeVoPG8QgAYlv kw8BJTiAErISmw4wQ8yRlDi44gbLBEbhBYwMqxhFUwuSC4qT0otM9YoTc4tL89L1kvNzNzEC w/X0v2cTdzDeP2B9iFGAg1GJh7fj45NQIdbEsuLK3EOMpkAbJjJLiSbnA6MiryTe0NjMyMLU xNTYyNzSTEmcV0f6Z7CQQHpiSWp2ampBalF8UWlOavEhRiYOTqkGxqMcZcK1G4VUeA/ssJjq N/+tGHOiIr+cKOPWdUkRzD/i17yQE1q5MrG2elLGnAVsbtPeXNU2OVnXc/y+wH8/pqQXDqeN 8q6Yb16/b8/sfUvn9kedNsltqhB8Zrhlp4OcG/OaKZHrK9Q+zdTJtMmN2vG3mVm6UGXGP/uo RdO+yjFe7K7Tq89eo8RSnJFoqMVcVJwIAEFoJxxSAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e+xoK5X0NNQg8c7zSyufH3PZjHp/gQW ixf3LrJYzJj8ks2BxeN+93Emj74tqxgDmKIaGG0yUhNTUosUUvOS81My89JtlbyD453jTc0M DHUNLS3MlRTyEnNTbZVcfAJ03TJzgFYpKZQl5pQChQISi4uV9O0wTQgNcdO1gGmM0PUNCYLr MTJAAwlrGDM+r13KWnBdsKL31RqWBsaNfF2MnBwSAiYSr85uZ4KwxSQu3FvP1sXIxSEkMItR 4s6sPhYI5wejxL8b39lBqtgE9CTubDsO1iEioCzxd+IqRhCbWcBTYsWqeWBxYQFHid+TVoPV swioSlw7eJwZxOYVcJfYe3IbI8Q2OYmTxyazgticAh4S9zZtAesVAqo5eeI1ywRG3gWMDKsY JVILkguKk9JzjfJSy/WKE3OLS/PS9ZLzczcxgmPimfQOxsO73A8xCnAwKvHwdnx8EirEmlhW XJl7iFGCg1lJhPeYx9NQId6UxMqq1KL8+KLSnNTiQ4ymQIdNZJYSTc4HxmteSbyhsYmZkaWR uaGFkbG5kjhvDjvQHIH0xJLU7NTUgtQimD4mDk6pBkbDG25sEhvW/3OJ823JY0o8vvJQm6G9 aUkt1wuBy4fYery4iuc2MD38ui/eotTsxxuZd7opC2et/nFvDof4+/XNrSvsGXiuex1zVpTb GBUZvOOjHfPLvHtbP56/OnV+VoKi/e5npRxb80pjsxniFFlncRteKpq+dL7QsfAwg4MJt1qK p10x9FFiKc5INNRiLipOBAAPAg6CnwIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Cc: sw0312.kim@samsung.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Current codes get first gem object and then again get remain gem objects. They can be unified to one routine. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan --- drivers/gpu/drm/exynos/exynos_drm_fb.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c index effeb64..5cee148 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fb.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c @@ -179,27 +179,18 @@ exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, if (!exynos_fb) return ERR_PTR(-ENOMEM); - obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]); - if (!obj) { - DRM_ERROR("failed to lookup gem object\n"); - ret = -ENOENT; - goto err_free; - } - - drm_helper_mode_fill_fb_struct(&exynos_fb->fb, mode_cmd); - exynos_fb->exynos_gem_obj[0] = to_exynos_gem_obj(obj); exynos_fb->buf_cnt = drm_format_num_planes(mode_cmd->pixel_format); DRM_DEBUG_KMS("buf_cnt = %d\n", exynos_fb->buf_cnt); - for (i = 1; i < exynos_fb->buf_cnt; i++) { + for (i = 0; i < exynos_fb->buf_cnt; i++) { obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[i]); if (!obj) { DRM_ERROR("failed to lookup gem object\n"); ret = -ENOENT; exynos_fb->buf_cnt = i; - goto err_unreference; + goto err; } exynos_gem_obj = to_exynos_gem_obj(obj); @@ -207,18 +198,20 @@ exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, ret = check_fb_gem_memory_type(dev, exynos_gem_obj); if (ret < 0) - goto err_unreference; + goto err; } + drm_helper_mode_fill_fb_struct(&exynos_fb->fb, mode_cmd); + ret = drm_framebuffer_init(dev, &exynos_fb->fb, &exynos_drm_fb_funcs); if (ret) { DRM_ERROR("failed to init framebuffer.\n"); - goto err_unreference; + goto err; } return &exynos_fb->fb; -err_unreference: +err: for (i = 0; i < exynos_fb->buf_cnt; i++) { struct drm_gem_object *obj; @@ -226,7 +219,7 @@ err_unreference: if (obj) drm_gem_object_unreference_unlocked(obj); } -err_free: + kfree(exynos_fb); return ERR_PTR(ret); }