From patchwork Tue Sep 1 07:22:50 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joonyoung Shim X-Patchwork-Id: 7103531 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 0FDEF9F32B for ; Tue, 1 Sep 2015 07:22:57 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2421920528 for ; Tue, 1 Sep 2015 07:22:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C26C620414 for ; Tue, 1 Sep 2015 07:22:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 913BF6E20A; Tue, 1 Sep 2015 00:22:53 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCF456E20A 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 mailout4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NTZ00C5SLU2YZ10@mailout4.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 8A.CB.17770.A4255E55; Tue, 1 Sep 2015 16:22:50 +0900 (KST) X-AuditID: cbfee691-f79ca6d00000456a-d3-55e5524a39cf Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2new.samsung.com (EPCPMTA) with SMTP id AE.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 4/9] drm/exynos: update fb_info via only one function Date: Tue, 01 Sep 2015 16:22:50 +0900 Message-id: <1441092175-18187-4-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+NgFtrPLMWRmVeSWpSXmKPExsWyRsSkWNcr6Gmowdf9xhZXvr5ns5h0fwKL xYt7F1ksZkx+yebA4nG/+ziTR9+WVYwBTFFcNimpOZllqUX6dglcGQumTGAsaJGs2Hugj7WB 8Z5IFyMnh4SAicSG64/ZIWwxiQv31rN1MXJxCAmsYJS4dHErK0zRh9U7GSESsxglNu/9wgzh /GCU+HfjO1g7m4CexJ1tx5lAbBEBZYm/E1cxgtjMAp4SK1bNA4sLC7hK9M2/xQxiswioShzt PsMCYvMKuEus3nkQ6gw5iZPHJoNt5hTwkLi3aQtYrxBQzckTr1lAFksIfGaTeH/9OCvEIAGJ b5MPASU4gBKyEpsOMEPMkZQ4uOIGywRG4QWMDKsYRVMLkguKk9KLTPWKE3OLS/PS9ZLzczcx AsP19L9nE3cw3j9gfYhRgINRiYe34+OTUCHWxLLiytxDjKZAGyYyS4km5wOjIq8k3tDYzMjC 1MTU2Mjc0kxJnFdH+mewkEB6YklqdmpqQWpRfFFpTmrxIUYmDk6pBkYjtrcvDE+r+AvMeMu+ WTa91F5y0UFnpcmr+x3llbq+dzxcJL/A7tp6qZmb5rmVC6R3/A3wPXvyygv/ebW/NBd+vRfp tD11xvHYqAPzVGXeBlT8c9tzM/KUwccOFZVGua7T5bfiuuf/PzlnYUDnvzMy/Vrntig+Svz3 wKem5MmkU9fPzHmo3dqvxFKckWioxVxUnAgAB5vdp1ICAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e+xoK5X0NNQgxcT9C2ufH3PZjHp/gQW ixf3LrJYzJj8ks2BxeN+93Emj74tqxgDmKIaGG0yUhNTUosUUvOS81My89JtlbyD453jTc0M DHUNLS3MlRTyEnNTbZVcfAJ03TJzgFYpKZQl5pQChQISi4uV9O0wTQgNcdO1gGmM0PUNCYLr MTJAAwlrGDMWTJnAWNAiWbH3QB9rA+M9kS5GTg4JAROJD6t3MkLYYhIX7q1n62Lk4hASmMUo sXnvF2YI5wejxL8b39lBqtgE9CTubDvOBGKLCChL/J24CqybWcBTYsWqeWBxYQFXib75t5hB bBYBVYmj3WdYQGxeAXeJ1TsPskNsk5M4eWwyK4jNKeAhcW/TFrBeIaCakydes0xg5F3AyLCK USK1ILmgOCk91ygvtVyvODG3uDQvXS85P3cTIzgmnknvYDy8y/0QowAHoxIPb8fHJ6FCrIll xZW5hxglOJiVRHiPeTwNFeJNSaysSi3Kjy8qzUktPsRoCnTYRGYp0eR8YLzmlcQbGpuYGVka mRtaGBmbK4nz5rADzRFITyxJzU5NLUgtgulj4uCUamBc6fvBVzpf70L+jD8iL4x8/LdtuHMh ur553uwjvA1ZIUcst/2b0cXmXX7ru7vtwhau0Iju80Whl87NS7mX/vhofrpHp5OMMGuUXMvB d2+j+Zc/UJNZFR65xy+2YavCp9KONyozXpmcrfFTsO5+wD9ZJCv4SfjzOVw1bQ/SmyNmS2Zb /uvbd0KJpTgj0VCLuag4EQC0NLCznwIAAA== 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 This patch moves codes to update fb_info into exynos_drm_fbdev_update(), so fb_info is updated via only one function. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan --- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c index 4ef8739..133cf5f 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c @@ -78,12 +78,22 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper, struct drm_fb_helper_surface_size *sizes, struct exynos_drm_gem_obj *obj) { - struct fb_info *fbi = helper->fbdev; + struct fb_info *fbi; struct drm_framebuffer *fb = helper->fb; unsigned int size = fb->width * fb->height * (fb->bits_per_pixel >> 3); unsigned int nr_pages; unsigned long offset; + fbi = drm_fb_helper_alloc_fbi(helper); + if (IS_ERR(fbi)) { + DRM_ERROR("failed to allocate fb info.\n"); + return PTR_ERR(fbi); + } + + fbi->par = helper; + fbi->flags = FBINFO_FLAG_DEFAULT; + fbi->fbops = &exynos_drm_fb_ops; + drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->depth); drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height); @@ -93,6 +103,7 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper, pgprot_writecombine(PAGE_KERNEL)); if (!obj->kvaddr) { DRM_ERROR("failed to map pages to kernel space.\n"); + drm_fb_helper_release_fbi(helper); return -EIO; } @@ -112,7 +123,6 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper, struct exynos_drm_fbdev *exynos_fbdev = to_exynos_fbdev(helper); struct exynos_drm_gem_obj *obj; struct drm_device *dev = helper->dev; - struct fb_info *fbi; struct drm_mode_fb_cmd2 mode_cmd = { 0 }; struct platform_device *pdev = dev->platformdev; unsigned long size; @@ -130,13 +140,6 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper, mutex_lock(&dev->struct_mutex); - fbi = drm_fb_helper_alloc_fbi(helper); - if (IS_ERR(fbi)) { - DRM_ERROR("failed to allocate fb info.\n"); - ret = PTR_ERR(fbi); - goto out; - } - size = mode_cmd.pitches[0] * mode_cmd.height; obj = exynos_drm_gem_create(dev, EXYNOS_BO_CONTIG, size); @@ -152,7 +155,7 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper, if (IS_ERR(obj)) { ret = PTR_ERR(obj); - goto err_release_fbi; + goto out; } exynos_fbdev->obj = obj; @@ -164,10 +167,6 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper, goto err_destroy_gem; } - fbi->par = helper; - fbi->flags = FBINFO_FLAG_DEFAULT; - fbi->fbops = &exynos_drm_fb_ops; - ret = exynos_drm_fbdev_update(helper, sizes, obj); if (ret < 0) goto err_destroy_framebuffer; @@ -179,8 +178,6 @@ err_destroy_framebuffer: drm_framebuffer_cleanup(helper->fb); err_destroy_gem: exynos_drm_gem_destroy(obj); -err_release_fbi: - drm_fb_helper_release_fbi(helper); /* * if failed, all resources allocated above would be released by